@oxygen-agent/cli 1.987.20 → 1.1010.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/admin-primary-providers-render.d.ts +0 -2
- package/dist/admin-primary-providers-render.js +1 -1
- package/dist/browser-login.js +1 -4
- package/dist/column-decision-options.d.ts +20 -0
- package/dist/column-decision-options.js +54 -0
- package/dist/command-manifest.d.ts +3 -2
- package/dist/command-manifest.js +25 -2
- package/dist/credentials.d.ts +1 -1
- package/dist/functions-commands.js +13 -9
- package/dist/help.d.ts +8 -0
- package/dist/help.js +46 -0
- package/dist/index.js +2751 -242
- package/dist/knowledge-mirror.d.ts +2 -2
- package/dist/runtime.d.ts +0 -15
- package/dist/runtime.js +1 -1
- package/dist/search-ai-filter-notice.d.ts +17 -0
- package/dist/search-ai-filter-notice.js +38 -0
- package/dist/session.d.ts +4 -3
- package/dist/skills.d.ts +8 -7
- package/dist/skills.js +58 -20
- package/dist/transcript.d.ts +2 -1
- package/dist/util.d.ts +10 -1
- package/dist/util.js +14 -2
- package/node_modules/@oxygen/cli-ugc/dist/commands.js +296 -140
- package/node_modules/@oxygen/cli-ugc/dist/field-parser.d.ts +9 -0
- package/node_modules/@oxygen/cli-ugc/dist/field-parser.js +34 -0
- package/node_modules/@oxygen/formula/dist/coerce.d.ts +10 -0
- package/node_modules/@oxygen/formula/dist/coerce.js +10 -0
- package/node_modules/@oxygen/formula/dist/formula-functions.js +65 -0
- package/node_modules/@oxygen/formula/dist/hash.d.ts +19 -0
- package/node_modules/@oxygen/formula/dist/hash.js +199 -0
- package/node_modules/@oxygen/formula/dist/value-cleaners.d.ts +6 -1
- package/node_modules/@oxygen/formula/dist/value-cleaners.js +10 -26
- package/node_modules/@oxygen/recipe-sdk/dist/index.d.ts +13 -0
- package/node_modules/@oxygen/shared/dist/array-utils.d.ts +5 -0
- package/node_modules/@oxygen/shared/dist/array-utils.js +11 -0
- package/node_modules/@oxygen/shared/dist/billing.d.ts +99 -22
- package/node_modules/@oxygen/shared/dist/billing.js +195 -40
- package/node_modules/@oxygen/shared/dist/byok-connect.js +5 -0
- package/node_modules/@oxygen/shared/dist/capability-discovery.d.ts +27 -0
- package/node_modules/@oxygen/shared/dist/capability-discovery.js +311 -28
- package/node_modules/@oxygen/shared/dist/cli-http-error.d.ts +8 -0
- package/node_modules/@oxygen/shared/dist/cli-http-error.js +8 -0
- package/node_modules/@oxygen/shared/dist/cli-result.js +1 -0
- package/node_modules/@oxygen/shared/dist/column-autofill.d.ts +52 -0
- package/node_modules/@oxygen/shared/dist/column-autofill.js +62 -0
- package/node_modules/@oxygen/shared/dist/column-decision.d.ts +50 -0
- package/node_modules/@oxygen/shared/dist/column-decision.js +228 -0
- package/node_modules/@oxygen/shared/dist/column-output-fields.js +2 -6
- package/node_modules/@oxygen/shared/dist/company-enrichment-fields.d.ts +113 -0
- package/node_modules/@oxygen/shared/dist/company-enrichment-fields.js +548 -0
- package/node_modules/@oxygen/shared/dist/copilot-skills.generated.d.ts +6 -6
- package/node_modules/@oxygen/shared/dist/copilot-skills.generated.js +6 -6
- package/node_modules/@oxygen/shared/dist/cutover-freeze.d.ts +26 -0
- package/node_modules/@oxygen/shared/dist/cutover-freeze.js +52 -0
- package/node_modules/@oxygen/shared/dist/data-suppliers.d.ts +57 -0
- package/node_modules/@oxygen/shared/dist/data-suppliers.js +59 -0
- package/node_modules/@oxygen/shared/dist/deploy-env.d.ts +74 -0
- package/node_modules/@oxygen/shared/dist/deploy-env.js +82 -0
- package/node_modules/@oxygen/shared/dist/dnc-rules.d.ts +130 -0
- package/node_modules/@oxygen/shared/dist/dnc-rules.js +221 -0
- package/node_modules/@oxygen/shared/dist/enrichment-intents.d.ts +107 -0
- package/node_modules/@oxygen/shared/dist/enrichment-intents.js +809 -0
- package/node_modules/@oxygen/shared/dist/error-message.d.ts +1 -0
- package/node_modules/@oxygen/shared/dist/error-message.js +3 -0
- package/node_modules/@oxygen/shared/dist/error-redaction.js +1 -3
- package/node_modules/@oxygen/shared/dist/external-write-policy.d.ts +33 -0
- package/node_modules/@oxygen/shared/dist/external-write-policy.js +68 -0
- package/node_modules/@oxygen/shared/dist/format-percent.d.ts +8 -0
- package/node_modules/@oxygen/shared/dist/format-percent.js +13 -0
- package/node_modules/@oxygen/shared/dist/freemail-domains.d.ts +81 -0
- package/node_modules/@oxygen/shared/dist/freemail-domains.js +157 -0
- package/node_modules/@oxygen/shared/dist/future-signup-lifecycle-projection.d.ts +1 -0
- package/node_modules/@oxygen/shared/dist/future-signup-lifecycle-projection.js +1 -1
- package/node_modules/@oxygen/shared/dist/hosted-ai.d.ts +60 -4
- package/node_modules/@oxygen/shared/dist/hosted-ai.js +125 -10
- package/node_modules/@oxygen/shared/dist/index.d.ts +15 -0
- package/node_modules/@oxygen/shared/dist/index.js +15 -0
- package/node_modules/@oxygen/shared/dist/json-path.js +1 -3
- package/node_modules/@oxygen/shared/dist/knowledge-bases.js +1 -3
- package/node_modules/@oxygen/shared/dist/knowledge-bootstrap.d.ts +2 -2
- package/node_modules/@oxygen/shared/dist/knowledge-bootstrap.js +2 -2
- package/node_modules/@oxygen/shared/dist/langfuse.d.ts +44 -1
- package/node_modules/@oxygen/shared/dist/langfuse.js +416 -14
- package/node_modules/@oxygen/shared/dist/linkedin-countries.d.ts +33 -0
- package/node_modules/@oxygen/shared/dist/linkedin-countries.js +361 -0
- package/node_modules/@oxygen/shared/dist/linkedin-country-timezones.d.ts +24 -0
- package/node_modules/@oxygen/shared/dist/linkedin-country-timezones.js +276 -0
- package/node_modules/@oxygen/shared/dist/linkedin-message-deletion.d.ts +2 -0
- package/node_modules/@oxygen/shared/dist/linkedin-message-deletion.js +5 -0
- package/node_modules/@oxygen/shared/dist/linkedin-post-keywords.d.ts +44 -0
- package/node_modules/@oxygen/shared/dist/linkedin-post-keywords.js +116 -0
- package/node_modules/@oxygen/shared/dist/linkedin-sequences.d.ts +96 -0
- package/node_modules/@oxygen/shared/dist/linkedin-sequences.js +123 -0
- package/node_modules/@oxygen/shared/dist/llm-durable-capture.d.ts +24 -0
- package/node_modules/@oxygen/shared/dist/llm-durable-capture.js +89 -0
- package/node_modules/@oxygen/shared/dist/llm-prompts.d.ts +75 -0
- package/node_modules/@oxygen/shared/dist/llm-prompts.js +161 -0
- package/node_modules/@oxygen/shared/dist/log-sink-selector.d.ts +39 -0
- package/node_modules/@oxygen/shared/dist/log-sink-selector.js +56 -0
- package/node_modules/@oxygen/shared/dist/log.d.ts +1 -0
- package/node_modules/@oxygen/shared/dist/log.js +6 -1
- package/node_modules/@oxygen/shared/dist/mailbox-egress-ownership.d.ts +90 -0
- package/node_modules/@oxygen/shared/dist/mailbox-egress-ownership.js +130 -0
- package/node_modules/@oxygen/shared/dist/object-storage.d.ts +17 -0
- package/node_modules/@oxygen/shared/dist/object-storage.js +21 -0
- package/node_modules/@oxygen/shared/dist/operational-telemetry.d.ts +24 -0
- package/node_modules/@oxygen/shared/dist/operational-telemetry.js +73 -0
- package/node_modules/@oxygen/shared/dist/otlp-log-sink.d.ts +79 -0
- package/node_modules/@oxygen/shared/dist/otlp-log-sink.js +366 -0
- package/node_modules/@oxygen/shared/dist/plan-capabilities.js +1 -0
- package/node_modules/@oxygen/shared/dist/plan-limits.d.ts +23 -22
- package/node_modules/@oxygen/shared/dist/plan-limits.js +45 -18
- package/node_modules/@oxygen/shared/dist/pricing-sheet.d.ts +48 -41
- package/node_modules/@oxygen/shared/dist/pricing-sheet.js +36 -25
- package/node_modules/@oxygen/shared/dist/pricing-snapshot.generated.d.ts +22 -22
- package/node_modules/@oxygen/shared/dist/pricing-snapshot.generated.js +40 -34
- package/node_modules/@oxygen/shared/dist/product-analytics-environment.js +9 -0
- package/node_modules/@oxygen/shared/dist/product-analytics-events.d.ts +36 -2
- package/node_modules/@oxygen/shared/dist/product-analytics-events.js +36 -1
- package/node_modules/@oxygen/shared/dist/rate-window.d.ts +5 -0
- package/node_modules/@oxygen/shared/dist/rate-window.js +8 -0
- package/node_modules/@oxygen/shared/dist/redaction.js +4 -1
- package/node_modules/@oxygen/shared/dist/research-output-contract.js +1 -3
- package/node_modules/@oxygen/shared/dist/scraper-lane-credential.d.ts +18 -0
- package/node_modules/@oxygen/shared/dist/scraper-lane-credential.js +23 -0
- package/node_modules/@oxygen/shared/dist/search-vocab.js +4 -5
- package/node_modules/@oxygen/shared/dist/select-options.js +6 -1
- package/node_modules/@oxygen/shared/dist/sequence-failures.js +1 -5
- package/node_modules/@oxygen/shared/dist/sequences.d.ts +23 -0
- package/node_modules/@oxygen/shared/dist/sequences.js +115 -5
- package/node_modules/@oxygen/shared/dist/signup-lead-payload.d.ts +80 -0
- package/node_modules/@oxygen/shared/dist/signup-lead-payload.js +198 -0
- package/node_modules/@oxygen/shared/dist/social-capabilities.d.ts +6 -0
- package/node_modules/@oxygen/shared/dist/social-capabilities.js +25 -16
- package/node_modules/@oxygen/shared/dist/social-post-metrics-core.d.ts +32 -0
- package/node_modules/@oxygen/shared/dist/social-post-metrics-core.js +32 -0
- package/node_modules/@oxygen/shared/dist/social-post-metrics-linkedin.d.ts +31 -0
- package/node_modules/@oxygen/shared/dist/social-post-metrics-linkedin.js +103 -0
- package/node_modules/@oxygen/shared/dist/social-post-metrics-series.d.ts +96 -0
- package/node_modules/@oxygen/shared/dist/social-post-metrics-series.js +213 -0
- package/node_modules/@oxygen/shared/dist/social-post-metrics-x.d.ts +13 -0
- package/node_modules/@oxygen/shared/dist/social-post-metrics-x.js +78 -0
- package/node_modules/@oxygen/shared/dist/social-post-metrics.d.ts +36 -0
- package/node_modules/@oxygen/shared/dist/social-post-metrics.js +51 -0
- package/node_modules/@oxygen/shared/dist/spend-safety.d.ts +22 -10
- package/node_modules/@oxygen/shared/dist/spend-safety.js +15 -21
- package/node_modules/@oxygen/shared/dist/sql-rows.d.ts +1 -0
- package/node_modules/@oxygen/shared/dist/sql-rows.js +3 -0
- package/node_modules/@oxygen/shared/dist/stripe-price-catalog.d.ts +36 -0
- package/node_modules/@oxygen/shared/dist/stripe-price-catalog.js +184 -0
- package/node_modules/@oxygen/shared/dist/stripe-subscription-kind.d.ts +41 -0
- package/node_modules/@oxygen/shared/dist/stripe-subscription-kind.js +44 -0
- package/node_modules/@oxygen/shared/dist/table-limits.d.ts +3 -0
- package/node_modules/@oxygen/shared/dist/table-limits.js +3 -0
- package/node_modules/@oxygen/shared/dist/telemetry-export-observer.d.ts +94 -0
- package/node_modules/@oxygen/shared/dist/telemetry-export-observer.js +298 -0
- package/node_modules/@oxygen/shared/dist/telemetry.d.ts +11 -0
- package/node_modules/@oxygen/shared/dist/telemetry.js +28 -2
- package/node_modules/@oxygen/shared/dist/type-guards.d.ts +22 -0
- package/node_modules/@oxygen/shared/dist/type-guards.js +35 -0
- package/node_modules/@oxygen/shared/dist/ugc.d.ts +22 -11
- package/node_modules/@oxygen/shared/dist/ugc.js +10 -0
- package/node_modules/@oxygen/shared/dist/value-readers.d.ts +21 -0
- package/node_modules/@oxygen/shared/dist/value-readers.js +59 -0
- package/node_modules/@oxygen/shared/dist/version.generated.d.ts +1 -0
- package/node_modules/@oxygen/shared/dist/version.generated.js +2 -0
- package/node_modules/@oxygen/shared/dist/version.js +8 -1
- package/node_modules/@oxygen/shared/dist/workspace-event-catalog.js +0 -23
- package/node_modules/@oxygen/shared/dist/workspace-file-storage.d.ts +29 -0
- package/node_modules/@oxygen/shared/dist/workspace-file-storage.js +31 -0
- package/node_modules/@oxygen/shared/package.json +59 -0
- package/node_modules/@oxygen/workflows/dist/graph/expression.js +2 -5
- package/node_modules/@oxygen/workflows/dist/graph/params.js +1 -1
- package/package.json +3 -2
|
@@ -2,13 +2,38 @@ export declare const WEEKLY_USAGE_WINDOW_DAYS = 7;
|
|
|
2
2
|
export declare const BILLING_CURRENCIES: readonly ["usd"];
|
|
3
3
|
export type BillingCurrency = (typeof BILLING_CURRENCIES)[number];
|
|
4
4
|
export declare const DEFAULT_BILLING_CURRENCY: BillingCurrency;
|
|
5
|
-
|
|
5
|
+
/**
|
|
6
|
+
* The SIX purchasable rungs of the one "Oxygen" product (founder 2026-09-19).
|
|
7
|
+
*
|
|
8
|
+
* These are plan KEYS — what Stripe sells and what `subscriptions.tier` stores —
|
|
9
|
+
* not tiers. They all share the single `oxygen` entitlement tier, which is the
|
|
10
|
+
* coarse rung plan-limits.ts and spend-safety.ts enforce against.
|
|
11
|
+
*
|
|
12
|
+
* Why keys and not six tiers: six tiers would force six new columns into every
|
|
13
|
+
* `Record<PlanTier, …>` ladder (plan limits, trigger ceilings, BYOK caps), i.e.
|
|
14
|
+
* ~40 invented numbers on an axis nobody ratified. Why not reuse starter/pro/team
|
|
15
|
+
* instead: then `plan.tier` would be ambiguous between a grandfathered $99
|
|
16
|
+
* Starter and a $49 Oxygen, and plan-change.ts — which refuses when
|
|
17
|
+
* `currentTier === targetTier` — would call a real $49 -> $99 upgrade
|
|
18
|
+
* `plan_unchanged`.
|
|
19
|
+
*/
|
|
20
|
+
export declare const OXYGEN_PLAN_KEYS: readonly ["oxygen_49", "oxygen_99", "oxygen_199", "oxygen_499", "oxygen_999", "oxygen_1999"];
|
|
21
|
+
export type OxygenPlanKey = (typeof OXYGEN_PLAN_KEYS)[number];
|
|
22
|
+
/**
|
|
23
|
+
* starter/pro/team were the self-serve catalog until 2026-09-19. They are no
|
|
24
|
+
* longer purchasable, but live subscriptions still bill against their Stripe
|
|
25
|
+
* prices, so they remain resolvable tiers forever.
|
|
26
|
+
*/
|
|
27
|
+
export type LegacySelfServePlanTier = "starter" | "pro" | "team";
|
|
28
|
+
export type SelfServePlanTier = "oxygen" | LegacySelfServePlanTier;
|
|
6
29
|
export type ContactSalesPlanTier = "scale" | "enterprise";
|
|
7
30
|
export type PlanTier = "free" | SelfServePlanTier | ContactSalesPlanTier;
|
|
8
31
|
export type UsageLimitedPlanTier = Exclude<PlanTier, "enterprise">;
|
|
9
32
|
export type PricingPlanDefinition = {
|
|
10
33
|
tier: PlanTier;
|
|
11
34
|
name: string;
|
|
35
|
+
/** Grandfathered: still resolves and still bills, never offered for purchase. */
|
|
36
|
+
isLegacy?: boolean;
|
|
12
37
|
monthlyPriceCents: number | null;
|
|
13
38
|
monthlyCredits: number | null;
|
|
14
39
|
weeklyCreditsLimit: number | null;
|
|
@@ -26,12 +51,12 @@ export type PricingPlanDefinition = {
|
|
|
26
51
|
};
|
|
27
52
|
export type PricingPlanMetadata = Record<string, unknown> | null | undefined;
|
|
28
53
|
export declare const CONTACT_SALES_URL = "mailto:priority@oxygen-agent.com";
|
|
29
|
-
export declare const CREDITS_PER_USD =
|
|
30
|
-
export declare const
|
|
31
|
-
export declare const CREDIT_TOPUP_MIN_CREDITS =
|
|
32
|
-
export declare const CREDIT_TOPUP_MAX_CREDITS =
|
|
33
|
-
export declare const CREDIT_TOPUP_STEP_CREDITS =
|
|
34
|
-
export declare const CREDIT_TOPUP_DEFAULT_CREDITS =
|
|
54
|
+
export declare const CREDITS_PER_USD = 100;
|
|
55
|
+
export declare const TOPUP_USD_CENTS_PER_100_CREDITS = 125;
|
|
56
|
+
export declare const CREDIT_TOPUP_MIN_CREDITS = 800;
|
|
57
|
+
export declare const CREDIT_TOPUP_MAX_CREDITS = 100000;
|
|
58
|
+
export declare const CREDIT_TOPUP_STEP_CREDITS = 100;
|
|
59
|
+
export declare const CREDIT_TOPUP_DEFAULT_CREDITS = 2000;
|
|
35
60
|
export declare function isValidCreditTopupCredits(credits: number): boolean;
|
|
36
61
|
/**
|
|
37
62
|
* A shortfall expressed as an amount `oxygen billing topup` will actually SELL:
|
|
@@ -51,7 +76,7 @@ export declare function isValidCreditTopupCredits(credits: number): boolean;
|
|
|
51
76
|
*/
|
|
52
77
|
export declare function creditTopupAmountForShortfall(credits: number): number;
|
|
53
78
|
export declare function creditTopupUsdCents(credits: number): number | null;
|
|
54
|
-
export declare const AUTOMATION_ACTION_CREDITS = 0.
|
|
79
|
+
export declare const AUTOMATION_ACTION_CREDITS = 0.001;
|
|
55
80
|
/** Kinds of resource that carry a fixed monthly credit commitment. */
|
|
56
81
|
export declare const CREDIT_COMMITMENT_KINDS: readonly ["sending_mailbox", "managed_mailbox", "mailbox_warmup", "deliverability_unit", "linkedin_account", "whatsapp_account"];
|
|
57
82
|
export type CreditCommitmentKind = (typeof CREDIT_COMMITMENT_KINDS)[number];
|
|
@@ -61,12 +86,12 @@ export type CreditCommitmentKind = (typeof CREDIT_COMMITMENT_KINDS)[number];
|
|
|
61
86
|
* Gmail and Microsoft inboxes included — and it STACKS on Oxygen-sold mailboxes,
|
|
62
87
|
* which additionally pay their own mailbox/warmup/placement lines.
|
|
63
88
|
*/
|
|
64
|
-
export declare const SENDING_MAILBOX_MONTHLY_CREDITS =
|
|
89
|
+
export declare const SENDING_MAILBOX_MONTHLY_CREDITS = 100;
|
|
65
90
|
/**
|
|
66
91
|
* Oxygen-sold managed mailbox per month, in credits ($3.00). Flat, superseding
|
|
67
92
|
* the dynamic vendor-COGS x 1.25 quote for the recurring mailbox line.
|
|
68
93
|
*/
|
|
69
|
-
export declare const MANAGED_MAILBOX_MONTHLY_CREDITS =
|
|
94
|
+
export declare const MANAGED_MAILBOX_MONTHLY_CREDITS = 300;
|
|
70
95
|
/**
|
|
71
96
|
* Grace window after a commitment goes past_due before the owning subsystem may
|
|
72
97
|
* suspend the resource. Notify -> pause -> lapse; never auto-cancel. Aligned with
|
|
@@ -109,25 +134,25 @@ export declare function ratifiedCommitmentCredits(kind: CreditCommitmentKind): n
|
|
|
109
134
|
export declare const CREDIT_TOPUP_PACKS: readonly [{
|
|
110
135
|
readonly id: "10";
|
|
111
136
|
readonly usdCents: 1000;
|
|
112
|
-
readonly credits:
|
|
137
|
+
readonly credits: 800;
|
|
113
138
|
}, {
|
|
114
139
|
readonly id: "25";
|
|
115
140
|
readonly usdCents: 2500;
|
|
116
|
-
readonly credits:
|
|
141
|
+
readonly credits: 2000;
|
|
117
142
|
}, {
|
|
118
143
|
readonly id: "100";
|
|
119
144
|
readonly usdCents: 10000;
|
|
120
|
-
readonly credits:
|
|
145
|
+
readonly credits: 8000;
|
|
121
146
|
}, {
|
|
122
147
|
readonly id: "250";
|
|
123
148
|
readonly usdCents: 25000;
|
|
124
|
-
readonly credits:
|
|
149
|
+
readonly credits: 20000;
|
|
125
150
|
}];
|
|
126
151
|
export type CreditTopupPack = (typeof CREDIT_TOPUP_PACKS)[number];
|
|
127
152
|
export type CreditTopupPackId = CreditTopupPack["id"];
|
|
128
153
|
export declare function resolveCreditTopupPack(id: string | null | undefined): CreditTopupPack | null;
|
|
129
154
|
export declare const TRIAL_PERIOD_DAYS = 7;
|
|
130
|
-
export declare const TRIAL_CREDIT_GRANT =
|
|
155
|
+
export declare const TRIAL_CREDIT_GRANT = 2000;
|
|
131
156
|
/**
|
|
132
157
|
* Free-tier entry (founder-ratified 2026-08-16; grant collapsed to a single
|
|
133
158
|
* 10,000-credit signup grant 2026-08-26).
|
|
@@ -153,7 +178,7 @@ export declare const TRIAL_CREDIT_GRANT = 20000;
|
|
|
153
178
|
* mints it a second time. Top-ups stay purchasable on free, which is what keeps
|
|
154
179
|
* the metered surface open-ended rather than capped at the grant.
|
|
155
180
|
*/
|
|
156
|
-
export declare const FREE_SIGNUP_GRANT_CREDITS =
|
|
181
|
+
export declare const FREE_SIGNUP_GRANT_CREDITS = 1000;
|
|
157
182
|
export declare const FREE_TIER_GRANTS_ENABLED_ENV_VAR = "OXYGEN_FREE_TIER_GRANTS_ENABLED";
|
|
158
183
|
/**
|
|
159
184
|
* Fail-closed rollout switch for the free-tier grants, matching the staged
|
|
@@ -168,8 +193,8 @@ export declare const FREE_TIER_GRANTS_ENABLED_ENV_VAR = "OXYGEN_FREE_TIER_GRANTS
|
|
|
168
193
|
* population before the cutover posture is decided.
|
|
169
194
|
*/
|
|
170
195
|
export declare function freeTierGrantsEnabled(env?: Record<string, string | undefined>): boolean;
|
|
171
|
-
export declare const WALKTHROUGH_COMPLETION_BONUS_CREDITS =
|
|
172
|
-
export declare const WALKTHROUGH_SCRAPE_MAX_CREDITS =
|
|
196
|
+
export declare const WALKTHROUGH_COMPLETION_BONUS_CREDITS = 100;
|
|
197
|
+
export declare const WALKTHROUGH_SCRAPE_MAX_CREDITS = 200;
|
|
173
198
|
export declare const BASE_PRICING_PLANS: {
|
|
174
199
|
readonly free: {
|
|
175
200
|
readonly monthlyPriceCents: number | null;
|
|
@@ -186,6 +211,23 @@ export declare const BASE_PRICING_PLANS: {
|
|
|
186
211
|
readonly ctaLabel: "Upgrade";
|
|
187
212
|
readonly features: readonly ["CRM, Tables, Workflows, and Knowledge — unmetered", "Sequences: author, preview, and enroll", "Agents and Workspace Copilot", "Credits for enrichment and AI, topped up any time"];
|
|
188
213
|
};
|
|
214
|
+
readonly oxygen: {
|
|
215
|
+
readonly monthlyPriceCents: number | null;
|
|
216
|
+
readonly monthlyCredits: number | null;
|
|
217
|
+
readonly weeklyCreditsLimit: number | null;
|
|
218
|
+
readonly rolloverCap: number | null;
|
|
219
|
+
readonly byokEnabled: boolean;
|
|
220
|
+
readonly tier: "oxygen";
|
|
221
|
+
readonly name: "Oxygen";
|
|
222
|
+
readonly monthlyAutomationActions: null;
|
|
223
|
+
readonly automationOverageCentsPerMillion: null;
|
|
224
|
+
readonly automationOverageEnabledDefault: false;
|
|
225
|
+
readonly description: "Your whole GTM stack. One plan — choose the credits you need.";
|
|
226
|
+
readonly badge: "Your whole GTM stack";
|
|
227
|
+
readonly highlighted: true;
|
|
228
|
+
readonly ctaLabel: "Get started";
|
|
229
|
+
readonly features: readonly [string, "All integrations", "Workflows", "Bring your own keys", "Standard support"];
|
|
230
|
+
};
|
|
189
231
|
readonly starter: {
|
|
190
232
|
readonly monthlyPriceCents: number | null;
|
|
191
233
|
readonly monthlyCredits: number | null;
|
|
@@ -194,12 +236,13 @@ export declare const BASE_PRICING_PLANS: {
|
|
|
194
236
|
readonly byokEnabled: boolean;
|
|
195
237
|
readonly tier: "starter";
|
|
196
238
|
readonly name: "Starter";
|
|
239
|
+
readonly isLegacy: true;
|
|
197
240
|
readonly monthlyAutomationActions: null;
|
|
198
241
|
readonly automationOverageCentsPerMillion: null;
|
|
199
242
|
readonly automationOverageEnabledDefault: false;
|
|
200
243
|
readonly description: "For founders running focused managed enrichment and AI columns.";
|
|
201
244
|
readonly ctaLabel: "Choose Starter";
|
|
202
|
-
readonly features: readonly [
|
|
245
|
+
readonly features: readonly [string, "All integrations", "Workflows", "Bring your own keys", "Standard support"];
|
|
203
246
|
};
|
|
204
247
|
readonly pro: {
|
|
205
248
|
readonly monthlyPriceCents: number | null;
|
|
@@ -209,6 +252,7 @@ export declare const BASE_PRICING_PLANS: {
|
|
|
209
252
|
readonly byokEnabled: boolean;
|
|
210
253
|
readonly tier: "pro";
|
|
211
254
|
readonly name: "Pro";
|
|
255
|
+
readonly isLegacy: true;
|
|
212
256
|
readonly monthlyAutomationActions: null;
|
|
213
257
|
readonly automationOverageCentsPerMillion: null;
|
|
214
258
|
readonly automationOverageEnabledDefault: false;
|
|
@@ -216,7 +260,7 @@ export declare const BASE_PRICING_PLANS: {
|
|
|
216
260
|
readonly badge: "Most popular";
|
|
217
261
|
readonly highlighted: true;
|
|
218
262
|
readonly ctaLabel: "Choose Pro";
|
|
219
|
-
readonly features: readonly [
|
|
263
|
+
readonly features: readonly [string, "All integrations", "Workflows", "Bring your own keys", "Standard support"];
|
|
220
264
|
};
|
|
221
265
|
readonly team: {
|
|
222
266
|
readonly monthlyPriceCents: number | null;
|
|
@@ -226,12 +270,13 @@ export declare const BASE_PRICING_PLANS: {
|
|
|
226
270
|
readonly byokEnabled: boolean;
|
|
227
271
|
readonly tier: "team";
|
|
228
272
|
readonly name: "Team";
|
|
273
|
+
readonly isLegacy: true;
|
|
229
274
|
readonly monthlyAutomationActions: null;
|
|
230
275
|
readonly automationOverageCentsPerMillion: null;
|
|
231
276
|
readonly automationOverageEnabledDefault: false;
|
|
232
277
|
readonly description: "For small GTM teams and agencies running shared workflows with their own AI keys.";
|
|
233
278
|
readonly ctaLabel: "Choose Team";
|
|
234
|
-
readonly features: readonly [
|
|
279
|
+
readonly features: readonly [string, "All integrations", "Workflows", "Bring your own keys", "Premium support"];
|
|
235
280
|
};
|
|
236
281
|
readonly scale: {
|
|
237
282
|
readonly monthlyPriceCents: number | null;
|
|
@@ -247,7 +292,7 @@ export declare const BASE_PRICING_PLANS: {
|
|
|
247
292
|
readonly description: "For high-volume GTM teams that need custom limits and rollout support.";
|
|
248
293
|
readonly ctaLabel: "Contact sales";
|
|
249
294
|
readonly contactHref: "mailto:priority@oxygen-agent.com";
|
|
250
|
-
readonly features: readonly [
|
|
295
|
+
readonly features: readonly [string, "Workflows", "Phone number enrichment on managed credits", "Custom provider routing and BYOK policies", "Dedicated onboarding"];
|
|
251
296
|
};
|
|
252
297
|
readonly enterprise: {
|
|
253
298
|
readonly monthlyPriceCents: number | null;
|
|
@@ -266,8 +311,17 @@ export declare const BASE_PRICING_PLANS: {
|
|
|
266
311
|
readonly features: readonly ["Everything in Team", "Custom usage limits", "Volume pricing", "Dedicated support"];
|
|
267
312
|
};
|
|
268
313
|
};
|
|
314
|
+
/** One public card; the six rungs are a selector inside it. */
|
|
269
315
|
export declare const PUBLIC_PLAN_ORDER: readonly PlanTier[];
|
|
316
|
+
/**
|
|
317
|
+
* Tiers whose Stripe prices must still RESOLVE. Deliberately wider than what is
|
|
318
|
+
* purchasable: starter/pro/team are grandfathered, so a live subscription on one
|
|
319
|
+
* of their prices must keep mapping to a plan. Use PURCHASABLE_PLAN_KEYS for
|
|
320
|
+
* anything that offers a plan for sale.
|
|
321
|
+
*/
|
|
270
322
|
export declare const SELF_SERVE_PLAN_TIERS: readonly SelfServePlanTier[];
|
|
323
|
+
/** What a customer can actually buy or switch to, cheapest first. */
|
|
324
|
+
export declare const PURCHASABLE_PLAN_KEYS: readonly OxygenPlanKey[];
|
|
271
325
|
export declare const CONTACT_SALES_PLAN_TIERS: readonly ContactSalesPlanTier[];
|
|
272
326
|
export declare const ACTIVE_SUBSCRIPTION_STATUSES: readonly ["active", "trialing", "past_due"];
|
|
273
327
|
export type ActiveSubscriptionStatus = (typeof ACTIVE_SUBSCRIPTION_STATUSES)[number];
|
|
@@ -294,6 +348,10 @@ export declare function resolveBasePricingPlan(tier: string | null | undefined):
|
|
|
294
348
|
export declare function applyPricingPlanMetadataOverrides(// skipcq: JS-R1005
|
|
295
349
|
plan: PricingPlanDefinition, metadata: PricingPlanMetadata): PricingPlanDefinition;
|
|
296
350
|
export declare function isSelfServePlanTier(value: string): value is SelfServePlanTier;
|
|
351
|
+
export declare const MANAGED_PHONE_PLAN_TIERS: readonly PlanTier[];
|
|
352
|
+
export declare function planAllowsManagedPhoneEnrichment(tier: string): boolean;
|
|
353
|
+
/** True for the six rungs a customer may buy or switch to. */
|
|
354
|
+
export declare function isPurchasablePlanKey(value: string): value is OxygenPlanKey;
|
|
297
355
|
export declare function isBillingCurrency(value: string): value is BillingCurrency;
|
|
298
356
|
export declare function normalizeBillingCurrency(value: string | null | undefined): BillingCurrency;
|
|
299
357
|
export declare function getCurrentFreeTierCycleKey(date?: Date): string;
|
|
@@ -312,6 +370,25 @@ export type CreditCycleWindow = {
|
|
|
312
370
|
/** "July 2026" | "Jun 10 – Jul 10" */
|
|
313
371
|
label: string;
|
|
314
372
|
};
|
|
373
|
+
/**
|
|
374
|
+
* Whether a subscription row has a real Stripe object behind it that Stripe's
|
|
375
|
+
* own APIs (retrieve, update, invoice preview, portal flows) can act on.
|
|
376
|
+
*
|
|
377
|
+
* Three kinds of row say no: a staff-invoiced manual contract (`manual_contract_`
|
|
378
|
+
* id and/or `off_stripe` in either spelling the codebase has written), a
|
|
379
|
+
* control-plane-only internal grant (`internal_dogfood_…`), and a hand-inserted
|
|
380
|
+
* synthetic row that DOES carry a `sub_` prefix but marks itself
|
|
381
|
+
* `metadata.synthetic: true`. That last shape is why the id prefix alone is not
|
|
382
|
+
* the test: the dev dogfood org's `sub_synthetic_dev_dogfood_…` row passed every
|
|
383
|
+
* `startsWith("sub_")` check and reached `stripe.subscriptions.retrieve`, where
|
|
384
|
+
* Stripe answered "No such subscription" and the customer read the generic
|
|
385
|
+
* "Unable to preview the plan change." Every self-serve Stripe mutation must
|
|
386
|
+
* refuse these rows before it calls Stripe, with a message that names the fix.
|
|
387
|
+
*/
|
|
388
|
+
export declare function isStripeManagedSubscription(subscription: {
|
|
389
|
+
stripeSubscriptionId?: string | null;
|
|
390
|
+
metadata?: Record<string, unknown> | null;
|
|
391
|
+
}): boolean;
|
|
315
392
|
/**
|
|
316
393
|
* The window the credit-allowance bar measures: "this month's credits", resolved
|
|
317
394
|
* to the boundary at which the plan's grant actually renews.
|