@oxygen-agent/cli 1.1010.650 → 1.1010.905
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/auto-update.d.ts +129 -0
- package/dist/auto-update.js +392 -0
- package/dist/command-manifest.js +15 -1
- package/dist/credentials.d.ts +2 -0
- package/dist/credentials.js +6 -3
- package/dist/functions-commands.js +1 -1
- package/dist/http-client.js +28 -4
- package/dist/inbox-needs-reply-notice.d.ts +12 -0
- package/dist/inbox-needs-reply-notice.js +51 -0
- package/dist/index.js +756 -177
- package/dist/run-wait.d.ts +3 -1
- package/dist/run-wait.js +19 -5
- package/dist/skills.js +48 -22
- package/dist/streamed-file-import.d.ts +58 -0
- package/dist/streamed-file-import.js +115 -0
- package/dist/update.d.ts +29 -0
- package/dist/update.js +62 -16
- package/dist/workflow-plan-limit-notices.d.ts +8 -0
- package/dist/workflow-plan-limit-notices.js +28 -0
- package/node_modules/@oxygen/cli-ugc/dist/commands.js +3 -3
- package/node_modules/@oxygen/shared/dist/billing-anchors.d.ts +50 -2
- package/node_modules/@oxygen/shared/dist/billing-anchors.js +94 -2
- package/node_modules/@oxygen/shared/dist/billing.d.ts +247 -37
- package/node_modules/@oxygen/shared/dist/billing.js +418 -45
- package/node_modules/@oxygen/shared/dist/capability-discovery.js +66 -6
- 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/cost-estimate-view.d.ts +50 -0
- package/node_modules/@oxygen/shared/dist/cost-estimate-view.js +90 -0
- package/node_modules/@oxygen/shared/dist/cost-estimate.d.ts +167 -0
- package/node_modules/@oxygen/shared/dist/cost-estimate.js +361 -0
- package/node_modules/@oxygen/shared/dist/credit-gate.d.ts +26 -0
- package/node_modules/@oxygen/shared/dist/credit-gate.js +65 -0
- package/node_modules/@oxygen/shared/dist/email-deliverability-policy.d.ts +51 -0
- package/node_modules/@oxygen/shared/dist/email-deliverability-policy.js +101 -0
- package/node_modules/@oxygen/shared/dist/email-hard-bounce.d.ts +27 -0
- package/node_modules/@oxygen/shared/dist/email-hard-bounce.js +27 -0
- package/node_modules/@oxygen/shared/dist/error-redaction.d.ts +1 -1
- package/node_modules/@oxygen/shared/dist/error-redaction.js +1 -1
- package/node_modules/@oxygen/shared/dist/feature-gates.d.ts +10 -1
- package/node_modules/@oxygen/shared/dist/feature-gates.js +12 -1
- package/node_modules/@oxygen/shared/dist/file-import.d.ts +13 -1
- package/node_modules/@oxygen/shared/dist/file-import.js +33 -6
- package/node_modules/@oxygen/shared/dist/hosted-ai.d.ts +73 -3
- package/node_modules/@oxygen/shared/dist/hosted-ai.js +246 -24
- package/node_modules/@oxygen/shared/dist/import-limits.d.ts +25 -1
- package/node_modules/@oxygen/shared/dist/import-limits.js +35 -2
- package/node_modules/@oxygen/shared/dist/index.d.ts +4 -23
- package/node_modules/@oxygen/shared/dist/index.js +4 -43
- package/node_modules/@oxygen/shared/dist/linkedin-sequences.d.ts +114 -0
- package/node_modules/@oxygen/shared/dist/linkedin-sequences.js +150 -0
- package/node_modules/@oxygen/shared/dist/object-storage.d.ts +9 -0
- package/node_modules/@oxygen/shared/dist/object-storage.js +17 -0
- package/node_modules/@oxygen/shared/dist/operational-telemetry.d.ts +41 -0
- package/node_modules/@oxygen/shared/dist/operational-telemetry.js +55 -0
- package/node_modules/@oxygen/shared/dist/otlp-log-sink.js +19 -2
- package/node_modules/@oxygen/shared/dist/plan-band.d.ts +234 -0
- package/node_modules/@oxygen/shared/dist/plan-band.js +312 -0
- package/node_modules/@oxygen/shared/dist/plan-capabilities.d.ts +77 -7
- package/node_modules/@oxygen/shared/dist/plan-capabilities.js +87 -7
- package/node_modules/@oxygen/shared/dist/plan-limits-view.d.ts +219 -0
- package/node_modules/@oxygen/shared/dist/plan-limits-view.js +330 -0
- package/node_modules/@oxygen/shared/dist/plan-limits.d.ts +335 -126
- package/node_modules/@oxygen/shared/dist/plan-limits.js +277 -86
- package/node_modules/@oxygen/shared/dist/pricing-sheet.d.ts +158 -49
- package/node_modules/@oxygen/shared/dist/pricing-sheet.js +139 -41
- package/node_modules/@oxygen/shared/dist/pricing-snapshot.generated.d.ts +42 -23
- package/node_modules/@oxygen/shared/dist/pricing-snapshot.generated.js +56 -37
- package/node_modules/@oxygen/shared/dist/process-resource.d.ts +4 -0
- package/node_modules/@oxygen/shared/dist/process-resource.js +25 -0
- package/node_modules/@oxygen/shared/dist/provider-http-error.d.ts +10 -0
- package/node_modules/@oxygen/shared/dist/provider-http-error.js +27 -0
- package/node_modules/@oxygen/shared/dist/repricing.d.ts +257 -0
- package/node_modules/@oxygen/shared/dist/repricing.js +721 -0
- package/node_modules/@oxygen/shared/dist/semver.d.ts +21 -0
- package/node_modules/@oxygen/shared/dist/semver.js +41 -0
- package/node_modules/@oxygen/shared/dist/sending-limits.d.ts +30 -0
- package/node_modules/@oxygen/shared/dist/sending-limits.js +43 -0
- package/node_modules/@oxygen/shared/dist/sending-seats.d.ts +18 -15
- package/node_modules/@oxygen/shared/dist/sending-seats.js +22 -17
- package/node_modules/@oxygen/shared/dist/sequence-failures.js +4 -1
- package/node_modules/@oxygen/shared/dist/spend-safety.d.ts +57 -8
- package/node_modules/@oxygen/shared/dist/spend-safety.js +64 -11
- package/node_modules/@oxygen/shared/dist/stripe-price-catalog.d.ts +33 -1
- package/node_modules/@oxygen/shared/dist/stripe-price-catalog.js +71 -1
- package/node_modules/@oxygen/shared/dist/table-capacity.d.ts +68 -10
- package/node_modules/@oxygen/shared/dist/table-capacity.js +85 -4
- package/node_modules/@oxygen/shared/dist/telemetry-export-observer.d.ts +6 -0
- package/node_modules/@oxygen/shared/dist/telemetry-export-observer.js +13 -5
- package/node_modules/@oxygen/shared/dist/telemetry-resource.d.ts +40 -0
- package/node_modules/@oxygen/shared/dist/telemetry-resource.js +35 -0
- package/node_modules/@oxygen/shared/dist/telemetry.d.ts +9 -0
- package/node_modules/@oxygen/shared/dist/telemetry.js +41 -2
- package/node_modules/@oxygen/shared/dist/trace-context.d.ts +29 -0
- package/node_modules/@oxygen/shared/dist/trace-context.js +88 -0
- package/node_modules/@oxygen/shared/dist/ugc.d.ts +15 -0
- package/node_modules/@oxygen/shared/dist/ugc.js +29 -0
- package/node_modules/@oxygen/shared/dist/version.d.ts +1 -3
- package/node_modules/@oxygen/shared/dist/version.generated.d.ts +1 -1
- package/node_modules/@oxygen/shared/dist/version.generated.js +1 -1
- package/node_modules/@oxygen/shared/dist/version.js +14 -27
- package/node_modules/@oxygen/shared/dist/workspace-file-storage.d.ts +5 -0
- package/node_modules/@oxygen/shared/dist/workspace-file-storage.js +5 -0
- package/node_modules/@oxygen/workflows/dist/graph/manifest-schema.d.ts +3 -3
- package/node_modules/@oxygen/workflows/dist/graph/types.d.ts +15 -1
- package/node_modules/@oxygen/workflows/dist/graph/types.js +15 -1
- package/node_modules/@oxygen/workflows/dist/index.d.ts +45 -0
- package/node_modules/@oxygen/workflows/dist/index.js +152 -2
- package/node_modules/@oxygen/workflows/dist/usage-estimate.d.ts +10 -1
- package/node_modules/@oxygen/workflows/dist/usage-estimate.js +33 -29
- package/package.json +1 -1
- package/node_modules/@oxygen/shared/dist/email-warmup-readiness.d.ts +0 -64
- package/node_modules/@oxygen/shared/dist/email-warmup-readiness.js +0 -90
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type RepricingOptions } from "./repricing.js";
|
|
1
2
|
/**
|
|
2
3
|
* The five enforcement rungs of the per-plan limits ladder. Every PlanTier maps
|
|
3
4
|
* onto exactly one rung: "free" doubles as the unentitled fallback (no live
|
|
@@ -8,6 +9,12 @@
|
|
|
8
9
|
* Credits are the billing meter; these limits are abuse/runaway guards. They
|
|
9
10
|
* are sized so legitimate interactive use never hits them and scale with plan
|
|
10
11
|
* price so worst-case burn stays proportional to what the org pays.
|
|
12
|
+
*
|
|
13
|
+
* Org-scope unit budgets (`orgUnits`) bound row-weighted bulk volume only: a
|
|
14
|
+
* call whose normalized amount is 1 is counted against the budget but never
|
|
15
|
+
* refused by it, so single-item work is bounded by `requestsPerMinute` and the
|
|
16
|
+
* global `cli` buckets. A budget accumulated under a higher rung keeps refusing
|
|
17
|
+
* bulk calls until its window resets after a downgrade; there is no rebase.
|
|
11
18
|
*/
|
|
12
19
|
export type LimitsTier = "free" | "starter" | "pro" | "team" | "scale";
|
|
13
20
|
export declare const LIMITS_TIER_ORDER: readonly LimitsTier[];
|
|
@@ -16,7 +23,10 @@ export type OrgWindowLimit = {
|
|
|
16
23
|
limit: number;
|
|
17
24
|
windowSeconds: number;
|
|
18
25
|
};
|
|
19
|
-
/**
|
|
26
|
+
/**
|
|
27
|
+
* Request bucket (per api-key / web-user scope) + org-scope unit budget. The
|
|
28
|
+
* unit budget never refuses a 1-unit call (rate-limits.ts `orgUnitBudget`).
|
|
29
|
+
*/
|
|
20
30
|
export type UnitPolicyLimits = {
|
|
21
31
|
requestsPerMinute: number;
|
|
22
32
|
orgUnits: OrgWindowLimit;
|
|
@@ -53,6 +63,11 @@ export type PlanLimits = {
|
|
|
53
63
|
maxDirectCsvBodyBytes: number;
|
|
54
64
|
};
|
|
55
65
|
agents: {
|
|
66
|
+
/**
|
|
67
|
+
* The pre-2026-09-repricing default Agent run ceilings. Read the value in
|
|
68
|
+
* force with `resolvePlanAgentCreditLimits`: team and scale drop at the
|
|
69
|
+
* repricing instant.
|
|
70
|
+
*/
|
|
56
71
|
maxTotalCredits: number;
|
|
57
72
|
maxInferenceCredits: number;
|
|
58
73
|
maxUpstreamCostUsd: number;
|
|
@@ -69,14 +84,25 @@ export type PlanLimits = {
|
|
|
69
84
|
tableActions: {
|
|
70
85
|
maxActionsPerRun: number;
|
|
71
86
|
};
|
|
87
|
+
/**
|
|
88
|
+
* `cronMinIntervalMinutes` is the fastest cron cadence a workflow or Agent
|
|
89
|
+
* trigger may be scheduled at (repricing 2026-09, decision L4.2). It is the
|
|
90
|
+
* ratified value; read the value in force with `resolveCronMinIntervalMinutes`,
|
|
91
|
+
* because the free rung's cut waits for the repricing switch.
|
|
92
|
+
*/
|
|
93
|
+
workflows: {
|
|
94
|
+
cronMinIntervalMinutes: number;
|
|
95
|
+
};
|
|
72
96
|
};
|
|
73
97
|
/**
|
|
74
|
-
*
|
|
75
|
-
*
|
|
76
|
-
*
|
|
77
|
-
*
|
|
98
|
+
* The per-rung Table import ceiling this matrix reports: today's envelope. The
|
|
99
|
+
* ceiling ENFORCED on an import is the workspace's plan-band rows-per-Table
|
|
100
|
+
* limit (`resolveWorkspaceTableCapacity`, PROPOSED P-60: a file can fill an
|
|
101
|
+
* empty Table exactly), which the web import paths resolve per organization.
|
|
102
|
+
* Imports into a non-empty Table remain subject to that Table's remaining
|
|
103
|
+
* capacity and the workspace-wide envelope.
|
|
78
104
|
*/
|
|
79
|
-
export declare const TABLE_IMPORT_ROW_LIMIT:
|
|
105
|
+
export declare const TABLE_IMPORT_ROW_LIMIT: number;
|
|
80
106
|
export { VERCEL_REQUEST_BODY_LIMIT_BYTES } from "./import-limits.js";
|
|
81
107
|
/**
|
|
82
108
|
* OXYGEN's own JSON-body ceiling for every `/api/cli/*` route (enforced by
|
|
@@ -86,57 +112,126 @@ export { VERCEL_REQUEST_BODY_LIMIT_BYTES } from "./import-limits.js";
|
|
|
86
112
|
* in the CLI alone — an older server would still 413 at the old number.
|
|
87
113
|
*/
|
|
88
114
|
export declare const MAX_CLI_JSON_BODY_BYTES = 2000000;
|
|
115
|
+
/**
|
|
116
|
+
* Derived plan-scaled limits (repricing 2026-09 decision L6, spec § 4.7):
|
|
117
|
+
* import file size, columns per action run or standing auto-run and the signals
|
|
118
|
+
* feed. Each only rises against the pre-repricing ladder, so no paid customer
|
|
119
|
+
* loses a limit and nothing here waits for the effective-date switch. Rows per
|
|
120
|
+
* write request stay 5,000 free / 50,000 paid: the 2 MB request body
|
|
121
|
+
* (`MAX_CLI_JSON_BODY_BYTES`) binds first.
|
|
122
|
+
*
|
|
123
|
+
* `importFileBytes` is ratified (decision F.8, Philipp 2026-09-27): free 500 MiB,
|
|
124
|
+
* $49–$99 1 GiB, $199–$499 2 GiB, $999–$1,999 5 GiB. It is live on every plan
|
|
125
|
+
* and no longer waits for the per-Table capacity test: rows per Table still cap
|
|
126
|
+
* what one import can load, so a bigger file never buys more rows. 5 GiB is also
|
|
127
|
+
* the largest single PUT an S3-compatible store accepts
|
|
128
|
+
* (`IMPORT_OBJECT_SINGLE_PUT_MAX_BYTES`), which is the one upload a staged
|
|
129
|
+
* import makes.
|
|
130
|
+
*/
|
|
131
|
+
export declare const DERIVED_PLAN_LIMIT_TARGETS: {
|
|
132
|
+
readonly free: {
|
|
133
|
+
readonly importFileBytes: number;
|
|
134
|
+
readonly maxActionsPerRun: 10;
|
|
135
|
+
readonly signals: {
|
|
136
|
+
readonly maxEvents: 100;
|
|
137
|
+
readonly maxWindowDays: 30;
|
|
138
|
+
};
|
|
139
|
+
};
|
|
140
|
+
readonly starter: {
|
|
141
|
+
readonly importFileBytes: number;
|
|
142
|
+
readonly maxActionsPerRun: 25;
|
|
143
|
+
readonly signals: {
|
|
144
|
+
readonly maxEvents: 200;
|
|
145
|
+
readonly maxWindowDays: 90;
|
|
146
|
+
};
|
|
147
|
+
};
|
|
148
|
+
readonly pro: {
|
|
149
|
+
readonly importFileBytes: number;
|
|
150
|
+
readonly maxActionsPerRun: 25;
|
|
151
|
+
readonly signals: {
|
|
152
|
+
readonly maxEvents: 500;
|
|
153
|
+
readonly maxWindowDays: 180;
|
|
154
|
+
};
|
|
155
|
+
};
|
|
156
|
+
readonly team: {
|
|
157
|
+
readonly importFileBytes: number;
|
|
158
|
+
readonly maxActionsPerRun: 50;
|
|
159
|
+
readonly signals: {
|
|
160
|
+
readonly maxEvents: 1000;
|
|
161
|
+
readonly maxWindowDays: 365;
|
|
162
|
+
};
|
|
163
|
+
};
|
|
164
|
+
readonly scale: {
|
|
165
|
+
readonly importFileBytes: number;
|
|
166
|
+
readonly maxActionsPerRun: 50;
|
|
167
|
+
readonly signals: {
|
|
168
|
+
readonly maxEvents: 1000;
|
|
169
|
+
readonly maxWindowDays: 365;
|
|
170
|
+
};
|
|
171
|
+
};
|
|
172
|
+
};
|
|
173
|
+
/** The import file size a rung enforces (see `DERIVED_PLAN_LIMIT_TARGETS`). */
|
|
174
|
+
export declare function importMaxFileBytesForTier(tier: LimitsTier): number;
|
|
89
175
|
/**
|
|
90
176
|
* The per-rung limit matrix. `ai_live` deliberately equals `tool_live` at every
|
|
91
177
|
* rung — one "live actions" mental model; the per-call cost asymmetry between
|
|
92
178
|
* AI and tool calls is priced in credits, not throttled here.
|
|
179
|
+
*
|
|
180
|
+
* API rates follow the 2026-09 repricing (decision L2, ratified 2026-09-26):
|
|
181
|
+
* `cli.global` is the per-organization and per-key request total per minute,
|
|
182
|
+
* 1,200 / 3,000 / 6,000 / 12,000 / 30,000 from free to scale. The per-operation
|
|
183
|
+
* buckets below are PROPOSED (P-52, repricing spec § 4.2): each pre-repricing
|
|
184
|
+
* bucket multiplied by its rung's organization factor, 2x on free and 5x on
|
|
185
|
+
* every paid rung, and never above the rung's per-key total. `tenantSchema` and
|
|
186
|
+
* the flat `tenant_admin` guard in the web rate limiter are DDL abuse guards and
|
|
187
|
+
* stay unscaled.
|
|
93
188
|
*/
|
|
94
189
|
export declare const PLAN_LIMITS: {
|
|
95
190
|
readonly free: {
|
|
96
191
|
readonly cli: {
|
|
97
192
|
readonly global: {
|
|
98
|
-
readonly keyRequestsPerMinute:
|
|
99
|
-
readonly orgRequestsPerMinute:
|
|
193
|
+
readonly keyRequestsPerMinute: 1200;
|
|
194
|
+
readonly orgRequestsPerMinute: 1200;
|
|
100
195
|
};
|
|
101
196
|
readonly tenantRead: {
|
|
102
|
-
readonly requestsPerMinute:
|
|
197
|
+
readonly requestsPerMinute: 120;
|
|
103
198
|
readonly orgUnits: {
|
|
104
|
-
readonly limit:
|
|
199
|
+
readonly limit: 1000000;
|
|
105
200
|
readonly windowSeconds: number;
|
|
106
201
|
};
|
|
107
202
|
};
|
|
108
203
|
readonly tenantWrite: {
|
|
109
|
-
readonly requestsPerMinute:
|
|
204
|
+
readonly requestsPerMinute: 60;
|
|
110
205
|
readonly orgUnits: {
|
|
111
|
-
readonly limit:
|
|
206
|
+
readonly limit: 200000;
|
|
112
207
|
readonly windowSeconds: number;
|
|
113
208
|
};
|
|
114
209
|
};
|
|
115
210
|
readonly bulkImport: {
|
|
116
|
-
readonly requestsPerMinute:
|
|
211
|
+
readonly requestsPerMinute: 20;
|
|
117
212
|
readonly orgRequests: {
|
|
118
|
-
readonly limit:
|
|
213
|
+
readonly limit: 200;
|
|
119
214
|
readonly windowSeconds: number;
|
|
120
215
|
};
|
|
121
216
|
};
|
|
122
217
|
readonly aiLive: {
|
|
123
|
-
readonly requestsPerMinute:
|
|
218
|
+
readonly requestsPerMinute: 40;
|
|
124
219
|
readonly orgRequests: {
|
|
125
|
-
readonly limit:
|
|
220
|
+
readonly limit: 200;
|
|
126
221
|
readonly windowSeconds: number;
|
|
127
222
|
};
|
|
128
223
|
};
|
|
129
224
|
readonly toolLive: {
|
|
130
|
-
readonly requestsPerMinute:
|
|
225
|
+
readonly requestsPerMinute: 40;
|
|
131
226
|
readonly orgRequests: {
|
|
132
|
-
readonly limit:
|
|
227
|
+
readonly limit: 200;
|
|
133
228
|
readonly windowSeconds: number;
|
|
134
229
|
};
|
|
135
230
|
};
|
|
136
231
|
readonly toolDryRun: {
|
|
137
|
-
readonly requestsPerMinute:
|
|
232
|
+
readonly requestsPerMinute: 120;
|
|
138
233
|
readonly orgRequests: {
|
|
139
|
-
readonly limit:
|
|
234
|
+
readonly limit: 1000;
|
|
140
235
|
readonly windowSeconds: number;
|
|
141
236
|
};
|
|
142
237
|
};
|
|
@@ -151,36 +246,36 @@ export declare const PLAN_LIMITS: {
|
|
|
151
246
|
};
|
|
152
247
|
readonly web: {
|
|
153
248
|
readonly tenantRead: {
|
|
154
|
-
readonly requestsPerMinute:
|
|
249
|
+
readonly requestsPerMinute: 240;
|
|
155
250
|
readonly orgUnits: {
|
|
156
|
-
readonly limit:
|
|
251
|
+
readonly limit: 2000000;
|
|
157
252
|
readonly windowSeconds: number;
|
|
158
253
|
};
|
|
159
254
|
};
|
|
160
255
|
readonly tenantWrite: {
|
|
161
|
-
readonly requestsPerMinute:
|
|
256
|
+
readonly requestsPerMinute: 120;
|
|
162
257
|
readonly orgUnits: {
|
|
163
|
-
readonly limit:
|
|
258
|
+
readonly limit: 1000000;
|
|
164
259
|
readonly windowSeconds: number;
|
|
165
260
|
};
|
|
166
261
|
};
|
|
167
262
|
readonly columnRun: {
|
|
168
|
-
readonly requestsPerMinute:
|
|
263
|
+
readonly requestsPerMinute: 60;
|
|
169
264
|
readonly orgUnits: {
|
|
170
|
-
readonly limit:
|
|
265
|
+
readonly limit: 4000;
|
|
171
266
|
readonly windowSeconds: number;
|
|
172
267
|
};
|
|
173
268
|
};
|
|
174
269
|
readonly import: {
|
|
175
|
-
readonly requestsPerMinute:
|
|
270
|
+
readonly requestsPerMinute: 20;
|
|
176
271
|
readonly orgRequests: {
|
|
177
|
-
readonly limit:
|
|
272
|
+
readonly limit: 200;
|
|
178
273
|
readonly windowSeconds: number;
|
|
179
274
|
};
|
|
180
275
|
};
|
|
181
276
|
};
|
|
182
277
|
readonly import: {
|
|
183
|
-
readonly maxRowsPerFile:
|
|
278
|
+
readonly maxRowsPerFile: number;
|
|
184
279
|
readonly maxFileBytes: number;
|
|
185
280
|
readonly maxDirectCsvBodyBytes: 10000000;
|
|
186
281
|
};
|
|
@@ -201,52 +296,55 @@ export declare const PLAN_LIMITS: {
|
|
|
201
296
|
readonly tableActions: {
|
|
202
297
|
readonly maxActionsPerRun: 10;
|
|
203
298
|
};
|
|
299
|
+
readonly workflows: {
|
|
300
|
+
readonly cronMinIntervalMinutes: 15;
|
|
301
|
+
};
|
|
204
302
|
};
|
|
205
303
|
readonly starter: {
|
|
206
304
|
readonly cli: {
|
|
207
305
|
readonly global: {
|
|
208
|
-
readonly keyRequestsPerMinute:
|
|
209
|
-
readonly orgRequestsPerMinute:
|
|
306
|
+
readonly keyRequestsPerMinute: 3000;
|
|
307
|
+
readonly orgRequestsPerMinute: 3000;
|
|
210
308
|
};
|
|
211
309
|
readonly tenantRead: {
|
|
212
|
-
readonly requestsPerMinute:
|
|
310
|
+
readonly requestsPerMinute: 600;
|
|
213
311
|
readonly orgUnits: {
|
|
214
|
-
readonly limit:
|
|
312
|
+
readonly limit: 125000000;
|
|
215
313
|
readonly windowSeconds: number;
|
|
216
314
|
};
|
|
217
315
|
};
|
|
218
316
|
readonly tenantWrite: {
|
|
219
|
-
readonly requestsPerMinute:
|
|
317
|
+
readonly requestsPerMinute: 600;
|
|
220
318
|
readonly orgUnits: {
|
|
221
|
-
readonly limit:
|
|
319
|
+
readonly limit: 25000000;
|
|
222
320
|
readonly windowSeconds: number;
|
|
223
321
|
};
|
|
224
322
|
};
|
|
225
323
|
readonly bulkImport: {
|
|
226
|
-
readonly requestsPerMinute:
|
|
324
|
+
readonly requestsPerMinute: 150;
|
|
227
325
|
readonly orgRequests: {
|
|
228
|
-
readonly limit:
|
|
326
|
+
readonly limit: 2500;
|
|
229
327
|
readonly windowSeconds: number;
|
|
230
328
|
};
|
|
231
329
|
};
|
|
232
330
|
readonly aiLive: {
|
|
233
|
-
readonly requestsPerMinute:
|
|
331
|
+
readonly requestsPerMinute: 300;
|
|
234
332
|
readonly orgRequests: {
|
|
235
|
-
readonly limit:
|
|
333
|
+
readonly limit: 25000;
|
|
236
334
|
readonly windowSeconds: number;
|
|
237
335
|
};
|
|
238
336
|
};
|
|
239
337
|
readonly toolLive: {
|
|
240
|
-
readonly requestsPerMinute:
|
|
338
|
+
readonly requestsPerMinute: 300;
|
|
241
339
|
readonly orgRequests: {
|
|
242
|
-
readonly limit:
|
|
340
|
+
readonly limit: 25000;
|
|
243
341
|
readonly windowSeconds: number;
|
|
244
342
|
};
|
|
245
343
|
};
|
|
246
344
|
readonly toolDryRun: {
|
|
247
|
-
readonly requestsPerMinute:
|
|
345
|
+
readonly requestsPerMinute: 600;
|
|
248
346
|
readonly orgRequests: {
|
|
249
|
-
readonly limit:
|
|
347
|
+
readonly limit: 10000;
|
|
250
348
|
readonly windowSeconds: number;
|
|
251
349
|
};
|
|
252
350
|
};
|
|
@@ -261,36 +359,36 @@ export declare const PLAN_LIMITS: {
|
|
|
261
359
|
};
|
|
262
360
|
readonly web: {
|
|
263
361
|
readonly tenantRead: {
|
|
264
|
-
readonly requestsPerMinute:
|
|
362
|
+
readonly requestsPerMinute: 1500;
|
|
265
363
|
readonly orgUnits: {
|
|
266
|
-
readonly limit:
|
|
364
|
+
readonly limit: 100000000;
|
|
267
365
|
readonly windowSeconds: number;
|
|
268
366
|
};
|
|
269
367
|
};
|
|
270
368
|
readonly tenantWrite: {
|
|
271
|
-
readonly requestsPerMinute:
|
|
369
|
+
readonly requestsPerMinute: 900;
|
|
272
370
|
readonly orgUnits: {
|
|
273
|
-
readonly limit:
|
|
371
|
+
readonly limit: 50000000;
|
|
274
372
|
readonly windowSeconds: number;
|
|
275
373
|
};
|
|
276
374
|
};
|
|
277
375
|
readonly columnRun: {
|
|
278
|
-
readonly requestsPerMinute:
|
|
376
|
+
readonly requestsPerMinute: 600;
|
|
279
377
|
readonly orgUnits: {
|
|
280
|
-
readonly limit:
|
|
378
|
+
readonly limit: 2500000;
|
|
281
379
|
readonly windowSeconds: number;
|
|
282
380
|
};
|
|
283
381
|
};
|
|
284
382
|
readonly import: {
|
|
285
|
-
readonly requestsPerMinute:
|
|
383
|
+
readonly requestsPerMinute: 150;
|
|
286
384
|
readonly orgRequests: {
|
|
287
|
-
readonly limit:
|
|
385
|
+
readonly limit: 2500;
|
|
288
386
|
readonly windowSeconds: number;
|
|
289
387
|
};
|
|
290
388
|
};
|
|
291
389
|
};
|
|
292
390
|
readonly import: {
|
|
293
|
-
readonly maxRowsPerFile:
|
|
391
|
+
readonly maxRowsPerFile: number;
|
|
294
392
|
readonly maxFileBytes: number;
|
|
295
393
|
readonly maxDirectCsvBodyBytes: 10000000;
|
|
296
394
|
};
|
|
@@ -311,52 +409,55 @@ export declare const PLAN_LIMITS: {
|
|
|
311
409
|
readonly tableActions: {
|
|
312
410
|
readonly maxActionsPerRun: 25;
|
|
313
411
|
};
|
|
412
|
+
readonly workflows: {
|
|
413
|
+
readonly cronMinIntervalMinutes: 1;
|
|
414
|
+
};
|
|
314
415
|
};
|
|
315
416
|
readonly pro: {
|
|
316
417
|
readonly cli: {
|
|
317
418
|
readonly global: {
|
|
318
|
-
readonly keyRequestsPerMinute:
|
|
319
|
-
readonly orgRequestsPerMinute:
|
|
419
|
+
readonly keyRequestsPerMinute: 6000;
|
|
420
|
+
readonly orgRequestsPerMinute: 6000;
|
|
320
421
|
};
|
|
321
422
|
readonly tenantRead: {
|
|
322
|
-
readonly requestsPerMinute:
|
|
423
|
+
readonly requestsPerMinute: 1200;
|
|
323
424
|
readonly orgUnits: {
|
|
324
|
-
readonly limit:
|
|
425
|
+
readonly limit: 250000000;
|
|
325
426
|
readonly windowSeconds: number;
|
|
326
427
|
};
|
|
327
428
|
};
|
|
328
429
|
readonly tenantWrite: {
|
|
329
|
-
readonly requestsPerMinute:
|
|
430
|
+
readonly requestsPerMinute: 1200;
|
|
330
431
|
readonly orgUnits: {
|
|
331
|
-
readonly limit:
|
|
432
|
+
readonly limit: 50000000;
|
|
332
433
|
readonly windowSeconds: number;
|
|
333
434
|
};
|
|
334
435
|
};
|
|
335
436
|
readonly bulkImport: {
|
|
336
|
-
readonly requestsPerMinute:
|
|
437
|
+
readonly requestsPerMinute: 300;
|
|
337
438
|
readonly orgRequests: {
|
|
338
|
-
readonly limit:
|
|
439
|
+
readonly limit: 5000;
|
|
339
440
|
readonly windowSeconds: number;
|
|
340
441
|
};
|
|
341
442
|
};
|
|
342
443
|
readonly aiLive: {
|
|
343
|
-
readonly requestsPerMinute:
|
|
444
|
+
readonly requestsPerMinute: 600;
|
|
344
445
|
readonly orgRequests: {
|
|
345
|
-
readonly limit:
|
|
446
|
+
readonly limit: 60000;
|
|
346
447
|
readonly windowSeconds: number;
|
|
347
448
|
};
|
|
348
449
|
};
|
|
349
450
|
readonly toolLive: {
|
|
350
|
-
readonly requestsPerMinute:
|
|
451
|
+
readonly requestsPerMinute: 600;
|
|
351
452
|
readonly orgRequests: {
|
|
352
|
-
readonly limit:
|
|
453
|
+
readonly limit: 60000;
|
|
353
454
|
readonly windowSeconds: number;
|
|
354
455
|
};
|
|
355
456
|
};
|
|
356
457
|
readonly toolDryRun: {
|
|
357
|
-
readonly requestsPerMinute:
|
|
458
|
+
readonly requestsPerMinute: 600;
|
|
358
459
|
readonly orgRequests: {
|
|
359
|
-
readonly limit:
|
|
460
|
+
readonly limit: 10000;
|
|
360
461
|
readonly windowSeconds: number;
|
|
361
462
|
};
|
|
362
463
|
};
|
|
@@ -371,36 +472,36 @@ export declare const PLAN_LIMITS: {
|
|
|
371
472
|
};
|
|
372
473
|
readonly web: {
|
|
373
474
|
readonly tenantRead: {
|
|
374
|
-
readonly requestsPerMinute:
|
|
475
|
+
readonly requestsPerMinute: 3000;
|
|
375
476
|
readonly orgUnits: {
|
|
376
|
-
readonly limit:
|
|
477
|
+
readonly limit: 200000000;
|
|
377
478
|
readonly windowSeconds: number;
|
|
378
479
|
};
|
|
379
480
|
};
|
|
380
481
|
readonly tenantWrite: {
|
|
381
|
-
readonly requestsPerMinute:
|
|
482
|
+
readonly requestsPerMinute: 1800;
|
|
382
483
|
readonly orgUnits: {
|
|
383
|
-
readonly limit:
|
|
484
|
+
readonly limit: 100000000;
|
|
384
485
|
readonly windowSeconds: number;
|
|
385
486
|
};
|
|
386
487
|
};
|
|
387
488
|
readonly columnRun: {
|
|
388
|
-
readonly requestsPerMinute:
|
|
489
|
+
readonly requestsPerMinute: 1200;
|
|
389
490
|
readonly orgUnits: {
|
|
390
|
-
readonly limit:
|
|
491
|
+
readonly limit: 5000000;
|
|
391
492
|
readonly windowSeconds: number;
|
|
392
493
|
};
|
|
393
494
|
};
|
|
394
495
|
readonly import: {
|
|
395
|
-
readonly requestsPerMinute:
|
|
496
|
+
readonly requestsPerMinute: 300;
|
|
396
497
|
readonly orgRequests: {
|
|
397
|
-
readonly limit:
|
|
498
|
+
readonly limit: 5000;
|
|
398
499
|
readonly windowSeconds: number;
|
|
399
500
|
};
|
|
400
501
|
};
|
|
401
502
|
};
|
|
402
503
|
readonly import: {
|
|
403
|
-
readonly maxRowsPerFile:
|
|
504
|
+
readonly maxRowsPerFile: number;
|
|
404
505
|
readonly maxFileBytes: number;
|
|
405
506
|
readonly maxDirectCsvBodyBytes: 10000000;
|
|
406
507
|
};
|
|
@@ -415,58 +516,61 @@ export declare const PLAN_LIMITS: {
|
|
|
415
516
|
readonly defaultPerTurnCreditCeiling: 250;
|
|
416
517
|
};
|
|
417
518
|
readonly signals: {
|
|
418
|
-
readonly maxEvents:
|
|
519
|
+
readonly maxEvents: 500;
|
|
419
520
|
readonly maxWindowDays: 180;
|
|
420
521
|
};
|
|
421
522
|
readonly tableActions: {
|
|
422
523
|
readonly maxActionsPerRun: 25;
|
|
423
524
|
};
|
|
525
|
+
readonly workflows: {
|
|
526
|
+
readonly cronMinIntervalMinutes: 1;
|
|
527
|
+
};
|
|
424
528
|
};
|
|
425
529
|
readonly team: {
|
|
426
530
|
readonly cli: {
|
|
427
531
|
readonly global: {
|
|
428
|
-
readonly keyRequestsPerMinute:
|
|
429
|
-
readonly orgRequestsPerMinute:
|
|
532
|
+
readonly keyRequestsPerMinute: 12000;
|
|
533
|
+
readonly orgRequestsPerMinute: 12000;
|
|
430
534
|
};
|
|
431
535
|
readonly tenantRead: {
|
|
432
|
-
readonly requestsPerMinute:
|
|
536
|
+
readonly requestsPerMinute: 2400;
|
|
433
537
|
readonly orgUnits: {
|
|
434
|
-
readonly limit:
|
|
538
|
+
readonly limit: 500000000;
|
|
435
539
|
readonly windowSeconds: number;
|
|
436
540
|
};
|
|
437
541
|
};
|
|
438
542
|
readonly tenantWrite: {
|
|
439
|
-
readonly requestsPerMinute:
|
|
543
|
+
readonly requestsPerMinute: 2400;
|
|
440
544
|
readonly orgUnits: {
|
|
441
|
-
readonly limit:
|
|
545
|
+
readonly limit: 125000000;
|
|
442
546
|
readonly windowSeconds: number;
|
|
443
547
|
};
|
|
444
548
|
};
|
|
445
549
|
readonly bulkImport: {
|
|
446
|
-
readonly requestsPerMinute:
|
|
550
|
+
readonly requestsPerMinute: 600;
|
|
447
551
|
readonly orgRequests: {
|
|
448
|
-
readonly limit:
|
|
552
|
+
readonly limit: 10000;
|
|
449
553
|
readonly windowSeconds: number;
|
|
450
554
|
};
|
|
451
555
|
};
|
|
452
556
|
readonly aiLive: {
|
|
453
|
-
readonly requestsPerMinute:
|
|
557
|
+
readonly requestsPerMinute: 1200;
|
|
454
558
|
readonly orgRequests: {
|
|
455
|
-
readonly limit:
|
|
559
|
+
readonly limit: 150000;
|
|
456
560
|
readonly windowSeconds: number;
|
|
457
561
|
};
|
|
458
562
|
};
|
|
459
563
|
readonly toolLive: {
|
|
460
|
-
readonly requestsPerMinute:
|
|
564
|
+
readonly requestsPerMinute: 1200;
|
|
461
565
|
readonly orgRequests: {
|
|
462
|
-
readonly limit:
|
|
566
|
+
readonly limit: 150000;
|
|
463
567
|
readonly windowSeconds: number;
|
|
464
568
|
};
|
|
465
569
|
};
|
|
466
570
|
readonly toolDryRun: {
|
|
467
|
-
readonly requestsPerMinute:
|
|
571
|
+
readonly requestsPerMinute: 600;
|
|
468
572
|
readonly orgRequests: {
|
|
469
|
-
readonly limit:
|
|
573
|
+
readonly limit: 10000;
|
|
470
574
|
readonly windowSeconds: number;
|
|
471
575
|
};
|
|
472
576
|
};
|
|
@@ -481,36 +585,36 @@ export declare const PLAN_LIMITS: {
|
|
|
481
585
|
};
|
|
482
586
|
readonly web: {
|
|
483
587
|
readonly tenantRead: {
|
|
484
|
-
readonly requestsPerMinute:
|
|
588
|
+
readonly requestsPerMinute: 6000;
|
|
485
589
|
readonly orgUnits: {
|
|
486
|
-
readonly limit:
|
|
590
|
+
readonly limit: 500000000;
|
|
487
591
|
readonly windowSeconds: number;
|
|
488
592
|
};
|
|
489
593
|
};
|
|
490
594
|
readonly tenantWrite: {
|
|
491
|
-
readonly requestsPerMinute:
|
|
595
|
+
readonly requestsPerMinute: 3600;
|
|
492
596
|
readonly orgUnits: {
|
|
493
|
-
readonly limit:
|
|
597
|
+
readonly limit: 250000000;
|
|
494
598
|
readonly windowSeconds: number;
|
|
495
599
|
};
|
|
496
600
|
};
|
|
497
601
|
readonly columnRun: {
|
|
498
|
-
readonly requestsPerMinute:
|
|
602
|
+
readonly requestsPerMinute: 2400;
|
|
499
603
|
readonly orgUnits: {
|
|
500
|
-
readonly limit:
|
|
604
|
+
readonly limit: 12500000;
|
|
501
605
|
readonly windowSeconds: number;
|
|
502
606
|
};
|
|
503
607
|
};
|
|
504
608
|
readonly import: {
|
|
505
|
-
readonly requestsPerMinute:
|
|
609
|
+
readonly requestsPerMinute: 600;
|
|
506
610
|
readonly orgRequests: {
|
|
507
|
-
readonly limit:
|
|
611
|
+
readonly limit: 10000;
|
|
508
612
|
readonly windowSeconds: number;
|
|
509
613
|
};
|
|
510
614
|
};
|
|
511
615
|
};
|
|
512
616
|
readonly import: {
|
|
513
|
-
readonly maxRowsPerFile:
|
|
617
|
+
readonly maxRowsPerFile: number;
|
|
514
618
|
readonly maxFileBytes: number;
|
|
515
619
|
readonly maxDirectCsvBodyBytes: 10000000;
|
|
516
620
|
};
|
|
@@ -525,58 +629,61 @@ export declare const PLAN_LIMITS: {
|
|
|
525
629
|
readonly defaultPerTurnCreditCeiling: 500;
|
|
526
630
|
};
|
|
527
631
|
readonly signals: {
|
|
528
|
-
readonly maxEvents:
|
|
632
|
+
readonly maxEvents: 1000;
|
|
529
633
|
readonly maxWindowDays: 365;
|
|
530
634
|
};
|
|
531
635
|
readonly tableActions: {
|
|
532
|
-
readonly maxActionsPerRun:
|
|
636
|
+
readonly maxActionsPerRun: 50;
|
|
637
|
+
};
|
|
638
|
+
readonly workflows: {
|
|
639
|
+
readonly cronMinIntervalMinutes: 1;
|
|
533
640
|
};
|
|
534
641
|
};
|
|
535
642
|
readonly scale: {
|
|
536
643
|
readonly cli: {
|
|
537
644
|
readonly global: {
|
|
538
|
-
readonly keyRequestsPerMinute:
|
|
539
|
-
readonly orgRequestsPerMinute:
|
|
645
|
+
readonly keyRequestsPerMinute: 30000;
|
|
646
|
+
readonly orgRequestsPerMinute: 30000;
|
|
540
647
|
};
|
|
541
648
|
readonly tenantRead: {
|
|
542
|
-
readonly requestsPerMinute:
|
|
649
|
+
readonly requestsPerMinute: 5000;
|
|
543
650
|
readonly orgUnits: {
|
|
544
|
-
readonly limit:
|
|
651
|
+
readonly limit: 2500000000;
|
|
545
652
|
readonly windowSeconds: number;
|
|
546
653
|
};
|
|
547
654
|
};
|
|
548
655
|
readonly tenantWrite: {
|
|
549
|
-
readonly requestsPerMinute:
|
|
656
|
+
readonly requestsPerMinute: 5000;
|
|
550
657
|
readonly orgUnits: {
|
|
551
|
-
readonly limit:
|
|
658
|
+
readonly limit: 500000000;
|
|
552
659
|
readonly windowSeconds: number;
|
|
553
660
|
};
|
|
554
661
|
};
|
|
555
662
|
readonly bulkImport: {
|
|
556
|
-
readonly requestsPerMinute:
|
|
663
|
+
readonly requestsPerMinute: 1200;
|
|
557
664
|
readonly orgRequests: {
|
|
558
|
-
readonly limit:
|
|
665
|
+
readonly limit: 25000;
|
|
559
666
|
readonly windowSeconds: number;
|
|
560
667
|
};
|
|
561
668
|
};
|
|
562
669
|
readonly aiLive: {
|
|
563
|
-
readonly requestsPerMinute:
|
|
670
|
+
readonly requestsPerMinute: 3000;
|
|
564
671
|
readonly orgRequests: {
|
|
565
|
-
readonly limit:
|
|
672
|
+
readonly limit: 500000;
|
|
566
673
|
readonly windowSeconds: number;
|
|
567
674
|
};
|
|
568
675
|
};
|
|
569
676
|
readonly toolLive: {
|
|
570
|
-
readonly requestsPerMinute:
|
|
677
|
+
readonly requestsPerMinute: 3000;
|
|
571
678
|
readonly orgRequests: {
|
|
572
|
-
readonly limit:
|
|
679
|
+
readonly limit: 500000;
|
|
573
680
|
readonly windowSeconds: number;
|
|
574
681
|
};
|
|
575
682
|
};
|
|
576
683
|
readonly toolDryRun: {
|
|
577
|
-
readonly requestsPerMinute:
|
|
684
|
+
readonly requestsPerMinute: 600;
|
|
578
685
|
readonly orgRequests: {
|
|
579
|
-
readonly limit:
|
|
686
|
+
readonly limit: 10000;
|
|
580
687
|
readonly windowSeconds: number;
|
|
581
688
|
};
|
|
582
689
|
};
|
|
@@ -591,36 +698,36 @@ export declare const PLAN_LIMITS: {
|
|
|
591
698
|
};
|
|
592
699
|
readonly web: {
|
|
593
700
|
readonly tenantRead: {
|
|
594
|
-
readonly requestsPerMinute:
|
|
701
|
+
readonly requestsPerMinute: 10000;
|
|
595
702
|
readonly orgUnits: {
|
|
596
|
-
readonly limit:
|
|
703
|
+
readonly limit: 2000000000;
|
|
597
704
|
readonly windowSeconds: number;
|
|
598
705
|
};
|
|
599
706
|
};
|
|
600
707
|
readonly tenantWrite: {
|
|
601
|
-
readonly requestsPerMinute:
|
|
708
|
+
readonly requestsPerMinute: 7500;
|
|
602
709
|
readonly orgUnits: {
|
|
603
|
-
readonly limit:
|
|
710
|
+
readonly limit: 1000000000;
|
|
604
711
|
readonly windowSeconds: number;
|
|
605
712
|
};
|
|
606
713
|
};
|
|
607
714
|
readonly columnRun: {
|
|
608
|
-
readonly requestsPerMinute:
|
|
715
|
+
readonly requestsPerMinute: 5000;
|
|
609
716
|
readonly orgUnits: {
|
|
610
|
-
readonly limit:
|
|
717
|
+
readonly limit: 50000000;
|
|
611
718
|
readonly windowSeconds: number;
|
|
612
719
|
};
|
|
613
720
|
};
|
|
614
721
|
readonly import: {
|
|
615
|
-
readonly requestsPerMinute:
|
|
722
|
+
readonly requestsPerMinute: 1200;
|
|
616
723
|
readonly orgRequests: {
|
|
617
|
-
readonly limit:
|
|
724
|
+
readonly limit: 25000;
|
|
618
725
|
readonly windowSeconds: number;
|
|
619
726
|
};
|
|
620
727
|
};
|
|
621
728
|
};
|
|
622
729
|
readonly import: {
|
|
623
|
-
readonly maxRowsPerFile:
|
|
730
|
+
readonly maxRowsPerFile: number;
|
|
624
731
|
readonly maxFileBytes: number;
|
|
625
732
|
readonly maxDirectCsvBodyBytes: 10000000;
|
|
626
733
|
};
|
|
@@ -635,14 +742,30 @@ export declare const PLAN_LIMITS: {
|
|
|
635
742
|
readonly defaultPerTurnCreditCeiling: 1000;
|
|
636
743
|
};
|
|
637
744
|
readonly signals: {
|
|
638
|
-
readonly maxEvents:
|
|
745
|
+
readonly maxEvents: 1000;
|
|
639
746
|
readonly maxWindowDays: 365;
|
|
640
747
|
};
|
|
641
748
|
readonly tableActions: {
|
|
642
|
-
readonly maxActionsPerRun:
|
|
749
|
+
readonly maxActionsPerRun: 50;
|
|
750
|
+
};
|
|
751
|
+
readonly workflows: {
|
|
752
|
+
readonly cronMinIntervalMinutes: 1;
|
|
643
753
|
};
|
|
644
754
|
};
|
|
645
755
|
};
|
|
756
|
+
/**
|
|
757
|
+
* The fastest cron cadence, in minutes, a rung may schedule right now. The free
|
|
758
|
+
* rung's cut from every minute to every 15 (decision L4.2) is a tightening, so
|
|
759
|
+
* it resolves through the 2026-09 repricing switch: every minute until the
|
|
760
|
+
* effective instant, `PLAN_LIMITS.free.workflows.cronMinIntervalMinutes` from it.
|
|
761
|
+
*/
|
|
762
|
+
export declare function resolveCronMinIntervalMinutes(tier: LimitsTier, options?: RepricingOptions): number;
|
|
763
|
+
/**
|
|
764
|
+
* The largest minimum cron interval any rung enforces right now. A schedule
|
|
765
|
+
* whose fires are never closer than this fits every plan, so a caller can skip
|
|
766
|
+
* the plan lookup for it.
|
|
767
|
+
*/
|
|
768
|
+
export declare function highestCronMinIntervalMinutes(options?: RepricingOptions): number;
|
|
646
769
|
/**
|
|
647
770
|
* Map a raw plan-tier string (subscription `tier`, metadata tier, legacy plan
|
|
648
771
|
* key like `growth_250`, or an Oxygen rung key like `oxygen_499`) onto its
|
|
@@ -651,3 +774,89 @@ export declare const PLAN_LIMITS: {
|
|
|
651
774
|
*/
|
|
652
775
|
export declare function limitsTierForPlanTier(tier: string | null | undefined): LimitsTier;
|
|
653
776
|
export declare function planLimitsForTier(tier: LimitsTier): PlanLimits;
|
|
777
|
+
/** The default credit ceilings of one Agent run on a rung. */
|
|
778
|
+
export type PlanAgentCreditLimits = {
|
|
779
|
+
maxTotalCredits: number;
|
|
780
|
+
maxInferenceCredits: number;
|
|
781
|
+
};
|
|
782
|
+
/**
|
|
783
|
+
* The default credit ceilings of one Agent run in force on a rung right now.
|
|
784
|
+
*
|
|
785
|
+
* `PLAN_LIMITS[tier].agents` holds the values each rung read before the 2026-09
|
|
786
|
+
* repricing. The team and scale rungs drop to 2,500 total / 1,250 inference
|
|
787
|
+
* (decision L5.4, inference half PROPOSED P-56), and a cut waits for the
|
|
788
|
+
* effective-date switch (`agents.<tier>.*` in `REPRICING_2026_09_SCHEDULE`).
|
|
789
|
+
* Every Agent budget check reads this, never the table, so the cut lands
|
|
790
|
+
* everywhere at the same instant.
|
|
791
|
+
*/
|
|
792
|
+
export declare function resolvePlanAgentCreditLimits(tier: LimitsTier, options?: RepricingOptions): PlanAgentCreditLimits;
|
|
793
|
+
/**
|
|
794
|
+
* The platform's hard backstop on one Agent run's approved credit ceiling
|
|
795
|
+
* (decision F.4, ratified 2026-09-27).
|
|
796
|
+
*
|
|
797
|
+
* The plan's Agent run ceiling is a DEFAULT: a run or trigger whose approved
|
|
798
|
+
* `max_credits` fits under it needs only the usual approval. Going above it
|
|
799
|
+
* takes a second, explicit per-run (or per-trigger) approval, and even that
|
|
800
|
+
* approval stops here. 25,000 credits ($250) is the largest standing
|
|
801
|
+
* per-delivery default any plan has carried (the pre-2026-09 scale trigger
|
|
802
|
+
* default), so an approved Agent run never outspends one delivery of the
|
|
803
|
+
* largest plan's own automation. The other backstops stay in force whatever is
|
|
804
|
+
* approved: the plan's upstream-USD clamp, the iteration, tool-call and
|
|
805
|
+
* active-minute bounds, the balance check on every reservation and the org
|
|
806
|
+
* daily spend guard.
|
|
807
|
+
*/
|
|
808
|
+
export declare const AGENT_RUN_APPROVED_CEILING_MAX_CREDITS = 25000;
|
|
809
|
+
/** Where an org's default Agent run ceiling came from. */
|
|
810
|
+
export type AgentRunDefaultCeilingSource = "plan" | "enterprise_contract";
|
|
811
|
+
/** The Agent run ceilings an org's runs are held to without a further approval. */
|
|
812
|
+
export type AgentRunDefaultCeilings = PlanAgentCreditLimits & {
|
|
813
|
+
source: AgentRunDefaultCeilingSource;
|
|
814
|
+
};
|
|
815
|
+
/**
|
|
816
|
+
* The default Agent run ceilings for an org: its plan rung's, unless an
|
|
817
|
+
* enterprise contract names its own default (decision F.4). The contract value
|
|
818
|
+
* replaces the rung's total and model calls take half of it, as on every paid
|
|
819
|
+
* rung. A contract value is clamped to the platform backstop; an unusable one
|
|
820
|
+
* (absent, non-numeric, not positive) is ignored.
|
|
821
|
+
*/
|
|
822
|
+
export declare function resolveAgentRunDefaultCeilings(input: {
|
|
823
|
+
tier: LimitsTier;
|
|
824
|
+
enterpriseDefaultCredits?: number | null;
|
|
825
|
+
options?: RepricingOptions;
|
|
826
|
+
}): AgentRunDefaultCeilings;
|
|
827
|
+
/** `details.approval_kind` on the refusal below, so every surface can render its own approval card. */
|
|
828
|
+
export declare const AGENT_CEILING_ABOVE_DEFAULT_APPROVAL_KIND = "agent_ceiling_above_default";
|
|
829
|
+
/**
|
|
830
|
+
* Check one run's (or one trigger's per-delivery) approved ceiling against the
|
|
831
|
+
* org's default before anything is created.
|
|
832
|
+
*
|
|
833
|
+
* - At or under the default: nothing more to approve.
|
|
834
|
+
* - Above it: refused with `approval_required` unless the caller also passed the
|
|
835
|
+
* explicit above-default approval. The details carry the numbers and the flag
|
|
836
|
+
* each surface re-sends, so the refusal is the approval card.
|
|
837
|
+
* - Above the platform backstop: refused outright; no approval raises it.
|
|
838
|
+
*
|
|
839
|
+
* Returns whether the approved ceiling is above the default; the caller persists
|
|
840
|
+
* that as the run's or trigger's above-default approval.
|
|
841
|
+
*/
|
|
842
|
+
export declare function assertAgentRunCeilingApproval(input: {
|
|
843
|
+
maxCredits: number;
|
|
844
|
+
defaults: AgentRunDefaultCeilings;
|
|
845
|
+
approveAboveDefault: boolean;
|
|
846
|
+
/** "run" for one run, "trigger" for a trigger's per-delivery ceiling. */
|
|
847
|
+
scope: "run" | "trigger";
|
|
848
|
+
}): {
|
|
849
|
+
aboveDefault: boolean;
|
|
850
|
+
};
|
|
851
|
+
/**
|
|
852
|
+
* The ceilings one run is held to, for the worker and every budget check that
|
|
853
|
+
* reads a run's authority. A run with a recorded above-default approval is
|
|
854
|
+
* bounded by its own approved `max_credits` (applied by the caller as a user
|
|
855
|
+
* limit) under the platform backstop. Every other run is bounded by the default,
|
|
856
|
+
* so a ceiling approved without the second approval — including every one
|
|
857
|
+
* approved before this rule — still binds at the default exactly as before.
|
|
858
|
+
*/
|
|
859
|
+
export declare function agentRunEnforcedCeilings(input: {
|
|
860
|
+
defaults: PlanAgentCreditLimits;
|
|
861
|
+
aboveDefaultApproved: boolean;
|
|
862
|
+
}): PlanAgentCreditLimits;
|