guardrail-core 1.0.0
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/dist/__tests__/autopilot.test.d.ts +7 -0
- package/dist/__tests__/autopilot.test.d.ts.map +1 -0
- package/dist/__tests__/autopilot.test.js +156 -0
- package/dist/__tests__/tier-config.test.d.ts +9 -0
- package/dist/__tests__/tier-config.test.d.ts.map +1 -0
- package/dist/__tests__/tier-config.test.js +230 -0
- package/dist/__tests__/utils/hash-inline.test.d.ts +2 -0
- package/dist/__tests__/utils/hash-inline.test.d.ts.map +1 -0
- package/dist/__tests__/utils/hash-inline.test.js +62 -0
- package/dist/__tests__/utils/hash.test.d.ts +3 -0
- package/dist/__tests__/utils/hash.test.d.ts.map +1 -0
- package/dist/__tests__/utils/hash.test.js +95 -0
- package/dist/__tests__/utils/simple.test.d.ts +1 -0
- package/dist/__tests__/utils/simple.test.d.ts.map +1 -0
- package/dist/__tests__/utils/simple.test.js +10 -0
- package/dist/__tests__/utils/utils-simple.test.d.ts +1 -0
- package/dist/__tests__/utils/utils-simple.test.d.ts.map +1 -0
- package/dist/__tests__/utils/utils-simple.test.js +6 -0
- package/dist/__tests__/utils/utils.test.d.ts +15 -0
- package/dist/__tests__/utils/utils.test.d.ts.map +1 -0
- package/dist/__tests__/utils/utils.test.js +172 -0
- package/dist/autopilot/autopilot-runner.d.ts +33 -0
- package/dist/autopilot/autopilot-runner.d.ts.map +1 -0
- package/dist/autopilot/autopilot-runner.js +479 -0
- package/dist/autopilot/index.d.ts +6 -0
- package/dist/autopilot/index.d.ts.map +1 -0
- package/dist/autopilot/index.js +25 -0
- package/dist/autopilot/types.d.ts +102 -0
- package/dist/autopilot/types.d.ts.map +1 -0
- package/dist/autopilot/types.js +18 -0
- package/dist/cache/index.d.ts +7 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/index.js +22 -0
- package/dist/cache/redis-cache.d.ts +145 -0
- package/dist/cache/redis-cache.d.ts.map +1 -0
- package/dist/cache/redis-cache.js +459 -0
- package/dist/ci/github-actions.d.ts +77 -0
- package/dist/ci/github-actions.d.ts.map +1 -0
- package/dist/ci/github-actions.js +277 -0
- package/dist/ci/index.d.ts +12 -0
- package/dist/ci/index.d.ts.map +1 -0
- package/dist/ci/index.js +27 -0
- package/dist/ci/pre-commit.d.ts +65 -0
- package/dist/ci/pre-commit.d.ts.map +1 -0
- package/dist/ci/pre-commit.js +286 -0
- package/dist/entitlements.d.ts +149 -0
- package/dist/entitlements.d.ts.map +1 -0
- package/dist/entitlements.js +464 -0
- package/dist/env.d.ts +113 -0
- package/dist/env.d.ts.map +1 -0
- package/dist/env.js +204 -0
- package/dist/fix-packs/__tests__/generate-fix-packs.test.d.ts +7 -0
- package/dist/fix-packs/__tests__/generate-fix-packs.test.d.ts.map +1 -0
- package/dist/fix-packs/__tests__/generate-fix-packs.test.js +250 -0
- package/dist/fix-packs/generate-fix-packs.d.ts +15 -0
- package/dist/fix-packs/generate-fix-packs.d.ts.map +1 -0
- package/dist/fix-packs/generate-fix-packs.js +505 -0
- package/dist/fix-packs/index.d.ts +8 -0
- package/dist/fix-packs/index.d.ts.map +1 -0
- package/dist/fix-packs/index.js +23 -0
- package/dist/fix-packs/types.d.ts +113 -0
- package/dist/fix-packs/types.d.ts.map +1 -0
- package/dist/fix-packs/types.js +71 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +28 -0
- package/dist/metrics/prometheus.d.ts +99 -0
- package/dist/metrics/prometheus.d.ts.map +1 -0
- package/dist/metrics/prometheus.js +306 -0
- package/dist/quota-ledger.d.ts +119 -0
- package/dist/quota-ledger.d.ts.map +1 -0
- package/dist/quota-ledger.js +462 -0
- package/dist/rbac/__tests__/permissions.test.d.ts +8 -0
- package/dist/rbac/__tests__/permissions.test.d.ts.map +1 -0
- package/dist/rbac/__tests__/permissions.test.js +350 -0
- package/dist/rbac/index.d.ts +9 -0
- package/dist/rbac/index.d.ts.map +1 -0
- package/dist/rbac/index.js +32 -0
- package/dist/rbac/permissions.d.ts +71 -0
- package/dist/rbac/permissions.d.ts.map +1 -0
- package/dist/rbac/permissions.js +247 -0
- package/dist/rbac/types.d.ts +69 -0
- package/dist/rbac/types.d.ts.map +1 -0
- package/dist/rbac/types.js +213 -0
- package/dist/tier-config.d.ts +203 -0
- package/dist/tier-config.d.ts.map +1 -0
- package/dist/tier-config.js +675 -0
- package/dist/types.d.ts +365 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/utils.d.ts +36 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +127 -0
- package/dist/verified-autofix/__tests__/format-validator.test.d.ts +11 -0
- package/dist/verified-autofix/__tests__/format-validator.test.d.ts.map +1 -0
- package/dist/verified-autofix/__tests__/format-validator.test.js +285 -0
- package/dist/verified-autofix/__tests__/pipeline.test.d.ts +11 -0
- package/dist/verified-autofix/__tests__/pipeline.test.d.ts.map +1 -0
- package/dist/verified-autofix/__tests__/pipeline.test.js +389 -0
- package/dist/verified-autofix/__tests__/repo-fingerprint.test.d.ts +11 -0
- package/dist/verified-autofix/__tests__/repo-fingerprint.test.d.ts.map +1 -0
- package/dist/verified-autofix/__tests__/repo-fingerprint.test.js +236 -0
- package/dist/verified-autofix/__tests__/workspace.test.d.ts +11 -0
- package/dist/verified-autofix/__tests__/workspace.test.d.ts.map +1 -0
- package/dist/verified-autofix/__tests__/workspace.test.js +314 -0
- package/dist/verified-autofix/format-validator.d.ts +101 -0
- package/dist/verified-autofix/format-validator.d.ts.map +1 -0
- package/dist/verified-autofix/format-validator.js +446 -0
- package/dist/verified-autofix/index.d.ts +14 -0
- package/dist/verified-autofix/index.d.ts.map +1 -0
- package/dist/verified-autofix/index.js +39 -0
- package/dist/verified-autofix/pipeline.d.ts +68 -0
- package/dist/verified-autofix/pipeline.d.ts.map +1 -0
- package/dist/verified-autofix/pipeline.js +330 -0
- package/dist/verified-autofix/repo-fingerprint.d.ts +56 -0
- package/dist/verified-autofix/repo-fingerprint.d.ts.map +1 -0
- package/dist/verified-autofix/repo-fingerprint.js +396 -0
- package/dist/verified-autofix/workspace.d.ts +83 -0
- package/dist/verified-autofix/workspace.d.ts.map +1 -0
- package/dist/verified-autofix/workspace.js +454 -0
- package/dist/verified-autofix.d.ts +182 -0
- package/dist/verified-autofix.d.ts.map +1 -0
- package/dist/verified-autofix.js +1021 -0
- package/dist/visualization/dependency-graph.d.ts +79 -0
- package/dist/visualization/dependency-graph.d.ts.map +1 -0
- package/dist/visualization/dependency-graph.js +399 -0
- package/dist/visualization/index.d.ts +5 -0
- package/dist/visualization/index.d.ts.map +1 -0
- package/dist/visualization/index.js +20 -0
- package/package.json +29 -0
- package/src/__tests__/autopilot.test.ts +196 -0
- package/src/__tests__/tier-config.test.ts +289 -0
- package/src/__tests__/utils/hash-inline.test.ts +76 -0
- package/src/__tests__/utils/hash.test.ts +119 -0
- package/src/__tests__/utils/simple.test.ts +10 -0
- package/src/__tests__/utils/utils-simple.test.ts +5 -0
- package/src/__tests__/utils/utils.test.ts +203 -0
- package/src/autopilot/autopilot-runner.ts +503 -0
- package/src/autopilot/index.ts +6 -0
- package/src/autopilot/types.ts +119 -0
- package/src/cache/index.ts +7 -0
- package/src/cache/redis-cache.d.ts +155 -0
- package/src/cache/redis-cache.d.ts.map +1 -0
- package/src/cache/redis-cache.ts +517 -0
- package/src/ci/github-actions.ts +335 -0
- package/src/ci/index.ts +12 -0
- package/src/ci/pre-commit.ts +338 -0
- package/src/db/usage-schema.prisma +114 -0
- package/src/entitlements.ts +570 -0
- package/src/env.d.ts +68 -0
- package/src/env.d.ts.map +1 -0
- package/src/env.ts +247 -0
- package/src/fix-packs/__tests__/generate-fix-packs.test.ts +317 -0
- package/src/fix-packs/generate-fix-packs.ts +577 -0
- package/src/fix-packs/index.ts +8 -0
- package/src/fix-packs/types.ts +206 -0
- package/src/index.d.ts +7 -0
- package/src/index.d.ts.map +1 -0
- package/src/index.ts +12 -0
- package/src/metrics/prometheus.d.ts +104 -0
- package/src/metrics/prometheus.d.ts.map +1 -0
- package/src/metrics/prometheus.ts +446 -0
- package/src/quota-ledger.ts +548 -0
- package/src/rbac/__tests__/permissions.test.ts +446 -0
- package/src/rbac/index.ts +46 -0
- package/src/rbac/permissions.ts +301 -0
- package/src/rbac/types.ts +298 -0
- package/src/tier-config.json +157 -0
- package/src/tier-config.ts +815 -0
- package/src/types.d.ts +365 -0
- package/src/types.d.ts.map +1 -0
- package/src/types.ts +441 -0
- package/src/utils.d.ts +36 -0
- package/src/utils.d.ts.map +1 -0
- package/src/utils.ts +140 -0
- package/src/verified-autofix/__tests__/format-validator.test.ts +335 -0
- package/src/verified-autofix/__tests__/pipeline.test.ts +419 -0
- package/src/verified-autofix/__tests__/repo-fingerprint.test.ts +241 -0
- package/src/verified-autofix/__tests__/workspace.test.ts +373 -0
- package/src/verified-autofix/format-validator.ts +517 -0
- package/src/verified-autofix/index.ts +63 -0
- package/src/verified-autofix/pipeline.ts +403 -0
- package/src/verified-autofix/repo-fingerprint.ts +459 -0
- package/src/verified-autofix/workspace.ts +531 -0
- package/src/verified-autofix.ts +1187 -0
- package/src/visualization/dependency-graph.d.ts +85 -0
- package/src/visualization/dependency-graph.d.ts.map +1 -0
- package/src/visualization/dependency-graph.ts +495 -0
- package/src/visualization/index.ts +5 -0
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical Tier Configuration
|
|
3
|
+
*
|
|
4
|
+
* SINGLE SOURCE OF TRUTH for all tier definitions across:
|
|
5
|
+
* - Backend entitlements
|
|
6
|
+
* - Rate limiting
|
|
7
|
+
* - Stripe billing mapping
|
|
8
|
+
* - Landing page pricing
|
|
9
|
+
* - CLI entitlements
|
|
10
|
+
*
|
|
11
|
+
* DO NOT define tier configurations anywhere else in the codebase.
|
|
12
|
+
*/
|
|
13
|
+
export declare const TIERS: readonly ["free", "starter", "pro", "compliance", "enterprise", "unlimited"];
|
|
14
|
+
export type Tier = typeof TIERS[number];
|
|
15
|
+
/** Tiers that can be purchased (excludes free and unlimited) */
|
|
16
|
+
export declare const PURCHASABLE_TIERS: readonly ["starter", "pro", "compliance", "enterprise"];
|
|
17
|
+
export type PurchasableTier = typeof PURCHASABLE_TIERS[number];
|
|
18
|
+
/** Tier order for comparison (lower index = lower tier) */
|
|
19
|
+
export declare const TIER_ORDER: Tier[];
|
|
20
|
+
export declare const FEATURES: readonly ["scan", "scan:full", "scan:security", "scan:compliance", "gate", "fix", "fix:auto", "ship", "reality", "reality:flows", "ai-agent", "ai-agent:goals", "autopilot", "context", "badge", "mcp", "compliance:soc2", "compliance:hipaa", "compliance:gdpr", "compliance:pci", "compliance:nist", "compliance:iso27001", "reports:html", "reports:pdf", "reports:sarif", "team:members", "team:admin", "api:access", "webhooks", "deploy-hooks"];
|
|
21
|
+
export type Feature = typeof FEATURES[number];
|
|
22
|
+
export interface TierLimits {
|
|
23
|
+
/** Scans per month (-1 = unlimited) */
|
|
24
|
+
scansPerMonth: number;
|
|
25
|
+
/** Reality Mode runs per month */
|
|
26
|
+
realityRunsPerMonth: number;
|
|
27
|
+
/** AI Agent runs per month */
|
|
28
|
+
aiAgentRunsPerMonth: number;
|
|
29
|
+
/** Number of projects */
|
|
30
|
+
projects: number;
|
|
31
|
+
/** Base team members included in tier */
|
|
32
|
+
teamMembers: number;
|
|
33
|
+
/** Compliance frameworks available */
|
|
34
|
+
complianceFrameworks: number;
|
|
35
|
+
}
|
|
36
|
+
export interface SeatPricing {
|
|
37
|
+
/** Price per additional seat per month */
|
|
38
|
+
monthlyPricePerSeat: number;
|
|
39
|
+
/** Price per additional seat per year */
|
|
40
|
+
annualPricePerSeat: number;
|
|
41
|
+
/** Maximum additional seats allowed (-1 = unlimited) */
|
|
42
|
+
maxAdditionalSeats: number;
|
|
43
|
+
/** Whether this tier supports additional seats */
|
|
44
|
+
supportsAdditionalSeats: boolean;
|
|
45
|
+
}
|
|
46
|
+
export declare const SEAT_PRICING: Record<Tier, SeatPricing>;
|
|
47
|
+
export interface RateLimitConfig {
|
|
48
|
+
/** Requests per minute */
|
|
49
|
+
requestsPerMinute: number;
|
|
50
|
+
/** Burst limit (max requests in short window) */
|
|
51
|
+
burstLimit: number;
|
|
52
|
+
/** Rate limit window in milliseconds */
|
|
53
|
+
windowMs: number;
|
|
54
|
+
}
|
|
55
|
+
export interface TierConfig {
|
|
56
|
+
/** Tier identifier */
|
|
57
|
+
id: Tier;
|
|
58
|
+
/** Display name */
|
|
59
|
+
name: string;
|
|
60
|
+
/** Monthly price in USD */
|
|
61
|
+
price: number;
|
|
62
|
+
/** Annual price in USD (typically ~2 months free) */
|
|
63
|
+
annualPrice: number;
|
|
64
|
+
/** Short description for pricing page */
|
|
65
|
+
description: string;
|
|
66
|
+
/** Features included in this tier */
|
|
67
|
+
features: Feature[];
|
|
68
|
+
/** Usage limits */
|
|
69
|
+
limits: TierLimits;
|
|
70
|
+
/** API rate limiting configuration */
|
|
71
|
+
rateLimit: RateLimitConfig;
|
|
72
|
+
/** Upsell configuration */
|
|
73
|
+
upsell: {
|
|
74
|
+
message: string;
|
|
75
|
+
nextTier: Tier;
|
|
76
|
+
};
|
|
77
|
+
/** Stripe price IDs (set via environment variables) */
|
|
78
|
+
stripe?: {
|
|
79
|
+
monthlyPriceId?: string;
|
|
80
|
+
annualPriceId?: string;
|
|
81
|
+
/** Stripe price ID for additional seats (metered or per-unit) */
|
|
82
|
+
seatPriceId?: string;
|
|
83
|
+
seatAnnualPriceId?: string;
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
export declare const TIER_CONFIG: Record<Tier, TierConfig>;
|
|
87
|
+
/**
|
|
88
|
+
* Check if a tier string is valid
|
|
89
|
+
*/
|
|
90
|
+
export declare function isValidTier(tier: string): tier is Tier;
|
|
91
|
+
/**
|
|
92
|
+
* Get tier config by tier name
|
|
93
|
+
*/
|
|
94
|
+
export declare function getTierConfig(tier: Tier): TierConfig;
|
|
95
|
+
/**
|
|
96
|
+
* Get all tier configs as array (useful for iteration)
|
|
97
|
+
*/
|
|
98
|
+
export declare function getAllTierConfigs(): TierConfig[];
|
|
99
|
+
/**
|
|
100
|
+
* Get purchasable tier configs (for pricing page)
|
|
101
|
+
*/
|
|
102
|
+
export declare function getPurchasableTierConfigs(): TierConfig[];
|
|
103
|
+
/**
|
|
104
|
+
* Compare two tiers (-1 if a < b, 0 if equal, 1 if a > b)
|
|
105
|
+
*/
|
|
106
|
+
export declare function compareTiers(a: Tier, b: Tier): number;
|
|
107
|
+
/**
|
|
108
|
+
* Check if tier A is higher than tier B
|
|
109
|
+
*/
|
|
110
|
+
export declare function isTierHigher(a: Tier, b: Tier): boolean;
|
|
111
|
+
/**
|
|
112
|
+
* Find the minimum tier that has a specific feature
|
|
113
|
+
*/
|
|
114
|
+
export declare function getMinimumTierForFeature(feature: Feature): Tier | null;
|
|
115
|
+
/**
|
|
116
|
+
* Check if a tier has a specific feature
|
|
117
|
+
*/
|
|
118
|
+
export declare function tierHasFeature(tier: Tier, feature: Feature): boolean;
|
|
119
|
+
/**
|
|
120
|
+
* Get limit value, handling -1 as Infinity
|
|
121
|
+
*/
|
|
122
|
+
export declare function getEffectiveLimit(limit: number): number;
|
|
123
|
+
/**
|
|
124
|
+
* Format limit for display
|
|
125
|
+
*/
|
|
126
|
+
export declare function formatLimit(limit: number): string;
|
|
127
|
+
/**
|
|
128
|
+
* Get Stripe price ID for a tier (from environment)
|
|
129
|
+
*/
|
|
130
|
+
export declare function getStripePriceId(tier: PurchasableTier, interval: 'month' | 'year'): string | undefined;
|
|
131
|
+
/**
|
|
132
|
+
* Map Stripe price ID back to tier
|
|
133
|
+
*/
|
|
134
|
+
export declare function getTierFromStripePriceId(priceId: string): Tier;
|
|
135
|
+
/**
|
|
136
|
+
* Get pricing tiers formatted for landing page display
|
|
137
|
+
*/
|
|
138
|
+
export declare function getPricingPageTiers(): Array<{
|
|
139
|
+
id: Tier;
|
|
140
|
+
name: string;
|
|
141
|
+
price: number;
|
|
142
|
+
annual: number;
|
|
143
|
+
description: string;
|
|
144
|
+
popular: boolean;
|
|
145
|
+
features: string[];
|
|
146
|
+
}>;
|
|
147
|
+
/**
|
|
148
|
+
* Get rate limit config for a tier (for rate-limiter middleware)
|
|
149
|
+
*/
|
|
150
|
+
export declare function getRateLimitForTier(tier: Tier): RateLimitConfig;
|
|
151
|
+
/**
|
|
152
|
+
* Get user tiers formatted for rate limiter
|
|
153
|
+
*/
|
|
154
|
+
export declare function getRateLimiterTiers(): Record<Tier, {
|
|
155
|
+
name: string;
|
|
156
|
+
baseLimit: number;
|
|
157
|
+
burstLimit: number;
|
|
158
|
+
windowMs: number;
|
|
159
|
+
}>;
|
|
160
|
+
/**
|
|
161
|
+
* Get seat pricing for a tier
|
|
162
|
+
*/
|
|
163
|
+
export declare function getSeatPricing(tier: Tier): SeatPricing;
|
|
164
|
+
/**
|
|
165
|
+
* Calculate effective team seats (base + purchased extras)
|
|
166
|
+
*/
|
|
167
|
+
export declare function calculateEffectiveSeats(tier: Tier, purchasedExtraSeats: number): number;
|
|
168
|
+
/**
|
|
169
|
+
* Check if a member can be added given current seats and effective limit
|
|
170
|
+
*/
|
|
171
|
+
export declare function canAddMember(tier: Tier, currentMemberCount: number, purchasedExtraSeats: number): {
|
|
172
|
+
allowed: boolean;
|
|
173
|
+
reason?: string;
|
|
174
|
+
effectiveSeats: number;
|
|
175
|
+
};
|
|
176
|
+
/**
|
|
177
|
+
* Calculate cost for additional seats
|
|
178
|
+
*/
|
|
179
|
+
export declare function calculateSeatCost(tier: Tier, additionalSeats: number, billingInterval: 'month' | 'year'): {
|
|
180
|
+
total: number;
|
|
181
|
+
perSeat: number;
|
|
182
|
+
supported: boolean;
|
|
183
|
+
};
|
|
184
|
+
/**
|
|
185
|
+
* Get Stripe seat price ID for a tier
|
|
186
|
+
*/
|
|
187
|
+
export declare function getStripeSeatPriceId(tier: Tier, interval: 'month' | 'year'): string | undefined;
|
|
188
|
+
/**
|
|
189
|
+
* Format seat info for display
|
|
190
|
+
*/
|
|
191
|
+
export declare function formatSeatInfo(tier: Tier): string;
|
|
192
|
+
/**
|
|
193
|
+
* Validate seat reduction (graceful handling)
|
|
194
|
+
* Returns info about whether reduction is safe or requires admin action
|
|
195
|
+
*/
|
|
196
|
+
export declare function validateSeatReduction(currentMemberCount: number, _currentEffectiveSeats: number, // Kept for API compatibility, may be used for logging
|
|
197
|
+
newEffectiveSeats: number): {
|
|
198
|
+
safe: boolean;
|
|
199
|
+
requiresAction: boolean;
|
|
200
|
+
excessMembers: number;
|
|
201
|
+
message: string;
|
|
202
|
+
};
|
|
203
|
+
//# sourceMappingURL=tier-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tier-config.d.ts","sourceRoot":"","sources":["../src/tier-config.ts"],"names":[],"mappings":"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"}
|