@company-semantics/contracts 0.141.0 → 0.142.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@company-semantics/contracts",
3
- "version": "0.141.0",
3
+ "version": "0.142.0",
4
4
  "private": false,
5
5
  "repository": {
6
6
  "type": "git",
package/src/index.ts CHANGED
@@ -634,3 +634,6 @@ export {
634
634
  CLEAR_HOLDDOWN_MS,
635
635
  } from './pressure'
636
636
  export type { SystemPressureValue, ShedResponse } from './pressure'
637
+
638
+ // Timeout ladder (PRD-00491 end-to-end timing budgets)
639
+ export { TIMEOUT_LADDER_MS, getTimeoutForTier } from './timeouts'
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Timeout ladder (PRD-00491).
3
+ *
4
+ * Per-tier hard timeout ceilings shared by every enforcement layer:
5
+ * client fetch, scheduler, backend handler, DB query. Backend and app
6
+ * import from here so the ladder cannot drift between layers.
7
+ *
8
+ * Extends PRD-00486 (backend query timeouts) and PRD-00487 (client fetch
9
+ * timeouts) into a single coherent ladder. Per-intent DB budgets in
10
+ * `company-semantics-backend/src/db/query-intent.ts` are derived from
11
+ * these ceilings (feedback_derive_dont_duplicate).
12
+ *
13
+ * Tiers: P0 = user-blocking, P1 = interactive, P2 = background,
14
+ * P3 = bulk. See `./requests#Tier` for the canonical tier definition.
15
+ */
16
+ import type { Tier } from './requests';
17
+
18
+ export const TIMEOUT_LADDER_MS: Record<Tier, number> = {
19
+ P0: 2_000,
20
+ P1: 5_000,
21
+ P2: 8_000,
22
+ P3: 15_000,
23
+ };
24
+
25
+ export function getTimeoutForTier(tier: Tier): number {
26
+ return TIMEOUT_LADDER_MS[tier];
27
+ }