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.
Files changed (189) hide show
  1. package/dist/__tests__/autopilot.test.d.ts +7 -0
  2. package/dist/__tests__/autopilot.test.d.ts.map +1 -0
  3. package/dist/__tests__/autopilot.test.js +156 -0
  4. package/dist/__tests__/tier-config.test.d.ts +9 -0
  5. package/dist/__tests__/tier-config.test.d.ts.map +1 -0
  6. package/dist/__tests__/tier-config.test.js +230 -0
  7. package/dist/__tests__/utils/hash-inline.test.d.ts +2 -0
  8. package/dist/__tests__/utils/hash-inline.test.d.ts.map +1 -0
  9. package/dist/__tests__/utils/hash-inline.test.js +62 -0
  10. package/dist/__tests__/utils/hash.test.d.ts +3 -0
  11. package/dist/__tests__/utils/hash.test.d.ts.map +1 -0
  12. package/dist/__tests__/utils/hash.test.js +95 -0
  13. package/dist/__tests__/utils/simple.test.d.ts +1 -0
  14. package/dist/__tests__/utils/simple.test.d.ts.map +1 -0
  15. package/dist/__tests__/utils/simple.test.js +10 -0
  16. package/dist/__tests__/utils/utils-simple.test.d.ts +1 -0
  17. package/dist/__tests__/utils/utils-simple.test.d.ts.map +1 -0
  18. package/dist/__tests__/utils/utils-simple.test.js +6 -0
  19. package/dist/__tests__/utils/utils.test.d.ts +15 -0
  20. package/dist/__tests__/utils/utils.test.d.ts.map +1 -0
  21. package/dist/__tests__/utils/utils.test.js +172 -0
  22. package/dist/autopilot/autopilot-runner.d.ts +33 -0
  23. package/dist/autopilot/autopilot-runner.d.ts.map +1 -0
  24. package/dist/autopilot/autopilot-runner.js +479 -0
  25. package/dist/autopilot/index.d.ts +6 -0
  26. package/dist/autopilot/index.d.ts.map +1 -0
  27. package/dist/autopilot/index.js +25 -0
  28. package/dist/autopilot/types.d.ts +102 -0
  29. package/dist/autopilot/types.d.ts.map +1 -0
  30. package/dist/autopilot/types.js +18 -0
  31. package/dist/cache/index.d.ts +7 -0
  32. package/dist/cache/index.d.ts.map +1 -0
  33. package/dist/cache/index.js +22 -0
  34. package/dist/cache/redis-cache.d.ts +145 -0
  35. package/dist/cache/redis-cache.d.ts.map +1 -0
  36. package/dist/cache/redis-cache.js +459 -0
  37. package/dist/ci/github-actions.d.ts +77 -0
  38. package/dist/ci/github-actions.d.ts.map +1 -0
  39. package/dist/ci/github-actions.js +277 -0
  40. package/dist/ci/index.d.ts +12 -0
  41. package/dist/ci/index.d.ts.map +1 -0
  42. package/dist/ci/index.js +27 -0
  43. package/dist/ci/pre-commit.d.ts +65 -0
  44. package/dist/ci/pre-commit.d.ts.map +1 -0
  45. package/dist/ci/pre-commit.js +286 -0
  46. package/dist/entitlements.d.ts +149 -0
  47. package/dist/entitlements.d.ts.map +1 -0
  48. package/dist/entitlements.js +464 -0
  49. package/dist/env.d.ts +113 -0
  50. package/dist/env.d.ts.map +1 -0
  51. package/dist/env.js +204 -0
  52. package/dist/fix-packs/__tests__/generate-fix-packs.test.d.ts +7 -0
  53. package/dist/fix-packs/__tests__/generate-fix-packs.test.d.ts.map +1 -0
  54. package/dist/fix-packs/__tests__/generate-fix-packs.test.js +250 -0
  55. package/dist/fix-packs/generate-fix-packs.d.ts +15 -0
  56. package/dist/fix-packs/generate-fix-packs.d.ts.map +1 -0
  57. package/dist/fix-packs/generate-fix-packs.js +505 -0
  58. package/dist/fix-packs/index.d.ts +8 -0
  59. package/dist/fix-packs/index.d.ts.map +1 -0
  60. package/dist/fix-packs/index.js +23 -0
  61. package/dist/fix-packs/types.d.ts +113 -0
  62. package/dist/fix-packs/types.d.ts.map +1 -0
  63. package/dist/fix-packs/types.js +71 -0
  64. package/dist/index.d.ts +13 -0
  65. package/dist/index.d.ts.map +1 -0
  66. package/dist/index.js +28 -0
  67. package/dist/metrics/prometheus.d.ts +99 -0
  68. package/dist/metrics/prometheus.d.ts.map +1 -0
  69. package/dist/metrics/prometheus.js +306 -0
  70. package/dist/quota-ledger.d.ts +119 -0
  71. package/dist/quota-ledger.d.ts.map +1 -0
  72. package/dist/quota-ledger.js +462 -0
  73. package/dist/rbac/__tests__/permissions.test.d.ts +8 -0
  74. package/dist/rbac/__tests__/permissions.test.d.ts.map +1 -0
  75. package/dist/rbac/__tests__/permissions.test.js +350 -0
  76. package/dist/rbac/index.d.ts +9 -0
  77. package/dist/rbac/index.d.ts.map +1 -0
  78. package/dist/rbac/index.js +32 -0
  79. package/dist/rbac/permissions.d.ts +71 -0
  80. package/dist/rbac/permissions.d.ts.map +1 -0
  81. package/dist/rbac/permissions.js +247 -0
  82. package/dist/rbac/types.d.ts +69 -0
  83. package/dist/rbac/types.d.ts.map +1 -0
  84. package/dist/rbac/types.js +213 -0
  85. package/dist/tier-config.d.ts +203 -0
  86. package/dist/tier-config.d.ts.map +1 -0
  87. package/dist/tier-config.js +675 -0
  88. package/dist/types.d.ts +365 -0
  89. package/dist/types.d.ts.map +1 -0
  90. package/dist/types.js +5 -0
  91. package/dist/utils.d.ts +36 -0
  92. package/dist/utils.d.ts.map +1 -0
  93. package/dist/utils.js +127 -0
  94. package/dist/verified-autofix/__tests__/format-validator.test.d.ts +11 -0
  95. package/dist/verified-autofix/__tests__/format-validator.test.d.ts.map +1 -0
  96. package/dist/verified-autofix/__tests__/format-validator.test.js +285 -0
  97. package/dist/verified-autofix/__tests__/pipeline.test.d.ts +11 -0
  98. package/dist/verified-autofix/__tests__/pipeline.test.d.ts.map +1 -0
  99. package/dist/verified-autofix/__tests__/pipeline.test.js +389 -0
  100. package/dist/verified-autofix/__tests__/repo-fingerprint.test.d.ts +11 -0
  101. package/dist/verified-autofix/__tests__/repo-fingerprint.test.d.ts.map +1 -0
  102. package/dist/verified-autofix/__tests__/repo-fingerprint.test.js +236 -0
  103. package/dist/verified-autofix/__tests__/workspace.test.d.ts +11 -0
  104. package/dist/verified-autofix/__tests__/workspace.test.d.ts.map +1 -0
  105. package/dist/verified-autofix/__tests__/workspace.test.js +314 -0
  106. package/dist/verified-autofix/format-validator.d.ts +101 -0
  107. package/dist/verified-autofix/format-validator.d.ts.map +1 -0
  108. package/dist/verified-autofix/format-validator.js +446 -0
  109. package/dist/verified-autofix/index.d.ts +14 -0
  110. package/dist/verified-autofix/index.d.ts.map +1 -0
  111. package/dist/verified-autofix/index.js +39 -0
  112. package/dist/verified-autofix/pipeline.d.ts +68 -0
  113. package/dist/verified-autofix/pipeline.d.ts.map +1 -0
  114. package/dist/verified-autofix/pipeline.js +330 -0
  115. package/dist/verified-autofix/repo-fingerprint.d.ts +56 -0
  116. package/dist/verified-autofix/repo-fingerprint.d.ts.map +1 -0
  117. package/dist/verified-autofix/repo-fingerprint.js +396 -0
  118. package/dist/verified-autofix/workspace.d.ts +83 -0
  119. package/dist/verified-autofix/workspace.d.ts.map +1 -0
  120. package/dist/verified-autofix/workspace.js +454 -0
  121. package/dist/verified-autofix.d.ts +182 -0
  122. package/dist/verified-autofix.d.ts.map +1 -0
  123. package/dist/verified-autofix.js +1021 -0
  124. package/dist/visualization/dependency-graph.d.ts +79 -0
  125. package/dist/visualization/dependency-graph.d.ts.map +1 -0
  126. package/dist/visualization/dependency-graph.js +399 -0
  127. package/dist/visualization/index.d.ts +5 -0
  128. package/dist/visualization/index.d.ts.map +1 -0
  129. package/dist/visualization/index.js +20 -0
  130. package/package.json +29 -0
  131. package/src/__tests__/autopilot.test.ts +196 -0
  132. package/src/__tests__/tier-config.test.ts +289 -0
  133. package/src/__tests__/utils/hash-inline.test.ts +76 -0
  134. package/src/__tests__/utils/hash.test.ts +119 -0
  135. package/src/__tests__/utils/simple.test.ts +10 -0
  136. package/src/__tests__/utils/utils-simple.test.ts +5 -0
  137. package/src/__tests__/utils/utils.test.ts +203 -0
  138. package/src/autopilot/autopilot-runner.ts +503 -0
  139. package/src/autopilot/index.ts +6 -0
  140. package/src/autopilot/types.ts +119 -0
  141. package/src/cache/index.ts +7 -0
  142. package/src/cache/redis-cache.d.ts +155 -0
  143. package/src/cache/redis-cache.d.ts.map +1 -0
  144. package/src/cache/redis-cache.ts +517 -0
  145. package/src/ci/github-actions.ts +335 -0
  146. package/src/ci/index.ts +12 -0
  147. package/src/ci/pre-commit.ts +338 -0
  148. package/src/db/usage-schema.prisma +114 -0
  149. package/src/entitlements.ts +570 -0
  150. package/src/env.d.ts +68 -0
  151. package/src/env.d.ts.map +1 -0
  152. package/src/env.ts +247 -0
  153. package/src/fix-packs/__tests__/generate-fix-packs.test.ts +317 -0
  154. package/src/fix-packs/generate-fix-packs.ts +577 -0
  155. package/src/fix-packs/index.ts +8 -0
  156. package/src/fix-packs/types.ts +206 -0
  157. package/src/index.d.ts +7 -0
  158. package/src/index.d.ts.map +1 -0
  159. package/src/index.ts +12 -0
  160. package/src/metrics/prometheus.d.ts +104 -0
  161. package/src/metrics/prometheus.d.ts.map +1 -0
  162. package/src/metrics/prometheus.ts +446 -0
  163. package/src/quota-ledger.ts +548 -0
  164. package/src/rbac/__tests__/permissions.test.ts +446 -0
  165. package/src/rbac/index.ts +46 -0
  166. package/src/rbac/permissions.ts +301 -0
  167. package/src/rbac/types.ts +298 -0
  168. package/src/tier-config.json +157 -0
  169. package/src/tier-config.ts +815 -0
  170. package/src/types.d.ts +365 -0
  171. package/src/types.d.ts.map +1 -0
  172. package/src/types.ts +441 -0
  173. package/src/utils.d.ts +36 -0
  174. package/src/utils.d.ts.map +1 -0
  175. package/src/utils.ts +140 -0
  176. package/src/verified-autofix/__tests__/format-validator.test.ts +335 -0
  177. package/src/verified-autofix/__tests__/pipeline.test.ts +419 -0
  178. package/src/verified-autofix/__tests__/repo-fingerprint.test.ts +241 -0
  179. package/src/verified-autofix/__tests__/workspace.test.ts +373 -0
  180. package/src/verified-autofix/format-validator.ts +517 -0
  181. package/src/verified-autofix/index.ts +63 -0
  182. package/src/verified-autofix/pipeline.ts +403 -0
  183. package/src/verified-autofix/repo-fingerprint.ts +459 -0
  184. package/src/verified-autofix/workspace.ts +531 -0
  185. package/src/verified-autofix.ts +1187 -0
  186. package/src/visualization/dependency-graph.d.ts +85 -0
  187. package/src/visualization/dependency-graph.d.ts.map +1 -0
  188. package/src/visualization/dependency-graph.ts +495 -0
  189. 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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"}