agentic-qe 3.6.0 → 3.6.2

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 (204) hide show
  1. package/.claude/agents/v3/qe-devils-advocate.md +218 -0
  2. package/.claude/agents/v3/qe-quality-criteria-recommender.md +2 -2
  3. package/.claude/skills/qe-iterative-loop/SKILL.md +1 -1
  4. package/.claude/skills/release/SKILL.md +17 -31
  5. package/.claude/skills/skills-manifest.json +1 -1
  6. package/README.md +38 -35
  7. package/package.json +1 -1
  8. package/scripts/cloud-db-config.json +1 -1
  9. package/v3/CHANGELOG.md +44 -0
  10. package/v3/README.md +7 -7
  11. package/v3/assets/agents/v3/qe-devils-advocate.md +218 -0
  12. package/v3/assets/agents/v3/qe-quality-criteria-recommender.md +2 -2
  13. package/v3/assets/skills/qe-iterative-loop/SKILL.md +1 -1
  14. package/v3/dist/agents/devils-advocate/agent.d.ts +103 -0
  15. package/v3/dist/agents/devils-advocate/agent.d.ts.map +1 -0
  16. package/v3/dist/agents/devils-advocate/agent.js +240 -0
  17. package/v3/dist/agents/devils-advocate/agent.js.map +1 -0
  18. package/v3/dist/agents/devils-advocate/index.d.ts +60 -0
  19. package/v3/dist/agents/devils-advocate/index.d.ts.map +1 -0
  20. package/v3/dist/agents/devils-advocate/index.js +72 -0
  21. package/v3/dist/agents/devils-advocate/index.js.map +1 -0
  22. package/v3/dist/agents/devils-advocate/strategies.d.ts +59 -0
  23. package/v3/dist/agents/devils-advocate/strategies.d.ts.map +1 -0
  24. package/v3/dist/agents/devils-advocate/strategies.js +438 -0
  25. package/v3/dist/agents/devils-advocate/strategies.js.map +1 -0
  26. package/v3/dist/agents/devils-advocate/types.d.ts +182 -0
  27. package/v3/dist/agents/devils-advocate/types.d.ts.map +1 -0
  28. package/v3/dist/agents/devils-advocate/types.js +96 -0
  29. package/v3/dist/agents/devils-advocate/types.js.map +1 -0
  30. package/v3/dist/agents/index.d.ts +20 -0
  31. package/v3/dist/agents/index.d.ts.map +1 -0
  32. package/v3/dist/agents/index.js +20 -0
  33. package/v3/dist/agents/index.js.map +1 -0
  34. package/v3/dist/cli/bundle.js +4489 -119
  35. package/v3/dist/coordination/agent-teams/adapter.d.ts +108 -0
  36. package/v3/dist/coordination/agent-teams/adapter.d.ts.map +1 -0
  37. package/v3/dist/coordination/agent-teams/adapter.js +316 -0
  38. package/v3/dist/coordination/agent-teams/adapter.js.map +1 -0
  39. package/v3/dist/coordination/agent-teams/domain-team-manager.d.ts +164 -0
  40. package/v3/dist/coordination/agent-teams/domain-team-manager.d.ts.map +1 -0
  41. package/v3/dist/coordination/agent-teams/domain-team-manager.js +342 -0
  42. package/v3/dist/coordination/agent-teams/domain-team-manager.js.map +1 -0
  43. package/v3/dist/coordination/agent-teams/index.d.ts +53 -0
  44. package/v3/dist/coordination/agent-teams/index.d.ts.map +1 -0
  45. package/v3/dist/coordination/agent-teams/index.js +61 -0
  46. package/v3/dist/coordination/agent-teams/index.js.map +1 -0
  47. package/v3/dist/coordination/agent-teams/mailbox.d.ts +142 -0
  48. package/v3/dist/coordination/agent-teams/mailbox.d.ts.map +1 -0
  49. package/v3/dist/coordination/agent-teams/mailbox.js +395 -0
  50. package/v3/dist/coordination/agent-teams/mailbox.js.map +1 -0
  51. package/v3/dist/coordination/agent-teams/tracing.d.ts +199 -0
  52. package/v3/dist/coordination/agent-teams/tracing.d.ts.map +1 -0
  53. package/v3/dist/coordination/agent-teams/tracing.js +308 -0
  54. package/v3/dist/coordination/agent-teams/tracing.js.map +1 -0
  55. package/v3/dist/coordination/agent-teams/types.d.ts +121 -0
  56. package/v3/dist/coordination/agent-teams/types.d.ts.map +1 -0
  57. package/v3/dist/coordination/agent-teams/types.js +17 -0
  58. package/v3/dist/coordination/agent-teams/types.js.map +1 -0
  59. package/v3/dist/coordination/circuit-breaker/breaker-registry.d.ts +146 -0
  60. package/v3/dist/coordination/circuit-breaker/breaker-registry.d.ts.map +1 -0
  61. package/v3/dist/coordination/circuit-breaker/breaker-registry.js +368 -0
  62. package/v3/dist/coordination/circuit-breaker/breaker-registry.js.map +1 -0
  63. package/v3/dist/coordination/circuit-breaker/domain-circuit-breaker.d.ts +134 -0
  64. package/v3/dist/coordination/circuit-breaker/domain-circuit-breaker.d.ts.map +1 -0
  65. package/v3/dist/coordination/circuit-breaker/domain-circuit-breaker.js +337 -0
  66. package/v3/dist/coordination/circuit-breaker/domain-circuit-breaker.js.map +1 -0
  67. package/v3/dist/coordination/circuit-breaker/index.d.ts +46 -0
  68. package/v3/dist/coordination/circuit-breaker/index.d.ts.map +1 -0
  69. package/v3/dist/coordination/circuit-breaker/index.js +51 -0
  70. package/v3/dist/coordination/circuit-breaker/index.js.map +1 -0
  71. package/v3/dist/coordination/circuit-breaker/types.d.ts +112 -0
  72. package/v3/dist/coordination/circuit-breaker/types.d.ts.map +1 -0
  73. package/v3/dist/coordination/circuit-breaker/types.js +10 -0
  74. package/v3/dist/coordination/circuit-breaker/types.js.map +1 -0
  75. package/v3/dist/coordination/competing-hypotheses/hypothesis-manager.d.ts +122 -0
  76. package/v3/dist/coordination/competing-hypotheses/hypothesis-manager.d.ts.map +1 -0
  77. package/v3/dist/coordination/competing-hypotheses/hypothesis-manager.js +377 -0
  78. package/v3/dist/coordination/competing-hypotheses/hypothesis-manager.js.map +1 -0
  79. package/v3/dist/coordination/competing-hypotheses/index.d.ts +34 -0
  80. package/v3/dist/coordination/competing-hypotheses/index.d.ts.map +1 -0
  81. package/v3/dist/coordination/competing-hypotheses/index.js +39 -0
  82. package/v3/dist/coordination/competing-hypotheses/index.js.map +1 -0
  83. package/v3/dist/coordination/competing-hypotheses/types.d.ts +134 -0
  84. package/v3/dist/coordination/competing-hypotheses/types.d.ts.map +1 -0
  85. package/v3/dist/coordination/competing-hypotheses/types.js +20 -0
  86. package/v3/dist/coordination/competing-hypotheses/types.js.map +1 -0
  87. package/v3/dist/coordination/dynamic-scaling/dynamic-scaler.d.ts +173 -0
  88. package/v3/dist/coordination/dynamic-scaling/dynamic-scaler.d.ts.map +1 -0
  89. package/v3/dist/coordination/dynamic-scaling/dynamic-scaler.js +368 -0
  90. package/v3/dist/coordination/dynamic-scaling/dynamic-scaler.js.map +1 -0
  91. package/v3/dist/coordination/dynamic-scaling/index.d.ts +38 -0
  92. package/v3/dist/coordination/dynamic-scaling/index.d.ts.map +1 -0
  93. package/v3/dist/coordination/dynamic-scaling/index.js +39 -0
  94. package/v3/dist/coordination/dynamic-scaling/index.js.map +1 -0
  95. package/v3/dist/coordination/dynamic-scaling/types.d.ts +147 -0
  96. package/v3/dist/coordination/dynamic-scaling/types.d.ts.map +1 -0
  97. package/v3/dist/coordination/dynamic-scaling/types.js +40 -0
  98. package/v3/dist/coordination/dynamic-scaling/types.js.map +1 -0
  99. package/v3/dist/coordination/federation/federation-mailbox.d.ts +215 -0
  100. package/v3/dist/coordination/federation/federation-mailbox.d.ts.map +1 -0
  101. package/v3/dist/coordination/federation/federation-mailbox.js +442 -0
  102. package/v3/dist/coordination/federation/federation-mailbox.js.map +1 -0
  103. package/v3/dist/coordination/federation/index.d.ts +38 -0
  104. package/v3/dist/coordination/federation/index.d.ts.map +1 -0
  105. package/v3/dist/coordination/federation/index.js +39 -0
  106. package/v3/dist/coordination/federation/index.js.map +1 -0
  107. package/v3/dist/coordination/federation/types.d.ts +103 -0
  108. package/v3/dist/coordination/federation/types.d.ts.map +1 -0
  109. package/v3/dist/coordination/federation/types.js +20 -0
  110. package/v3/dist/coordination/federation/types.js.map +1 -0
  111. package/v3/dist/coordination/fleet-tiers/index.d.ts +39 -0
  112. package/v3/dist/coordination/fleet-tiers/index.d.ts.map +1 -0
  113. package/v3/dist/coordination/fleet-tiers/index.js +44 -0
  114. package/v3/dist/coordination/fleet-tiers/index.js.map +1 -0
  115. package/v3/dist/coordination/fleet-tiers/tier-config.d.ts +60 -0
  116. package/v3/dist/coordination/fleet-tiers/tier-config.d.ts.map +1 -0
  117. package/v3/dist/coordination/fleet-tiers/tier-config.js +242 -0
  118. package/v3/dist/coordination/fleet-tiers/tier-config.js.map +1 -0
  119. package/v3/dist/coordination/fleet-tiers/tier-selector.d.ts +134 -0
  120. package/v3/dist/coordination/fleet-tiers/tier-selector.d.ts.map +1 -0
  121. package/v3/dist/coordination/fleet-tiers/tier-selector.js +373 -0
  122. package/v3/dist/coordination/fleet-tiers/tier-selector.js.map +1 -0
  123. package/v3/dist/coordination/fleet-tiers/types.d.ts +137 -0
  124. package/v3/dist/coordination/fleet-tiers/types.d.ts.map +1 -0
  125. package/v3/dist/coordination/fleet-tiers/types.js +20 -0
  126. package/v3/dist/coordination/fleet-tiers/types.js.map +1 -0
  127. package/v3/dist/coordination/index.d.ts +16 -0
  128. package/v3/dist/coordination/index.d.ts.map +1 -1
  129. package/v3/dist/coordination/index.js +29 -0
  130. package/v3/dist/coordination/index.js.map +1 -1
  131. package/v3/dist/coordination/queen-coordinator.d.ts +79 -0
  132. package/v3/dist/coordination/queen-coordinator.d.ts.map +1 -1
  133. package/v3/dist/coordination/queen-coordinator.js +363 -0
  134. package/v3/dist/coordination/queen-coordinator.js.map +1 -1
  135. package/v3/dist/coordination/task-dag/dag.d.ts +93 -0
  136. package/v3/dist/coordination/task-dag/dag.d.ts.map +1 -0
  137. package/v3/dist/coordination/task-dag/dag.js +496 -0
  138. package/v3/dist/coordination/task-dag/dag.js.map +1 -0
  139. package/v3/dist/coordination/task-dag/index.d.ts +54 -0
  140. package/v3/dist/coordination/task-dag/index.d.ts.map +1 -0
  141. package/v3/dist/coordination/task-dag/index.js +62 -0
  142. package/v3/dist/coordination/task-dag/index.js.map +1 -0
  143. package/v3/dist/coordination/task-dag/scheduler.d.ts +123 -0
  144. package/v3/dist/coordination/task-dag/scheduler.d.ts.map +1 -0
  145. package/v3/dist/coordination/task-dag/scheduler.js +262 -0
  146. package/v3/dist/coordination/task-dag/scheduler.js.map +1 -0
  147. package/v3/dist/coordination/task-dag/types.d.ts +103 -0
  148. package/v3/dist/coordination/task-dag/types.d.ts.map +1 -0
  149. package/v3/dist/coordination/task-dag/types.js +9 -0
  150. package/v3/dist/coordination/task-dag/types.js.map +1 -0
  151. package/v3/dist/domains/enterprise-integration/services/odata-service.js +3 -3
  152. package/v3/dist/domains/enterprise-integration/services/odata-service.js.map +1 -1
  153. package/v3/dist/domains/enterprise-integration/services/soap-wsdl-service.d.ts.map +1 -1
  154. package/v3/dist/domains/enterprise-integration/services/soap-wsdl-service.js +9 -4
  155. package/v3/dist/domains/enterprise-integration/services/soap-wsdl-service.js.map +1 -1
  156. package/v3/dist/domains/requirements-validation/services/quality-criteria/quality-criteria-service.js +1 -1
  157. package/v3/dist/domains/requirements-validation/services/quality-criteria/quality-criteria-service.js.map +1 -1
  158. package/v3/dist/hooks/index.d.ts +8 -1
  159. package/v3/dist/hooks/index.d.ts.map +1 -1
  160. package/v3/dist/hooks/index.js +8 -1
  161. package/v3/dist/hooks/index.js.map +1 -1
  162. package/v3/dist/hooks/quality-gate-enforcer.d.ts +134 -0
  163. package/v3/dist/hooks/quality-gate-enforcer.d.ts.map +1 -0
  164. package/v3/dist/hooks/quality-gate-enforcer.js +265 -0
  165. package/v3/dist/hooks/quality-gate-enforcer.js.map +1 -0
  166. package/v3/dist/hooks/reasoning-bank-pattern-store.d.ts +60 -0
  167. package/v3/dist/hooks/reasoning-bank-pattern-store.d.ts.map +1 -0
  168. package/v3/dist/hooks/reasoning-bank-pattern-store.js +179 -0
  169. package/v3/dist/hooks/reasoning-bank-pattern-store.js.map +1 -0
  170. package/v3/dist/hooks/task-completed-hook.d.ts +174 -0
  171. package/v3/dist/hooks/task-completed-hook.d.ts.map +1 -0
  172. package/v3/dist/hooks/task-completed-hook.js +330 -0
  173. package/v3/dist/hooks/task-completed-hook.js.map +1 -0
  174. package/v3/dist/hooks/teammate-idle-hook.d.ts +167 -0
  175. package/v3/dist/hooks/teammate-idle-hook.d.ts.map +1 -0
  176. package/v3/dist/hooks/teammate-idle-hook.js +332 -0
  177. package/v3/dist/hooks/teammate-idle-hook.js.map +1 -0
  178. package/v3/dist/index.d.ts +3 -0
  179. package/v3/dist/index.d.ts.map +1 -1
  180. package/v3/dist/index.js +4 -0
  181. package/v3/dist/index.js.map +1 -1
  182. package/v3/dist/init/agents-installer.d.ts +5 -1
  183. package/v3/dist/init/agents-installer.d.ts.map +1 -1
  184. package/v3/dist/init/agents-installer.js +13 -5
  185. package/v3/dist/init/agents-installer.js.map +1 -1
  186. package/v3/dist/init/phases/12-verification.d.ts.map +1 -1
  187. package/v3/dist/init/phases/12-verification.js +13 -1
  188. package/v3/dist/init/phases/12-verification.js.map +1 -1
  189. package/v3/dist/kernel/unified-memory.d.ts.map +1 -1
  190. package/v3/dist/kernel/unified-memory.js +303 -18
  191. package/v3/dist/kernel/unified-memory.js.map +1 -1
  192. package/v3/dist/learning/pattern-store.js +1 -1
  193. package/v3/dist/learning/pattern-store.js.map +1 -1
  194. package/v3/dist/learning/qe-patterns.d.ts +2 -0
  195. package/v3/dist/learning/qe-patterns.d.ts.map +1 -1
  196. package/v3/dist/learning/qe-patterns.js.map +1 -1
  197. package/v3/dist/learning/qe-reasoning-bank.d.ts.map +1 -1
  198. package/v3/dist/learning/qe-reasoning-bank.js +16 -3
  199. package/v3/dist/learning/qe-reasoning-bank.js.map +1 -1
  200. package/v3/dist/mcp/bundle.js +4473 -133
  201. package/v3/dist/sync/cloud/tunnel-manager.d.ts.map +1 -1
  202. package/v3/dist/sync/cloud/tunnel-manager.js +11 -0
  203. package/v3/dist/sync/cloud/tunnel-manager.js.map +1 -1
  204. package/v3/package.json +1 -1
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Agentic QE v3 - Cross-Fleet Federation Module
3
+ * ADR-064 Phase 4B: Multi-Service Communication
4
+ *
5
+ * Enables multiple fleet instances (e.g., running in different services or
6
+ * repositories) to exchange messages through a federation layer. Services
7
+ * register with the FederationMailbox, which handles routing, health
8
+ * monitoring, and queue management.
9
+ *
10
+ * Usage:
11
+ * ```typescript
12
+ * import {
13
+ * createFederationMailbox,
14
+ * FederationMailbox,
15
+ * } from '@agentic-qe/v3/coordination/federation';
16
+ *
17
+ * const mailbox = createFederationMailbox({ localFleetId: 'fleet-a' });
18
+ *
19
+ * // Register a remote fleet service
20
+ * mailbox.registerService('fleet-b', 'Coverage Service', ['coverage-analysis']);
21
+ *
22
+ * // Route and send messages
23
+ * mailbox.addRoute('test-generation', 'coverage-analysis', 'fleet-b', 10);
24
+ * mailbox.send('fleet-b', 'test-generation', 'coverage-analysis',
25
+ * 'task-request', { spec: 'auth-module' });
26
+ *
27
+ * // Transport layer drains outbox
28
+ * const pending = mailbox.drainOutbox();
29
+ *
30
+ * // Cleanup
31
+ * mailbox.dispose();
32
+ * ```
33
+ */
34
+ export { FederationMailbox, createFederationMailbox, } from './federation-mailbox.js';
35
+ export type { FederatedMessageHandler } from './federation-mailbox.js';
36
+ export type { FleetId, FederatedService, FederatedMessage, FederatedMessageType, FederationRoute, FederationHealth, FederationConfig, ServiceStatus, } from './types.js';
37
+ export { DEFAULT_FEDERATION_CONFIG } from './types.js';
38
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/coordination/federation/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAMH,OAAO,EACL,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AAEjC,YAAY,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAMvE,YAAY,EACV,OAAO,EACP,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,GACd,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Agentic QE v3 - Cross-Fleet Federation Module
3
+ * ADR-064 Phase 4B: Multi-Service Communication
4
+ *
5
+ * Enables multiple fleet instances (e.g., running in different services or
6
+ * repositories) to exchange messages through a federation layer. Services
7
+ * register with the FederationMailbox, which handles routing, health
8
+ * monitoring, and queue management.
9
+ *
10
+ * Usage:
11
+ * ```typescript
12
+ * import {
13
+ * createFederationMailbox,
14
+ * FederationMailbox,
15
+ * } from '@agentic-qe/v3/coordination/federation';
16
+ *
17
+ * const mailbox = createFederationMailbox({ localFleetId: 'fleet-a' });
18
+ *
19
+ * // Register a remote fleet service
20
+ * mailbox.registerService('fleet-b', 'Coverage Service', ['coverage-analysis']);
21
+ *
22
+ * // Route and send messages
23
+ * mailbox.addRoute('test-generation', 'coverage-analysis', 'fleet-b', 10);
24
+ * mailbox.send('fleet-b', 'test-generation', 'coverage-analysis',
25
+ * 'task-request', { spec: 'auth-module' });
26
+ *
27
+ * // Transport layer drains outbox
28
+ * const pending = mailbox.drainOutbox();
29
+ *
30
+ * // Cleanup
31
+ * mailbox.dispose();
32
+ * ```
33
+ */
34
+ // ============================================================================
35
+ // Federation Mailbox
36
+ // ============================================================================
37
+ export { FederationMailbox, createFederationMailbox, } from './federation-mailbox.js';
38
+ export { DEFAULT_FEDERATION_CONFIG } from './types.js';
39
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/coordination/federation/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E,OAAO,EACL,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AAmBjC,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,103 @@
1
+ /**
2
+ * Agentic QE v3 - Cross-Fleet Federation Types
3
+ * ADR-064 Phase 4B: Multi-Service Communication
4
+ *
5
+ * Defines the type contracts for cross-fleet federation, enabling multiple
6
+ * fleet instances (e.g., running in different services/repos) to exchange
7
+ * messages through a federation layer.
8
+ *
9
+ * Types are intentionally readonly to enforce immutability at public API
10
+ * boundaries. Mutable counterparts live inside the FederationMailbox class.
11
+ */
12
+ /** Unique identifier for a fleet instance in the federation */
13
+ export type FleetId = string;
14
+ /** Service registration in the federation */
15
+ export interface FederatedService {
16
+ /** Unique fleet identifier for this service */
17
+ readonly fleetId: FleetId;
18
+ /** Human-readable service name */
19
+ readonly name: string;
20
+ /** QE domains this service handles (e.g., 'test-generation', 'coverage-analysis') */
21
+ readonly domains: string[];
22
+ /** Optional transport endpoint for remote communication */
23
+ readonly endpoint?: string;
24
+ /** Current health status of the service */
25
+ readonly status: ServiceStatus;
26
+ /** Epoch timestamp when the service was registered */
27
+ readonly registeredAt: number;
28
+ /** Epoch timestamp of the last heartbeat received */
29
+ readonly lastHeartbeat: number;
30
+ /** Arbitrary metadata attached to the service */
31
+ readonly metadata?: Record<string, string>;
32
+ }
33
+ /** Health status of a federated service */
34
+ export type ServiceStatus = 'active' | 'degraded' | 'unreachable' | 'deregistered';
35
+ /** Message routed between fleet instances */
36
+ export interface FederatedMessage {
37
+ /** Unique message identifier */
38
+ readonly id: string;
39
+ /** Fleet that originated this message */
40
+ readonly sourceFleetId: FleetId;
41
+ /** Target fleet ID, or 'any' for route-based resolution */
42
+ readonly targetFleetId: FleetId | 'any';
43
+ /** Domain context of the sender */
44
+ readonly sourceDomain: string;
45
+ /** Domain context the message is intended for */
46
+ readonly targetDomain: string;
47
+ /** Classification of the message */
48
+ readonly type: FederatedMessageType;
49
+ /** Message payload (type depends on message type) */
50
+ readonly payload: unknown;
51
+ /** Epoch timestamp when the message was created */
52
+ readonly timestamp: number;
53
+ /** Time-to-live in milliseconds (message expires after this duration) */
54
+ readonly ttl?: number;
55
+ /** Correlation ID for tracking related messages across fleets */
56
+ readonly correlationId?: string;
57
+ }
58
+ /** Types of messages exchanged between federated fleets */
59
+ export type FederatedMessageType = 'task-request' | 'task-response' | 'finding-share' | 'pattern-share' | 'health-report' | 'capability-query' | 'capability-response';
60
+ /** Route definition for cross-fleet message routing */
61
+ export interface FederationRoute {
62
+ /** Source domain that sends messages via this route */
63
+ readonly sourceDomain: string;
64
+ /** Target domain that receives messages via this route */
65
+ readonly targetDomain: string;
66
+ /** Fleet ID this route delivers to */
67
+ readonly targetFleetId: FleetId;
68
+ /** Priority for route selection (higher = preferred) */
69
+ readonly priority: number;
70
+ /** Whether this route is currently active */
71
+ readonly active: boolean;
72
+ }
73
+ /** Federation health summary */
74
+ export interface FederationHealth {
75
+ /** This fleet's identifier */
76
+ readonly localFleetId: FleetId;
77
+ /** Number of services currently in 'active' status */
78
+ readonly connectedServices: number;
79
+ /** Number of active routing rules */
80
+ readonly activeRoutes: number;
81
+ /** Total pending messages in inbox + outbox */
82
+ readonly pendingMessages: number;
83
+ /** Total messages sent since creation */
84
+ readonly messagesSent: number;
85
+ /** Total messages received since creation */
86
+ readonly messagesReceived: number;
87
+ }
88
+ /** Configuration for the federation mailbox */
89
+ export interface FederationConfig {
90
+ /** This fleet's unique identifier in the federation */
91
+ readonly localFleetId: FleetId;
92
+ /** Interval between heartbeat checks in milliseconds */
93
+ readonly heartbeatIntervalMs: number;
94
+ /** Time after last heartbeat before a service is marked unreachable */
95
+ readonly serviceTimeoutMs: number;
96
+ /** Maximum number of pending messages (inbox + outbox each) */
97
+ readonly maxPendingMessages: number;
98
+ /** Maximum number of routing rules */
99
+ readonly maxRoutes: number;
100
+ }
101
+ /** Sensible defaults for federation configuration */
102
+ export declare const DEFAULT_FEDERATION_CONFIG: FederationConfig;
103
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/coordination/federation/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Agentic QE v3 - Cross-Fleet Federation Types
3
+ * ADR-064 Phase 4B: Multi-Service Communication
4
+ *
5
+ * Defines the type contracts for cross-fleet federation, enabling multiple
6
+ * fleet instances (e.g., running in different services/repos) to exchange
7
+ * messages through a federation layer.
8
+ *
9
+ * Types are intentionally readonly to enforce immutability at public API
10
+ * boundaries. Mutable counterparts live inside the FederationMailbox class.
11
+ */
12
+ /** Sensible defaults for federation configuration */
13
+ export const DEFAULT_FEDERATION_CONFIG = {
14
+ localFleetId: 'local',
15
+ heartbeatIntervalMs: 30_000,
16
+ serviceTimeoutMs: 90_000,
17
+ maxPendingMessages: 5000,
18
+ maxRoutes: 100,
19
+ };
20
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/coordination/federation/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AA+JH,qDAAqD;AACrD,MAAM,CAAC,MAAM,yBAAyB,GAAqB;IACzD,YAAY,EAAE,OAAO;IACrB,mBAAmB,EAAE,MAAM;IAC3B,gBAAgB,EAAE,MAAM;IACxB,kBAAkB,EAAE,IAAI;IACxB,SAAS,EAAE,GAAG;CACf,CAAC"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Agentic QE v3 - Fleet Tier Activation System
3
+ * ADR-064 Phase 1D: Tiered Fleet Activation Configuration
4
+ *
5
+ * Controls how many agents activate based on task complexity, balancing
6
+ * cost against validation thoroughness. Four tiers from lightweight smoke
7
+ * runs (every commit) through full crisis mode (production incidents).
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * import {
12
+ * createTierSelector,
13
+ * getDefaultTierConfig,
14
+ * DEFAULT_TIER_CONFIGS,
15
+ * } from './coordination/fleet-tiers';
16
+ *
17
+ * // Create a selector with default configs
18
+ * const selector = createTierSelector();
19
+ *
20
+ * // Select tier based on context
21
+ * const result = selector.selectTier({
22
+ * trigger: 'pr',
23
+ * changedFiles: 5,
24
+ * affectedDomains: ['test-generation', 'coverage-analysis'],
25
+ * });
26
+ *
27
+ * console.log(result.selectedTier); // 'standard'
28
+ * console.log(result.agentAllocation);
29
+ *
30
+ * // Escalate if needed
31
+ * const escalated = selector.escalate('standard', 'Flaky test detected');
32
+ * console.log(escalated.selectedTier); // 'deep'
33
+ * ```
34
+ */
35
+ export type { FleetTier, TierCostLevel, TierTriggerType, TierTrigger, TierConfig, TierSelectionContext, AgentAllocation, TierSelectionResult, TierSelectionRecord, TierSelectionStats, } from './types';
36
+ export { FLEET_TIER_ORDER } from './types';
37
+ export { ALL_USER_FACING_DOMAINS, CORE_PRIORITY_DOMAINS, DEFAULT_DOMAIN_AGENT_MAP, DEFAULT_TIER_CONFIGS, getDefaultTierConfig, validateTierConfig, } from './tier-config';
38
+ export { TierSelector, createTierSelector } from './tier-selector';
39
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/coordination/fleet-tiers/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAMH,YAAY,EACV,SAAS,EACT,aAAa,EACb,eAAe,EACf,WAAW,EACX,UAAU,EACV,oBAAoB,EACpB,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAM3C,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,eAAe,CAAC;AAMvB,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Agentic QE v3 - Fleet Tier Activation System
3
+ * ADR-064 Phase 1D: Tiered Fleet Activation Configuration
4
+ *
5
+ * Controls how many agents activate based on task complexity, balancing
6
+ * cost against validation thoroughness. Four tiers from lightweight smoke
7
+ * runs (every commit) through full crisis mode (production incidents).
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * import {
12
+ * createTierSelector,
13
+ * getDefaultTierConfig,
14
+ * DEFAULT_TIER_CONFIGS,
15
+ * } from './coordination/fleet-tiers';
16
+ *
17
+ * // Create a selector with default configs
18
+ * const selector = createTierSelector();
19
+ *
20
+ * // Select tier based on context
21
+ * const result = selector.selectTier({
22
+ * trigger: 'pr',
23
+ * changedFiles: 5,
24
+ * affectedDomains: ['test-generation', 'coverage-analysis'],
25
+ * });
26
+ *
27
+ * console.log(result.selectedTier); // 'standard'
28
+ * console.log(result.agentAllocation);
29
+ *
30
+ * // Escalate if needed
31
+ * const escalated = selector.escalate('standard', 'Flaky test detected');
32
+ * console.log(escalated.selectedTier); // 'deep'
33
+ * ```
34
+ */
35
+ export { FLEET_TIER_ORDER } from './types';
36
+ // ============================================================================
37
+ // Configuration
38
+ // ============================================================================
39
+ export { ALL_USER_FACING_DOMAINS, CORE_PRIORITY_DOMAINS, DEFAULT_DOMAIN_AGENT_MAP, DEFAULT_TIER_CONFIGS, getDefaultTierConfig, validateTierConfig, } from './tier-config';
40
+ // ============================================================================
41
+ // Selector
42
+ // ============================================================================
43
+ export { TierSelector, createTierSelector } from './tier-selector';
44
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/coordination/fleet-tiers/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAmBH,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,eAAe,CAAC;AAEvB,+EAA+E;AAC/E,WAAW;AACX,+EAA+E;AAE/E,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Agentic QE v3 - Fleet Tier Configuration Defaults
3
+ * ADR-064 Phase 1D: Tiered Fleet Activation Configuration
4
+ *
5
+ * Provides the default tier configurations for all four fleet tiers.
6
+ * These defaults can be overridden by passing custom configs to the
7
+ * TierSelector constructor.
8
+ */
9
+ import type { DomainName } from '../../shared/types';
10
+ import type { FleetTier, TierConfig } from './types';
11
+ /**
12
+ * All 13 user-facing domain names (excludes 'coordination' which is internal).
13
+ * Used when a tier specifies `['all']` or needs the full domain list.
14
+ */
15
+ export declare const ALL_USER_FACING_DOMAINS: readonly DomainName[];
16
+ /**
17
+ * Core domains that receive priority allocation when agents are limited.
18
+ * These domains cover the most critical quality engineering activities.
19
+ */
20
+ export declare const CORE_PRIORITY_DOMAINS: readonly DomainName[];
21
+ /**
22
+ * Maps each domain to the agent types that operate within it.
23
+ * Used by the TierSelector when allocating agents to domains.
24
+ */
25
+ export declare const DEFAULT_DOMAIN_AGENT_MAP: Readonly<Record<string, readonly string[]>>;
26
+ /**
27
+ * Default configurations for all four fleet tiers.
28
+ * Keyed by FleetTier for O(1) lookup.
29
+ */
30
+ export declare const DEFAULT_TIER_CONFIGS: Readonly<Record<FleetTier, TierConfig>>;
31
+ /**
32
+ * Retrieve the default configuration for a given fleet tier.
33
+ *
34
+ * @param tier - The fleet tier to look up
35
+ * @returns The default TierConfig for the requested tier
36
+ *
37
+ * @example
38
+ * ```typescript
39
+ * const config = getDefaultTierConfig('standard');
40
+ * console.log(config.maxAgents); // 7
41
+ * ```
42
+ */
43
+ export declare function getDefaultTierConfig(tier: FleetTier): TierConfig;
44
+ /**
45
+ * Validate a tier configuration and return a list of validation errors.
46
+ * Returns an empty array if the configuration is valid.
47
+ *
48
+ * @param config - The TierConfig to validate
49
+ * @returns Array of human-readable validation error strings
50
+ *
51
+ * @example
52
+ * ```typescript
53
+ * const errors = validateTierConfig(myConfig);
54
+ * if (errors.length > 0) {
55
+ * console.error('Invalid tier config:', errors);
56
+ * }
57
+ * ```
58
+ */
59
+ export declare function validateTierConfig(config: TierConfig): string[];
60
+ //# sourceMappingURL=tier-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tier-config.d.ts","sourceRoot":"","sources":["../../../src/coordination/fleet-tiers/tier-config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAiB,MAAM,SAAS,CAAC;AAMpE;;;GAGG;AACH,eAAO,MAAM,uBAAuB,EAAE,SAAS,UAAU,EAc/C,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,SAAS,UAAU,EAI7C,CAAC;AAMX;;;GAGG;AACH,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAcvE,CAAC;AAyFX;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,CAK/D,CAAC;AAMX;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,SAAS,GAAG,UAAU,CAEhE;AAwBD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,EAAE,CAwD/D"}
@@ -0,0 +1,242 @@
1
+ /**
2
+ * Agentic QE v3 - Fleet Tier Configuration Defaults
3
+ * ADR-064 Phase 1D: Tiered Fleet Activation Configuration
4
+ *
5
+ * Provides the default tier configurations for all four fleet tiers.
6
+ * These defaults can be overridden by passing custom configs to the
7
+ * TierSelector constructor.
8
+ */
9
+ // ============================================================================
10
+ // Domain Constants
11
+ // ============================================================================
12
+ /**
13
+ * All 13 user-facing domain names (excludes 'coordination' which is internal).
14
+ * Used when a tier specifies `['all']` or needs the full domain list.
15
+ */
16
+ export const ALL_USER_FACING_DOMAINS = [
17
+ 'test-generation',
18
+ 'test-execution',
19
+ 'coverage-analysis',
20
+ 'quality-assessment',
21
+ 'defect-intelligence',
22
+ 'requirements-validation',
23
+ 'code-intelligence',
24
+ 'security-compliance',
25
+ 'contract-testing',
26
+ 'visual-accessibility',
27
+ 'chaos-resilience',
28
+ 'learning-optimization',
29
+ 'enterprise-integration',
30
+ ];
31
+ /**
32
+ * Core domains that receive priority allocation when agents are limited.
33
+ * These domains cover the most critical quality engineering activities.
34
+ */
35
+ export const CORE_PRIORITY_DOMAINS = [
36
+ 'test-generation',
37
+ 'coverage-analysis',
38
+ 'quality-assessment',
39
+ ];
40
+ // ============================================================================
41
+ // Domain-to-Agent-Type Mapping
42
+ // ============================================================================
43
+ /**
44
+ * Maps each domain to the agent types that operate within it.
45
+ * Used by the TierSelector when allocating agents to domains.
46
+ */
47
+ export const DEFAULT_DOMAIN_AGENT_MAP = {
48
+ 'test-generation': ['generator', 'specialist'],
49
+ 'test-execution': ['tester', 'coordinator'],
50
+ 'coverage-analysis': ['analyzer', 'specialist'],
51
+ 'quality-assessment': ['analyzer', 'validator'],
52
+ 'defect-intelligence': ['analyzer', 'specialist'],
53
+ 'requirements-validation': ['validator', 'reviewer'],
54
+ 'code-intelligence': ['analyzer', 'specialist'],
55
+ 'security-compliance': ['analyzer', 'validator'],
56
+ 'contract-testing': ['tester', 'validator'],
57
+ 'visual-accessibility': ['tester', 'validator'],
58
+ 'chaos-resilience': ['tester', 'specialist'],
59
+ 'learning-optimization': ['optimizer', 'specialist'],
60
+ 'enterprise-integration': ['coordinator', 'validator'],
61
+ };
62
+ // ============================================================================
63
+ // Smoke Tier (every commit)
64
+ // ============================================================================
65
+ /** Smoke tier: lightweight validation on every commit */
66
+ const SMOKE_TIER_CONFIG = {
67
+ tier: 'smoke',
68
+ maxAgents: 3,
69
+ agentTeamsEnabled: false,
70
+ domains: ['test-execution', 'quality-assessment'],
71
+ estimatedCost: 'minimal',
72
+ description: 'Lightweight smoke test on every commit. Runs core test execution and quality assessment with minimal agent count to catch obvious regressions quickly.',
73
+ triggers: [
74
+ { type: 'commit' },
75
+ { type: 'schedule', conditions: { interval: 'hourly' } },
76
+ ],
77
+ };
78
+ // ============================================================================
79
+ // Standard Tier (PR opened)
80
+ // ============================================================================
81
+ /** Standard tier: comprehensive PR validation */
82
+ const STANDARD_TIER_CONFIG = {
83
+ tier: 'standard',
84
+ maxAgents: 7,
85
+ agentTeamsEnabled: false,
86
+ domains: [
87
+ 'test-generation',
88
+ 'test-execution',
89
+ 'coverage-analysis',
90
+ 'quality-assessment',
91
+ 'security-compliance',
92
+ ],
93
+ estimatedCost: 'moderate',
94
+ description: 'Standard validation for pull requests. Covers test generation, execution, coverage, quality, and security across up to 7 agents. Agent teams are optional.',
95
+ triggers: [
96
+ { type: 'pr' },
97
+ { type: 'manual' },
98
+ ],
99
+ };
100
+ // ============================================================================
101
+ // Deep Tier (pre-release, critical path)
102
+ // ============================================================================
103
+ /** Deep tier: thorough pre-release validation across all domains */
104
+ const DEEP_TIER_CONFIG = {
105
+ tier: 'deep',
106
+ maxAgents: 15,
107
+ agentTeamsEnabled: true,
108
+ domains: [...ALL_USER_FACING_DOMAINS],
109
+ estimatedCost: 'high',
110
+ description: 'Deep validation for pre-release and critical path changes. Activates all 13 domains with up to 15 agents and full agent team collaboration.',
111
+ triggers: [
112
+ { type: 'release' },
113
+ { type: 'pr', conditions: { criticalPath: true } },
114
+ { type: 'manual', conditions: { requestedTier: 'deep' } },
115
+ ],
116
+ };
117
+ // ============================================================================
118
+ // Crisis Tier (production incident)
119
+ // ============================================================================
120
+ /** Crisis tier: full activation with competing hypotheses for incidents */
121
+ const CRISIS_TIER_CONFIG = {
122
+ tier: 'crisis',
123
+ maxAgents: 15,
124
+ agentTeamsEnabled: true,
125
+ domains: [...ALL_USER_FACING_DOMAINS],
126
+ estimatedCost: 'unlimited',
127
+ description: 'Crisis response for production incidents. All domains active with competing hypotheses enabled. Unlimited cost budget to resolve incidents as fast as possible.',
128
+ triggers: [
129
+ { type: 'incident' },
130
+ { type: 'manual', conditions: { requestedTier: 'crisis' } },
131
+ ],
132
+ };
133
+ // ============================================================================
134
+ // Default Tier Config Map
135
+ // ============================================================================
136
+ /**
137
+ * Default configurations for all four fleet tiers.
138
+ * Keyed by FleetTier for O(1) lookup.
139
+ */
140
+ export const DEFAULT_TIER_CONFIGS = {
141
+ smoke: SMOKE_TIER_CONFIG,
142
+ standard: STANDARD_TIER_CONFIG,
143
+ deep: DEEP_TIER_CONFIG,
144
+ crisis: CRISIS_TIER_CONFIG,
145
+ };
146
+ // ============================================================================
147
+ // Accessor Functions
148
+ // ============================================================================
149
+ /**
150
+ * Retrieve the default configuration for a given fleet tier.
151
+ *
152
+ * @param tier - The fleet tier to look up
153
+ * @returns The default TierConfig for the requested tier
154
+ *
155
+ * @example
156
+ * ```typescript
157
+ * const config = getDefaultTierConfig('standard');
158
+ * console.log(config.maxAgents); // 7
159
+ * ```
160
+ */
161
+ export function getDefaultTierConfig(tier) {
162
+ return DEFAULT_TIER_CONFIGS[tier];
163
+ }
164
+ // ============================================================================
165
+ // Validation
166
+ // ============================================================================
167
+ /** Valid cost levels for validation */
168
+ const VALID_COST_LEVELS = [
169
+ 'minimal',
170
+ 'moderate',
171
+ 'high',
172
+ 'unlimited',
173
+ ];
174
+ /** Valid trigger types for validation */
175
+ const VALID_TRIGGER_TYPES = new Set([
176
+ 'commit',
177
+ 'pr',
178
+ 'release',
179
+ 'incident',
180
+ 'manual',
181
+ 'schedule',
182
+ ]);
183
+ /**
184
+ * Validate a tier configuration and return a list of validation errors.
185
+ * Returns an empty array if the configuration is valid.
186
+ *
187
+ * @param config - The TierConfig to validate
188
+ * @returns Array of human-readable validation error strings
189
+ *
190
+ * @example
191
+ * ```typescript
192
+ * const errors = validateTierConfig(myConfig);
193
+ * if (errors.length > 0) {
194
+ * console.error('Invalid tier config:', errors);
195
+ * }
196
+ * ```
197
+ */
198
+ export function validateTierConfig(config) {
199
+ const errors = [];
200
+ // Validate tier name
201
+ const validTiers = ['smoke', 'standard', 'deep', 'crisis'];
202
+ if (!validTiers.includes(config.tier)) {
203
+ errors.push(`Invalid tier name: "${config.tier}". Must be one of: ${validTiers.join(', ')}`);
204
+ }
205
+ // Validate maxAgents
206
+ if (!Number.isInteger(config.maxAgents) || config.maxAgents < 1) {
207
+ errors.push(`maxAgents must be a positive integer, got: ${config.maxAgents}`);
208
+ }
209
+ if (config.maxAgents > 15) {
210
+ errors.push(`maxAgents exceeds fleet maximum of 15, got: ${config.maxAgents}`);
211
+ }
212
+ // Validate domains
213
+ if (!Array.isArray(config.domains) || config.domains.length === 0) {
214
+ errors.push('domains must be a non-empty array');
215
+ }
216
+ // Validate estimatedCost
217
+ if (!VALID_COST_LEVELS.includes(config.estimatedCost)) {
218
+ errors.push(`Invalid estimatedCost: "${config.estimatedCost}". Must be one of: ${VALID_COST_LEVELS.join(', ')}`);
219
+ }
220
+ // Validate description
221
+ if (!config.description || config.description.trim().length === 0) {
222
+ errors.push('description must be a non-empty string');
223
+ }
224
+ // Validate triggers
225
+ if (!Array.isArray(config.triggers) || config.triggers.length === 0) {
226
+ errors.push('triggers must be a non-empty array');
227
+ }
228
+ else {
229
+ for (let i = 0; i < config.triggers.length; i++) {
230
+ const trigger = config.triggers[i];
231
+ if (!trigger || !VALID_TRIGGER_TYPES.has(trigger.type)) {
232
+ errors.push(`triggers[${i}] has invalid type: "${trigger?.type}". Must be one of: ${[...VALID_TRIGGER_TYPES].join(', ')}`);
233
+ }
234
+ }
235
+ }
236
+ // Validate agentTeamsEnabled consistency
237
+ if (config.agentTeamsEnabled && config.maxAgents < 3) {
238
+ errors.push('agentTeamsEnabled requires maxAgents >= 3 for meaningful team collaboration');
239
+ }
240
+ return errors;
241
+ }
242
+ //# sourceMappingURL=tier-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tier-config.js","sourceRoot":"","sources":["../../../src/coordination/fleet-tiers/tier-config.ts"],"names":[],"mappings":"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"}