@prenta/core 5.5.0 → 5.7.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 (109) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/dist/ai/governance.d.ts +6 -0
  3. package/dist/ai/governance.d.ts.map +1 -1
  4. package/dist/ai/governance.js +19 -0
  5. package/dist/ai/governance.js.map +1 -1
  6. package/dist/api/handlers.d.ts.map +1 -1
  7. package/dist/api/handlers.js +2 -0
  8. package/dist/api/handlers.js.map +1 -1
  9. package/dist/api/routes/redirects.d.ts.map +1 -1
  10. package/dist/api/routes/redirects.js +89 -93
  11. package/dist/api/routes/redirects.js.map +1 -1
  12. package/dist/api/routes/seo-autopilot.d.ts +12 -0
  13. package/dist/api/routes/seo-autopilot.d.ts.map +1 -0
  14. package/dist/api/routes/seo-autopilot.js +257 -0
  15. package/dist/api/routes/seo-autopilot.js.map +1 -0
  16. package/dist/api/routes/seo.d.ts.map +1 -1
  17. package/dist/api/routes/seo.js +195 -360
  18. package/dist/api/routes/seo.js.map +1 -1
  19. package/dist/db/model-types.d.ts +26 -0
  20. package/dist/db/model-types.d.ts.map +1 -1
  21. package/dist/generated/browser.d.ts +8 -0
  22. package/dist/generated/client.d.ts +8 -0
  23. package/dist/generated/internal/class.d.ts +11 -0
  24. package/dist/generated/internal/class.js +4 -4
  25. package/dist/generated/internal/prismaNamespace.d.ts +120 -1
  26. package/dist/generated/internal/prismaNamespace.js +42 -0
  27. package/dist/generated/internal/prismaNamespaceBrowser.d.ts +44 -0
  28. package/dist/generated/internal/prismaNamespaceBrowser.js +42 -0
  29. package/dist/generated/models/SeoAutoApply.d.ts +1495 -0
  30. package/dist/generated/models/SeoAutoApply.js +1 -0
  31. package/dist/generated/models.d.ts +1 -0
  32. package/dist/redirects/recovery.d.ts +15 -9
  33. package/dist/redirects/recovery.d.ts.map +1 -1
  34. package/dist/redirects/recovery.js +15 -61
  35. package/dist/redirects/recovery.js.map +1 -1
  36. package/dist/redirects/suggestion-accept.d.ts +29 -0
  37. package/dist/redirects/suggestion-accept.d.ts.map +1 -0
  38. package/dist/redirects/suggestion-accept.js +108 -0
  39. package/dist/redirects/suggestion-accept.js.map +1 -0
  40. package/dist/seo/audit-runner.d.ts.map +1 -1
  41. package/dist/seo/audit-runner.js +0 -2
  42. package/dist/seo/audit-runner.js.map +1 -1
  43. package/dist/seo/autopilot-gate.d.ts +101 -0
  44. package/dist/seo/autopilot-gate.d.ts.map +1 -0
  45. package/dist/seo/autopilot-gate.js +272 -0
  46. package/dist/seo/autopilot-gate.js.map +1 -0
  47. package/dist/seo/autopilot-ledger.d.ts +74 -0
  48. package/dist/seo/autopilot-ledger.d.ts.map +1 -0
  49. package/dist/seo/autopilot-ledger.js +118 -0
  50. package/dist/seo/autopilot-ledger.js.map +1 -0
  51. package/dist/seo/autopilot-outcome.d.ts +93 -0
  52. package/dist/seo/autopilot-outcome.d.ts.map +1 -0
  53. package/dist/seo/autopilot-outcome.js +206 -0
  54. package/dist/seo/autopilot-outcome.js.map +1 -0
  55. package/dist/seo/autopilot-policy.d.ts +169 -0
  56. package/dist/seo/autopilot-policy.d.ts.map +1 -0
  57. package/dist/seo/autopilot-policy.js +267 -0
  58. package/dist/seo/autopilot-policy.js.map +1 -0
  59. package/dist/seo/autopilot-revert.d.ts +40 -0
  60. package/dist/seo/autopilot-revert.d.ts.map +1 -0
  61. package/dist/seo/autopilot-revert.js +155 -0
  62. package/dist/seo/autopilot-revert.js.map +1 -0
  63. package/dist/seo/autopilot.d.ts +91 -0
  64. package/dist/seo/autopilot.d.ts.map +1 -0
  65. package/dist/seo/autopilot.js +1060 -0
  66. package/dist/seo/autopilot.js.map +1 -0
  67. package/dist/seo/config-store.d.ts +35 -2
  68. package/dist/seo/config-store.d.ts.map +1 -1
  69. package/dist/seo/config-store.js +58 -1
  70. package/dist/seo/config-store.js.map +1 -1
  71. package/dist/seo/deep-equal.d.ts +12 -0
  72. package/dist/seo/deep-equal.d.ts.map +1 -0
  73. package/dist/seo/deep-equal.js +42 -0
  74. package/dist/seo/deep-equal.js.map +1 -0
  75. package/dist/seo/digest.d.ts +27 -0
  76. package/dist/seo/digest.d.ts.map +1 -1
  77. package/dist/seo/digest.js +77 -1
  78. package/dist/seo/digest.js.map +1 -1
  79. package/dist/seo/index.d.ts +20 -2
  80. package/dist/seo/index.d.ts.map +1 -1
  81. package/dist/seo/index.js +12 -1
  82. package/dist/seo/index.js.map +1 -1
  83. package/dist/seo/issue-fix-ai.d.ts +40 -1
  84. package/dist/seo/issue-fix-ai.d.ts.map +1 -1
  85. package/dist/seo/issue-fix-ai.js +53 -1
  86. package/dist/seo/issue-fix-ai.js.map +1 -1
  87. package/dist/seo/issue-fix-apply.d.ts +104 -0
  88. package/dist/seo/issue-fix-apply.d.ts.map +1 -0
  89. package/dist/seo/issue-fix-apply.js +406 -0
  90. package/dist/seo/issue-fix-apply.js.map +1 -0
  91. package/dist/seo/issue-fix.d.ts +9 -0
  92. package/dist/seo/issue-fix.d.ts.map +1 -1
  93. package/dist/seo/issue-fix.js +1 -0
  94. package/dist/seo/issue-fix.js.map +1 -1
  95. package/dist/seo/proposals-bulk-apply.d.ts +52 -0
  96. package/dist/seo/proposals-bulk-apply.d.ts.map +1 -0
  97. package/dist/seo/proposals-bulk-apply.js +183 -0
  98. package/dist/seo/proposals-bulk-apply.js.map +1 -0
  99. package/dist/seo/proposals-generate.d.ts +45 -0
  100. package/dist/seo/proposals-generate.d.ts.map +1 -0
  101. package/dist/seo/proposals-generate.js +144 -0
  102. package/dist/seo/proposals-generate.js.map +1 -0
  103. package/dist/seo/proposals.d.ts +125 -0
  104. package/dist/seo/proposals.d.ts.map +1 -0
  105. package/dist/seo/proposals.js +270 -0
  106. package/dist/seo/proposals.js.map +1 -0
  107. package/package.json +1 -1
  108. package/prisma/migrations/0017_seo_auto_applies/migration.sql +35 -0
  109. package/prisma/schema.prisma +43 -0
@@ -0,0 +1 @@
1
+ export {};
@@ -19,6 +19,7 @@ export type * from './models/AiCrawlerHit.js';
19
19
  export type * from './models/SearchPerfDaily.js';
20
20
  export type * from './models/SearchPageInsight.js';
21
21
  export type * from './models/RedirectSuggestion.js';
22
+ export type * from './models/SeoAutoApply.js';
22
23
  export type * from './models/FormSchemaVersion.js';
23
24
  export type * from './models/FormSubmission.js';
24
25
  export type * from './models/FormSubmissionFile.js';
@@ -1,6 +1,12 @@
1
1
  /**
2
2
  * Unified 404 redirect recovery — legitimacy gate + heuristic matching.
3
3
  * Used by the Redirects tab generator and the SEO audit pipeline.
4
+ *
5
+ * This module only plans and persists *suggestions*. The unattended path that
6
+ * turns a suggestion into a live `Redirect` row is the SEO Autopilot engine
7
+ * (`seo/autopilot.ts`), which gates, applies via `acceptRedirectSuggestion`
8
+ * and ledgers every write. `createRecoveryRedirect` remains for human-driven
9
+ * fixes (`seo/issue-fix-redirect.ts`).
4
10
  */
5
11
  import { type SuggestCandidate } from './suggest.js';
6
12
  import type { safeFetch } from '../security/safe-fetch.js';
@@ -19,7 +25,6 @@ export interface RecoveryPlan {
19
25
  legitimacyScore: number;
20
26
  legitimacyReasons: string[];
21
27
  matchSource?: 'heuristic' | 'semantic';
22
- autoApplied?: boolean;
23
28
  }
24
29
  export interface RecoveryPlanOptions {
25
30
  candidates: SuggestCandidate[];
@@ -28,8 +33,6 @@ export interface RecoveryPlanOptions {
28
33
  minConfidence?: number;
29
34
  siteUrl?: string;
30
35
  enableAiRerank?: boolean;
31
- autoApply?: boolean;
32
- autoApplyMinConfidence?: number;
33
36
  semanticRerank?: import('./rerank.js').SemanticRerankFn | null;
34
37
  /** Test seam for live source-URL probes. */
35
38
  fetchFn?: typeof safeFetch;
@@ -77,7 +80,11 @@ type RecoverySuggestionDb = {
77
80
  createMany?: (args: unknown) => Promise<unknown>;
78
81
  };
79
82
  };
80
- /** Create a 301 redirect from a recovery plan (shared by auto-apply and audit fixes). */
83
+ /**
84
+ * Create a 301 redirect from a recovery plan. Human-driven only: called from
85
+ * the issue-fix path (`seo/issue-fix-redirect.ts`) with the acting user's id.
86
+ * Unattended redirect writes go through the SEO Autopilot engine instead.
87
+ */
81
88
  export declare function createRecoveryRedirect(db: RecoverySuggestionDb, plan: Pick<RecoveryPlan, 'fromPath' | 'toPath'>, userId?: string, options?: {
82
89
  siteUrl?: string;
83
90
  fetchFn?: typeof safeFetch;
@@ -92,9 +99,6 @@ export declare function generateRecoverySuggestions(db: RecoverySuggestionDb, op
92
99
  include404Hits?: boolean;
93
100
  siteUrl?: string;
94
101
  enableAiRerank?: boolean;
95
- autoApply?: boolean;
96
- autoApplyMinConfidence?: number;
97
- autoApplyUserId?: string;
98
102
  semanticRerank?: import('./rerank.js').SemanticRerankFn | null;
99
103
  fetchFn?: typeof safeFetch;
100
104
  /** DB handle for the governed semantic rerank; defaults to the positional `db`. */
@@ -102,9 +106,11 @@ export declare function generateRecoverySuggestions(db: RecoverySuggestionDb, op
102
106
  }): Promise<{
103
107
  created: number;
104
108
  planned: number;
109
+ /**
110
+ * Always 0. Auto-apply moved to the SEO Autopilot engine; the field stays in
111
+ * the shape for one release so existing callers keep compiling.
112
+ */
105
113
  autoApplied: number;
106
- /** Set when governance vetoed a requested auto-apply; plans became suggestions. */
107
- governanceBlocked?: string;
108
114
  }>;
109
115
  export {};
110
116
  //# sourceMappingURL=recovery.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"recovery.d.ts","sourceRoot":"","sources":["../../src/redirects/recovery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"recovery.d.ts","sourceRoot":"","sources":["../../src/redirects/recovery.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,12 @@
1
1
  /**
2
2
  * Unified 404 redirect recovery — legitimacy gate + heuristic matching.
3
3
  * Used by the Redirects tab generator and the SEO audit pipeline.
4
+ *
5
+ * This module only plans and persists *suggestions*. The unattended path that
6
+ * turns a suggestion into a live `Redirect` row is the SEO Autopilot engine
7
+ * (`seo/autopilot.ts`), which gates, applies via `acceptRedirectSuggestion`
8
+ * and ledgers every write. `createRecoveryRedirect` remains for human-driven
9
+ * fixes (`seo/issue-fix-redirect.ts`).
4
10
  */
5
11
  import { normalizeRedirectPath } from './graph.js';
6
12
  import { scorePathLegitimacy } from './legitimacy.js';
@@ -8,7 +14,6 @@ import { resolveRedirectMatch } from './rerank.js';
8
14
  import { validateRedirectDestination } from './validate-destination.js';
9
15
  import { filterConfirmedDeadRecoveryPaths, probeSitePathStatus, } from '../seo/confirm-broken-links.js';
10
16
  import { isConfirmedDeadLinkStatus } from '../seo/link-probe.js';
11
- import { assertAutoApplyAllowed } from '../ai/governance.js';
12
17
  function normalizeBrokenHref(href, siteUrl) {
13
18
  const trimmed = href.trim();
14
19
  if (!trimmed ||
@@ -86,7 +91,11 @@ export async function planRecoveryRedirects(pathMap, options) {
86
91
  }
87
92
  return plans;
88
93
  }
89
- /** Create a 301 redirect from a recovery plan (shared by auto-apply and audit fixes). */
94
+ /**
95
+ * Create a 301 redirect from a recovery plan. Human-driven only: called from
96
+ * the issue-fix path (`seo/issue-fix-redirect.ts`) with the acting user's id.
97
+ * Unattended redirect writes go through the SEO Autopilot engine instead.
98
+ */
90
99
  export async function createRecoveryRedirect(db, plan, userId, options = {}) {
91
100
  if (!db.redirect?.upsert)
92
101
  return;
@@ -206,64 +215,9 @@ export async function generateRecoverySuggestions(db, options) {
206
215
  siteUrl,
207
216
  fetchFn: options.fetchFn,
208
217
  });
209
- const autoMin = options.autoApplyMinConfidence ?? 85;
210
- let autoApply = options.autoApply === true;
211
- let governanceBlocked;
212
- if (autoApply) {
213
- const eligible = plans.filter((p) => p.confidence >= autoMin).length;
214
- if (eligible > 0) {
215
- const decision = await assertAutoApplyAllowed(db, 'ai.features.seo404Recovery', {
216
- count: eligible,
217
- });
218
- if (!decision.ok) {
219
- autoApply = false;
220
- governanceBlocked = decision.reason;
221
- try {
222
- await db.auditLog?.create?.({
223
- data: {
224
- event: 'ai_auto_apply_blocked',
225
- userId: options.autoApplyUserId ?? 'system',
226
- timestamp: new Date(),
227
- details: {
228
- source: 'redirect-recovery',
229
- feature: 'ai.features.seo404Recovery',
230
- reason: decision.reason,
231
- eligible,
232
- },
233
- },
234
- });
235
- }
236
- catch {
237
- // Audit is observational — never block the pipeline.
238
- }
239
- }
240
- }
241
- }
242
- let created = 0;
243
- let autoApplied = 0;
244
- const pending = [];
245
- for (const plan of plans) {
246
- if (autoApply && plan.confidence >= autoMin) {
247
- try {
248
- await createRecoveryRedirect(db, plan, options.autoApplyUserId, {
249
- siteUrl,
250
- fetchFn: options.fetchFn,
251
- });
252
- autoApplied++;
253
- }
254
- catch {
255
- // Live guard rejected (source became healthy) — fall through to suggestion skip.
256
- }
257
- continue;
258
- }
259
- pending.push(plan);
260
- }
261
- created = await upsertRedirectSuggestions(db, pending);
262
- return {
263
- created,
264
- planned: plans.length,
265
- autoApplied,
266
- ...(governanceBlocked ? { governanceBlocked } : {}),
267
- };
218
+ // Auto-apply moved to the SEO Autopilot engine (seo/autopilot.ts): this
219
+ // pipeline only plans and persists suggestions now.
220
+ const created = await upsertRedirectSuggestions(db, plans);
221
+ return { created, planned: plans.length, autoApplied: 0 };
268
222
  }
269
223
  //# sourceMappingURL=recovery.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"recovery.js","sourceRoot":"","sources":["../../src/redirects/recovery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"recovery.js","sourceRoot":"","sources":["../../src/redirects/recovery.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Accept a 404-recovery redirect suggestion — the single implementation
3
+ * behind `POST /seo/redirects/suggestions/:id/accept` and the proposals
4
+ * bulk-apply route. Loop check → destination validation → live dead-URL
5
+ * probe → [create redirect + mark suggestion accepted, in one transaction] →
6
+ * resolve 404 hits → audit. Unknown errors are thrown; the route maps result
7
+ * statuses.
8
+ */
9
+ import type { PrentaDB } from '../db/client-types.js';
10
+ export type AcceptRedirectSuggestionResult = {
11
+ status: 'accepted';
12
+ redirectId: string;
13
+ } | {
14
+ status: 'not-found';
15
+ } | {
16
+ status: 'invalid';
17
+ reason: string;
18
+ } | {
19
+ status: 'still-live';
20
+ reason: string;
21
+ };
22
+ export interface AcceptRedirectSuggestionInput {
23
+ suggestionId: string;
24
+ actor: {
25
+ userId: string;
26
+ };
27
+ }
28
+ export declare function acceptRedirectSuggestion(db: PrentaDB, input: AcceptRedirectSuggestionInput): Promise<AcceptRedirectSuggestionResult>;
29
+ //# sourceMappingURL=suggestion-accept.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"suggestion-accept.d.ts","sourceRoot":"","sources":["../../src/redirects/suggestion-accept.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAUrD,MAAM,MAAM,8BAA8B,GACtC;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAC1C;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,GACvB;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,MAAM,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAE5C,MAAM,WAAW,6BAA6B;IAC5C,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CAC1B;AAiBD,wBAAsB,wBAAwB,CAC5C,EAAE,EAAE,QAAQ,EACZ,KAAK,EAAE,6BAA6B,GACnC,OAAO,CAAC,8BAA8B,CAAC,CA+FzC"}
@@ -0,0 +1,108 @@
1
+ import { getPrentaConfig } from '../config/runtime.js';
2
+ import { findInBatches } from '../db/find-in-batches.js';
3
+ import { logEvent } from '../security/audit.js';
4
+ import { isConfirmedDeadLinkStatus } from '../seo/link-probe.js';
5
+ import { probeSitePathStatus } from '../seo/confirm-broken-links.js';
6
+ import { wouldCreateLoop } from './graph.js';
7
+ import { validateRedirectDestination } from './validate-destination.js';
8
+ /**
9
+ * Same probe as `hasModel()` in `api/route-helpers.ts`: `guardedDb()` hands
10
+ * back a throwing Proxy for models missing from the consumer schema, so a
11
+ * plain truthiness check would report them present. Kept local because the
12
+ * redirects layer must not depend on the API layer.
13
+ */
14
+ function hasModel(db, model) {
15
+ try {
16
+ const delegate = db[model];
17
+ return Boolean(delegate) && typeof delegate?.findMany === 'function';
18
+ }
19
+ catch {
20
+ return false;
21
+ }
22
+ }
23
+ export async function acceptRedirectSuggestion(db, input) {
24
+ const suggestion = await db.redirectSuggestion.findUnique({
25
+ where: { id: input.suggestionId },
26
+ });
27
+ if (!suggestion)
28
+ return { status: 'not-found' };
29
+ const rows = await findInBatches(({ take, cursor }) => db.redirect.findMany({
30
+ take,
31
+ ...(cursor ? { skip: 1, cursor: { id: cursor } } : {}),
32
+ orderBy: { id: 'asc' },
33
+ }));
34
+ if (wouldCreateLoop(rows.map((r) => ({
35
+ id: r.id,
36
+ from: r.source,
37
+ to: r.destination,
38
+ enabled: r.enabled,
39
+ })), suggestion.fromPath, suggestion.toPath)) {
40
+ return { status: 'invalid', reason: 'Accepting this suggestion would create a redirect loop.' };
41
+ }
42
+ const destErr = validateRedirectDestination(suggestion.toPath, 301);
43
+ if (destErr)
44
+ return { status: 'invalid', reason: destErr };
45
+ // Never accept a recovery redirect for a source that is live on the site
46
+ // (hybrid/native routes were previously suggested from CMS-only 404s).
47
+ const siteUrl = getPrentaConfig()?.seo?.siteUrl?.replace(/\/+$/, '');
48
+ if (siteUrl) {
49
+ const status = await probeSitePathStatus(siteUrl, suggestion.fromPath);
50
+ if (!isConfirmedDeadLinkStatus(status)) {
51
+ return {
52
+ status: 'still-live',
53
+ reason: `Cannot accept: ${suggestion.fromPath} is not a confirmed dead URL on the live site (HTTP ${status || 'unreachable'}).`,
54
+ };
55
+ }
56
+ }
57
+ // The redirect row and the suggestion's `accepted` status must land together:
58
+ // a live redirect whose suggestion is still `open` has no owner (autopilot
59
+ // cannot ledger or revert it, and would gate it `redirect_manual_exists`
60
+ // forever), and an accepted suggestion with no redirect is a silent no-op.
61
+ // A failure on either write rolls both back and propagates to the caller.
62
+ const created = await db.$transaction(async (tx) => {
63
+ const row = await tx.redirect.create({
64
+ data: {
65
+ source: suggestion.fromPath,
66
+ destination: suggestion.toPath,
67
+ statusCode: 301,
68
+ enabled: true,
69
+ source_kind: 'ai-404-recovery',
70
+ createdById: input.actor.userId,
71
+ },
72
+ });
73
+ await tx.redirectSuggestion.update({
74
+ where: { id: suggestion.id },
75
+ data: { status: 'accepted' },
76
+ });
77
+ return row;
78
+ });
79
+ // Mark the 404 resolved. Best effort and outside the transaction on purpose:
80
+ // a failed statement inside a Postgres transaction aborts it, which would turn
81
+ // this tolerated failure into a rolled-back accept.
82
+ if (hasModel(db, 'redirect404Hit')) {
83
+ await db.redirect404Hit
84
+ .updateMany({
85
+ where: { path: suggestion.fromPath },
86
+ data: { resolvedAt: new Date() },
87
+ })
88
+ .catch(() => { });
89
+ }
90
+ try {
91
+ await logEvent({
92
+ event: 'settings_changed',
93
+ userId: input.actor.userId,
94
+ details: {
95
+ action: 'redirect_accept_suggestion',
96
+ suggestionId: suggestion.id,
97
+ redirectId: created.id,
98
+ source: suggestion.fromPath,
99
+ destination: suggestion.toPath,
100
+ },
101
+ });
102
+ }
103
+ catch {
104
+ /* audit-log failures never block */
105
+ }
106
+ return { status: 'accepted', redirectId: created.id };
107
+ }
108
+ //# sourceMappingURL=suggestion-accept.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"suggestion-accept.js","sourceRoot":"","sources":["../../src/redirects/suggestion-accept.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"audit-runner.d.ts","sourceRoot":"","sources":["../../src/seo/audit-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAGL,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EAEvB,MAAM,mBAAmB,CAAA;AAO1B,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAWxE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAGrD,OAAO,EAEL,KAAK,oBAAoB,EAE1B,MAAM,qBAAqB,CAAA;AAW5B;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAEhE;AAED,6EAA6E;AAC7E,MAAM,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAA;AAEpE;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,OAAO,GAAG,sBAAsB,CAgBnF;AAED;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,OAAO,CAAA;AAUtC,yEAAyE;AACzE,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,GAAG,EACR,eAAe,CAAC,EAAE,sBAAsB,EACxC,OAAO,CAAC,EAAE,aAAa,EACvB,cAAc,CAAC,EAAE,eAAe,GAAG,IAAI,GACtC,gBAAgB,CAwElB;AAED,MAAM,WAAW,kBAAkB;IACjC;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,sBAAsB,CAAA;IACxC;;;;;;;;;;;;OAYG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB;;;OAGG;IACH,eAAe,CAAC,EAAE,eAAe,GAAG,IAAI,CAAA;IACxC,yDAAyD;IACzD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,uDAAuD;IACvD,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAqBD,wBAAsB,kBAAkB,CACtC,EAAE,EAAE,QAAQ,EACZ,OAAO,GAAE,IAAI,CAAC,kBAAkB,EAAE,iBAAiB,GAAG,aAAa,CAAM,GACxE,OAAO,CAAC,MAAM,CAAC,CAKjB;AAED,wBAAsB,mBAAmB,CACvC,EAAE,EAAE,QAAQ,EACZ,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,gBAAgB,EAAE,CAAC,CA2C7B;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,gFAAgF;IAChF,OAAO,CAAC,EAAE,iBAAiB,CAAA;IAC3B;;;;OAIG;IACH,eAAe,CAAC,EAAE,sBAAsB,CAAA;CACzC;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,cAAc,EAAE,MAAM,CAAA;IACtB,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,oBAAoB,CAAA;CACpC;AA6BD;;;;;GAKG;AACH,qBAAa,wBAAyB,SAAQ,KAAK;;CAKlD;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,SAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAW3F;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,EAAE,EAAE,QAAQ,EACZ,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,iBAAiB,CAAC,CAkL5B"}
1
+ {"version":3,"file":"audit-runner.d.ts","sourceRoot":"","sources":["../../src/seo/audit-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAGL,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EAEvB,MAAM,mBAAmB,CAAA;AAO1B,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAWxE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAGrD,OAAO,EAEL,KAAK,oBAAoB,EAE1B,MAAM,qBAAqB,CAAA;AAW5B;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAEhE;AAED,6EAA6E;AAC7E,MAAM,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAA;AAEpE;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,OAAO,GAAG,sBAAsB,CAgBnF;AAED;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,OAAO,CAAA;AAUtC,yEAAyE;AACzE,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,GAAG,EACR,eAAe,CAAC,EAAE,sBAAsB,EACxC,OAAO,CAAC,EAAE,aAAa,EACvB,cAAc,CAAC,EAAE,eAAe,GAAG,IAAI,GACtC,gBAAgB,CAwElB;AAED,MAAM,WAAW,kBAAkB;IACjC;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,sBAAsB,CAAA;IACxC;;;;;;;;;;;;OAYG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB;;;OAGG;IACH,eAAe,CAAC,EAAE,eAAe,GAAG,IAAI,CAAA;IACxC,yDAAyD;IACzD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,uDAAuD;IACvD,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAqBD,wBAAsB,kBAAkB,CACtC,EAAE,EAAE,QAAQ,EACZ,OAAO,GAAE,IAAI,CAAC,kBAAkB,EAAE,iBAAiB,GAAG,aAAa,CAAM,GACxE,OAAO,CAAC,MAAM,CAAC,CAKjB;AAED,wBAAsB,mBAAmB,CACvC,EAAE,EAAE,QAAQ,EACZ,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,gBAAgB,EAAE,CAAC,CA2C7B;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,gFAAgF;IAChF,OAAO,CAAC,EAAE,iBAAiB,CAAA;IAC3B;;;;OAIG;IACH,eAAe,CAAC,EAAE,sBAAsB,CAAA;CACzC;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,cAAc,EAAE,MAAM,CAAA;IACtB,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,oBAAoB,CAAA;CACpC;AA6BD;;;;;GAKG;AACH,qBAAa,wBAAyB,SAAQ,KAAK;;CAKlD;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,SAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAW3F;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,EAAE,EAAE,QAAQ,EACZ,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,iBAAiB,CAAC,CAgL5B"}
@@ -384,8 +384,6 @@ export async function runAndPersistAudit(db, options = {}) {
384
384
  siteUrl: siteUrl ?? undefined,
385
385
  enableAiRerank: moduleSettings.redirectRecoveryAiRerank,
386
386
  db,
387
- autoApply: moduleSettings.redirectRecoveryAutoApply,
388
- autoApplyMinConfidence: moduleSettings.redirectRecoveryAutoApplyMinConfidence,
389
387
  }).catch(() => { });
390
388
  }
391
389
  await db.seoAuditRun.update({
@@ -1 +1 @@
1
- {"version":3,"file":"audit-runner.js","sourceRoot":"","sources":["../../src/seo/audit-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"audit-runner.js","sourceRoot":"","sources":["../../src/seo/audit-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,8BAA8B,EAC9B,mBAAmB,GAIpB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,wBAAwB,EACxB,eAAe,EACf,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EACL,kBAAkB,EAClB,4BAA4B,EAC5B,oBAAoB,GACrB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,6BAA6B,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC1F,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAA;AAE7D,OAAO,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAA;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAC7D,OAAO,EACL,qBAAqB,GAGtB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,gCAAgC,EAA4B,MAAM,sBAAsB,CAAA;AAEjG,iEAAiE;AACjE,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC;IACnC,qBAAqB;IACrB,WAAW;IACX,WAAW;IACX,gBAAgB;CACjB,CAAC,CAAA;AAEF;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,UAAkB;IACrD,OAAO,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;AACpF,CAAC;AAKD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,8BAA8B,CAAC,GAAY;IACzD,MAAM,GAAG,GAA2B,EAAE,CAAA;IACtC,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,EAAE,CAGxB,CAAA;IACD,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,EAAE,CAAA;IAC5C,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAS,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,kBAAkB,IAAI,EAAE,CAAC,CAAA;IAC/E,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QACtD,IAAI,GAAG,EAAE,IAAI,KAAK,MAAM,IAAI,GAAG,EAAE,IAAI,KAAK,MAAM;YAAE,SAAQ;QAC1D,IAAI,GAAG,EAAE,KAAK,EAAE,MAAM;YAAE,SAAQ;QAChC,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,SAAQ;QAChC,IAAI,GAAG,EAAE,GAAG,EAAE,kBAAkB;YAAE,SAAQ;QAC1C,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAA;IACtB,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAA;AAEtC,SAAS,QAAQ,CAAC,CAAU;IAC1B,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAA6B,CAAC,CAAC,CAAC,EAAE,CAAA;AAC9F,CAAC;AAED,SAAS,GAAG,CAAC,CAAU;IACrB,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AACzD,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,qBAAqB,CACnC,GAAQ,EACR,eAAwC,EACxC,OAAuB,EACvB,cAAuC;IAEvC,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAC/B,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;IAC/C,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAA;IACjD,MAAM,MAAM,GAAG,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,cAAc,CAAA;IAChF,MAAM,aAAa,GAAG,MAAM,EAAE,WAAW,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;IAC3D,MAAM,IAAI,GAAG,OAAO,IAAI,MAAM,EAAE,GAAG,CAAA;IACnC,MAAM,OAAO,GAAG,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,EAAE,CAAA;IACxD,MAAM,GAAG,GAAG,kBAAkB,CAAC;QAC7B,OAAO,EAAE,EAAE;QACX,SAAS,EAAE,aAAa,EAAE,SAAS;QACnC,IAAI;QACJ,IAAI;KACL,CAAC,CAAA;IACF,MAAM,YAAY,GAAG,4BAA4B,CAAC;QAChD,IAAI;QACJ,OAAO;QACP,SAAS,EAAE,aAAa,EAAE,SAAS;QACnC,IAAI;QACJ,aAAa,EAAE,IAAI,EAAE,aAAa;KACnC,CAAC,CAAA;IACF,sEAAsE;IACtE,sFAAsF;IACtF,MAAM,OAAO,GAAG,6BAA6B,CAAC,GAAG,CAAC,CAAA;IAElD,2EAA2E;IAC3E,2DAA2D;IAC3D,MAAM,UAAU,GACd,eAAe,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;IAErF,MAAM,kBAAkB,GAAG,0BAA0B,CAAC;QACpD,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,IAAI;QACJ,cAAc,EAAE,UAAU;QAC1B,aAAa;KACd,CAAC,CAAA;IAEF,MAAM,aAAa,GAAG,oBAAoB,CAAC;QACzC,IAAI;QACJ,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK;QACtC,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,UAAU,EAAE,aAAa;QACzB,cAAc,EAAE,GAAG,CAAC,UAAU;QAC9B,IAAI;QACJ,OAAO;KACR,CAAC,CAAA;IAEF,OAAO;QACL,UAAU;QACV,QAAQ,EAAE,GAAG,CAAC,EAAE;QAChB,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK,IAAI,UAAU;QACjD,GAAG;QACH,OAAO;QACP,SAAS,EAAE,aAAa,CAAC,SAAS;QAClC,aAAa,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI;QAChE,eAAe,EAAE,aAAa,CAAC,eAAe;QAC9C,YAAY,EAAE,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC;QAChE,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;QAClC,YAAY;QACZ,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,aAAa,CAAC,SAAS,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK;QACrF,aAAa,EAAE,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,eAAe;QACvE,OAAO,EAAE,aAAa,CAAC,OAAO;QAC9B,UAAU,EACR,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC;QAC5F,kBAAkB;QAClB,OAAO,EAAE,aAAa,CAAC,OAAO;QAC9B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;QACrE,UAAU,EAAE,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;QAC3E,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,IAAI;QAChC,UAAU,EAAE,IAAI;KACjB,CAAA;AACH,CAAC;AAoCD,SAAS,gBAAgB,CACvB,OAAoE;IAEpE,MAAM,EAAE,eAAe,EAAE,WAAW,EAAE,GAAG,OAAO,CAAA;IAChD,MAAM,KAAK,GAA4B,EAAE,SAAS,EAAE,IAAI,EAAE,CAAA;IAC1D,IAAI,WAAW,EAAE,CAAC;QAChB,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAA;QACzC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,WAAW,EAAE,CAAA;IAChC,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,MAAM,GAAG,WAAW,CAAA;IAC5B,CAAC;IACD,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;QAC1C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAA;QACnC,KAAK,CAAC,UAAU,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,CAAA;IAClC,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,EAAY,EACZ,UAAuE,EAAE;IAEzE,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAA;IACvC,IAAI,CAAC,KAAK;QAAE,OAAO,CAAC,CAAA;IACpB,IAAI,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,KAAK,UAAU;QAAE,OAAO,CAAC,CAAA;IACrD,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;AACrC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,EAAY,EACZ,UAA8B,EAAE;IAEhC,MAAM,EAAE,eAAe,EAAE,WAAW,EAAE,GAAG,OAAO,CAAA;IAEhD,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAA;IACvC,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAA;IAErB,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CACnB,kBAAkB,EAClB,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI,kBAAkB,CAAC,CAAC,CAC5D,CAAA;IACD,MAAM,IAAI,GAAG,WAAW;QACtB,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAEhF,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACtC,KAAK;QACL,MAAM,EAAE;YACN,EAAE,EAAE,IAAI;YACR,UAAU,EAAE,IAAI;YAChB,KAAK,EAAE,IAAI;YACX,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,IAAI;YACV,cAAc,EAAE,IAAI;YACpB,SAAS,EAAE,IAAI;YACf,WAAW,EAAE,IAAI;YACjB,SAAS,EAAE,IAAI;SAChB;QACD,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE;QAC9B,IAAI;QACJ,IAAI;KACL,CAAC,CAAA;IAEF,IAAI,eAAe,GAAG,OAAO,CAAC,eAAe,CAAA;IAC7C,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;QAClC,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAA;QAC7D,eAAe,GAAG,iBAAiB,CAAC,eAAe,EAAE,EAAE,SAAS,CAAC,CAAA;IACnE,CAAC;IAED,OAAO,IAAI;SACR,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;SAClF,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CACd,qBAAqB,CAAC,CAAC,EAAE,eAAe,EAAE,eAAe,EAAE,GAAG,EAAE,eAAe,CAAC,CACjF,CAAA;AACL,CAAC;AA2BD,SAAS,+BAA+B,CACtC,KAAa,EACb,MAAgC,EAChC,YAAiC;IAEjC,OAAO;QACL,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,CAAC;QACnF,OAAO,EAAE;YACP,OAAO,EAAE,MAAM,KAAK,UAAU;YAC9B,YAAY;YACZ,QAAQ,EAAE,CAAC;YACX,UAAU,EAAE,CAAC;YACb,YAAY,EAAE,KAAK;YACnB,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,CAAC;YACZ,UAAU,EAAE,CAAC;YACb,OAAO,EAAE,EAAE;SACZ;KACF,CAAA;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,YAAY,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;AAEnC;;;;;GAKG;AACH,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IACjD;QACE,KAAK,CAAC,6BAA6B,CAAC,CAAA;QACpC,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAA;IACxC,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,EAAY,EAAE,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE;IACxE,IAAI,CAAC,EAAE,EAAE,WAAW,EAAE,UAAU;QAAE,OAAO,CAAC,CAAA;IAC1C,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC;QAC1C,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,EAAE,EAAE;QAC/E,IAAI,EAAE;YACJ,MAAM,EAAE,QAAQ;YAChB,UAAU,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC;YAC3B,YAAY,EAAE,6CAA6C;SAC5D;KACF,CAAC,CAAA;IACF,OAAO,GAAG,EAAE,KAAK,IAAI,CAAC,CAAA;AACxB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,EAAY,EACZ,UAA2B,EAAE;IAE7B,IAAI,CAAC,EAAE,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;IAC7C,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,MAAM,CAAA;IAErC,MAAM,YAAY,GAAG,eAAe,EAAE,CAAA;IACtC,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAA;IAC7D,MAAM,cAAc,GAAG,wBAAwB,CAAC,SAAS,CAAC,CAAA;IAC1D,MAAM,eAAe,GAAG,iBAAiB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAA;IAClE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,gCAAgC,CACxE,YAAY,EACZ,SAAS,CACV,CAAA;IAED,wEAAwE;IACxE,yEAAyE;IACzE,6EAA6E;IAC7E,yEAAyE;IACzE,eAAe;IACf,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,WAAW;SAClC,SAAS,CAAC;QACT,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE;QAC5B,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE;QAC9B,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE;KAC5B,CAAC;SACD,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAA;IACpB,IAAI,QAAQ,EAAE,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,YAAY,EAAE,CAAC;QAC9F,MAAM,IAAI,wBAAwB,EAAE,CAAA;IACtC,CAAC;IAED,8DAA8D;IAC9D,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC;QAC1C,KAAK,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE;QAC9B,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE;QAC9B,MAAM,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE;KACjC,CAAC,CAAA;IAEF,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC;QACtC,IAAI,EAAE;YACJ,MAAM,EAAE,SAAS;YACjB,KAAK;YACL,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,IAAI;YACxC,eAAe,EAAE,IAAI,EAAE,cAAc,IAAI,IAAI;SAC9C;KACF,CAAC,CAAA;IAEF,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,EAAE,EAAE;YAC7C,eAAe,EAAE,OAAO,CAAC,eAAe;YACxC,eAAe;SAChB,CAAC,CAAA;QACF,MAAM,eAAe,GAAG,cAAc,CAAC,iBAAiB,CAAA;QACxD,MAAM,cAAc,GAClB,eAAe,IAAI,OAAO,IAAI,YAAY;YACxC,CAAC,CAAC,MAAM,qBAAqB,CACzB,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,EACxD,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,CAClC;YACH,CAAC,CAAC,+BAA+B,CAC7B,QAAQ,CAAC,MAAM,EACf,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,EAC1C,YAAY,CACb,CAAA;QACP,MAAM,oBAAoB,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YAC5D,GAAG,MAAM;YACT,gBAAgB,EAAE,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC;SACjD,CAAC,CAAC,CAAA;QACH,MAAM,YAAY,GAAG,MAAM,kBAAkB,CAAC,EAAE,EAAE,oBAAoB,EAAE,OAAO,IAAI,SAAS,CAAC,CAAA;QAC7F,MAAM,EAAE,2BAA2B,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAA;QAC7E,MAAM,EAAE,sBAAsB,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAA;QAClE,MAAM,QAAQ,GAAG,MAAM,2BAA2B,CAAC,EAAE,CAAC,CAAA;QACtD,MAAM,QAAQ,GAAG,sBAAsB,CAAC;YACtC,QAAQ,EAAE,oBAAoB;YAC9B,OAAO,EAAE,OAAO,IAAI,EAAE;YACtB,QAAQ;SACT,CAAC,CAAA;QACF,MAAM,OAAO,GAAsB;YACjC,cAAc,EAAE,cAAc,CAAC,cAAc;YAC7C,aAAa,EAAE,cAAc,CAAC,aAAa;YAC3C,GAAG,YAAY;YACf,GAAG,OAAO,CAAC,OAAO;SACnB,CAAA;QACD,OAAO,CAAC,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAChD,QAAQ,EAAE,GAAG,CAAC,EAAE;YAChB,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,UAAU,EAAE,GAAG,CAAC,UAAU;SAC3B,CAAC,CAAC,CAAA;QACH,uEAAuE;QACvE,yEAAyE;QACzE,wEAAwE;QACxE,IAAI,CAAC;YACH,MAAM,EAAE,0BAA0B,EAAE,GAAG,MAAM,MAAM,CAAC,6BAA6B,CAAC,CAAA;YAClF,MAAM,OAAO,GAAG,MAAM,0BAA0B,CAAC,EAAE,EAAE,oBAAoB,CAAC,CAAA;YAC1E,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS;gBAAE,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAA;YAC1E,IAAI,OAAO,CAAC,cAAc,KAAK,SAAS;gBAAE,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAA;YACzF,IAAI,OAAO,CAAC,qBAAqB,KAAK,SAAS,EAAE,CAAC;gBAChD,OAAO,CAAC,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAA;YAC/D,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,wDAAwD;QAC1D,CAAC;QACD,MAAM,MAAM,GAAG,mBAAmB,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAA;QACjE,MAAM,mBAAmB,GAAG,IAAI,GAAG,CACjC,oBAAoB;aACjB,MAAM,CAAC,CAAC,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAAC,gBAAgB,EAAE,KAAK,KAAK,YAAY,CAAC;aAC1E,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,CACnC,CAAA;QAED,MAAM,aAAa,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,mBAAmB,EAAE,CAAC,CAAA;QAEvE,+EAA+E;QAC/E,CAAC;YACC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,WAAW,IAAI,EAAE,CAAC;iBACnE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACT,MAAM,CAAC,GAAG,CAAC,EAAE,SAAS,IAAI,CAAC,EAAE,IAAI,CAAA;gBACjC,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;YACzF,CAAC,CAAC;iBACD,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;YACzC,MAAM,2BAA2B,CAAC,EAAE,EAAE;gBACpC,UAAU,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;gBACjE,YAAY;gBACZ,WAAW,EAAE,YAAY,CAAC,WAAW,IAAI,EAAE;gBAC3C,cAAc,EAAE,IAAI;gBACpB,OAAO,EAAE,OAAO,IAAI,SAAS;gBAC7B,cAAc,EAAE,cAAc,CAAC,wBAAwB;gBACvD,EAAE;aACH,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QACpB,CAAC;QAED,MAAM,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC;YAC1B,KAAK,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE;YACrB,IAAI,EAAE;gBACJ,MAAM,EAAE,WAAW;gBACnB,UAAU,EAAE,IAAI,IAAI,EAAE;gBACtB,cAAc,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK;gBACtC,YAAY,EAAE,QAAQ,CAAC,MAAM;gBAC7B,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK;gBAChC,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ;gBACrC,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO;gBACnC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI;gBAC7B,QAAQ,EAAE;oBACR,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,SAAS;oBACrC,aAAa,EAAE,cAAc,CAAC,OAAO;oBACrC,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM;oBACzD,SAAS,EAAE,QAAQ,CAAC,MAAM,KAAK,kBAAkB;iBAClD;aACF;SACF,CAAC,CAAA;QAEF,OAAO;YACL,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,MAAM,EAAE,WAAW;YACnB,cAAc,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK;YACtC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK;YAChC,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ;YACrC,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO;YACnC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI;YAC7B,YAAY,EAAE,QAAQ,CAAC,MAAM;YAC7B,aAAa,EAAE,cAAc,CAAC,OAAO;SACtC,CAAA;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,EAAE,CAAC,WAAW;aACjB,MAAM,CAAC;YACN,KAAK,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE;YACrB,IAAI,EAAE;gBACJ,MAAM,EAAE,QAAQ;gBAChB,UAAU,EAAE,IAAI,IAAI,EAAE;gBACtB,YAAY,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc;aAClE;SACF,CAAC;aACD,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QAClB,MAAM,GAAG,CAAA;IACX,CAAC;AACH,CAAC;AAMD,SAAS,2BAA2B,CAClC,KAIC,EACD,mBAAwC;IAExC,IAAI,CAAC,8BAA8B,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAA;IACjE,IAAI,KAAK,CAAC,QAAQ,IAAI,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAA;IAC1E,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC;QACnD,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,EAAE,EAAgB,EAAE,CAAC,OAAO,EAAE,KAAK,QAAQ,CAAC;QAC7E,CAAC,CAAC,EAAE,CAAA;IACN,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAAE,OAAO,IAAI,CAAA;IAClE,OAAO,CAAC,KAAK,CAAC,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,mBAAmB,CAAC,IAAI,GAAG,CAAC,CAAA;AAChF,CAAC;AAED,uEAAuE;AACvE,KAAK,UAAU,aAAa,CAC1B,EAAY,EACZ,UAAkB,EAClB,QAAyB,EACzB,OAAmC;IAEnC,MAAM,QAAQ,GAAG,MAAM,aAAa,CAQjC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CACtB,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACnB,IAAI;QACJ,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtD,OAAO,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE;QACtB,MAAM,EAAE;YACN,EAAE,EAAE,IAAI;YACR,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,IAAI;YACd,gBAAgB,EAAE,IAAI;YACtB,MAAM,EAAE,IAAI;YACZ,UAAU,EAAE,IAAI;SACjB;KACF,CAAC,CACH,CAAA;IACD,MAAM,KAAK,GAAG,IAAI,GAAG,CAAoC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IAC9F,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAA;IAC7D,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;IAEtB,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QACvC,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;YACzB,IAAI,KAAK,CAAC,MAAM,KAAK,UAAU;gBAAE,MAAM,GAAG,WAAW,CAAA;YACrD,yDAAyD;YACzD,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACvB,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE;gBACvB,IAAI,EAAE;oBACJ,UAAU;oBACV,MAAM;oBACN,cAAc,EAAE,GAAG;oBACnB,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,GAAG,EAAE,KAAK,CAAC,GAAG;oBACd,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,cAAc,EAAE,KAAK,CAAC,cAAc;oBACpC,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,aAAa,EAAE,KAAK,CAAC,aAAa;oBAClC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;oBACxC,UAAU,EAAE,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI;oBAC3D,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACxD;aACF,CAAC,CAAA;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACvB,IAAI,EAAE;oBACJ,UAAU;oBACV,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,GAAG,EAAE,KAAK,CAAC,GAAG;oBACd,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,cAAc,EAAE,KAAK,CAAC,cAAc;oBACpC,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,aAAa,EAAE,KAAK,CAAC,aAAa;oBAClC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;oBACxC,MAAM,EAAE,OAAO;oBACf,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACxD;aACF,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,sEAAsE;IACtE,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAC/B,CAAC,KAAK,EAAE,EAAE,CACR,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC;QACjC,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW,CAAC;QACzD,CAAC,2BAA2B,CAAC,KAAK,EAAE,OAAO,CAAC,mBAAmB,CAAC,CACnE,CAAA;IACD,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;QAC1B,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;YACvB,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE;YACnB,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE;SAC9C,CAAC,CAAA;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,101 @@
1
+ /**
2
+ * SEO Autopilot gate — a pure function deciding whether one proposal may be
3
+ * applied unattended (spec §2). Every input is assembled once per run by the
4
+ * orchestrator; the gate itself does no I/O so every reason is unit-testable.
5
+ */
6
+ import type { FeatureGovernance } from '../ai/governance.js';
7
+ import type { BrandVoiceBannedTerm, BrandVoiceStructuredProfile } from '../ai/brand-voice-structured.js';
8
+ import { type AutopilotIssueType, type GateReason, type SeoAutopilotPolicy } from './autopilot-policy.js';
9
+ import { type SeoProposal } from './proposals.js';
10
+ export type AutopilotCandidate = SeoProposal & {
11
+ featureKey: string;
12
+ issueTypeKey: AutopilotIssueType;
13
+ /**
14
+ * The sticky `dismissedFingerprint` marker `dismiss-fix` left on the issue (spec §2 check 4),
15
+ * or `null` / absent when the issue was never dismissed. It is compared to the candidate's
16
+ * `fingerprint` AFTER the `stale` check, so for a non-stale candidate `fingerprint` is the
17
+ * live value the marker was recorded against; deterministic candidates are fingerprinted on
18
+ * the live document by construction.
19
+ */
20
+ dismissedFingerprint?: string | null;
21
+ };
22
+ export interface DuplicateIndex {
23
+ /**
24
+ * normalized RENDERED meta title → entity ids currently using it.
25
+ *
26
+ * The AI title fixer emits `changes[].after` as the rendered title (the raw page title run
27
+ * through the site title template, e.g. `"Pricing | Acme"`), so the gate's lookup key is the
28
+ * rendered form. Rows fed to `buildDuplicateIndex` MUST be rendered the same way; raw stored
29
+ * titles would never collide and `duplicate_value` would be unreachable for titles.
30
+ */
31
+ titles: Map<string, Set<string>>;
32
+ /** normalized meta description → entity ids currently using it (stored and rendered forms agree). */
33
+ descriptions: Map<string, Set<string>>;
34
+ }
35
+ export interface GateContext {
36
+ policy: SeoAutopilotPolicy;
37
+ /** By feature key. A missing entry means "safe defaults" (approval required). */
38
+ governance: Record<string, FeatureGovernance>;
39
+ /**
40
+ * Candidates per feature that passed the policy check. Informational only (diagnostics /
41
+ * digest); the bulk quota rule keys off `featureApplied` alone so a missing entry cannot
42
+ * disable it.
43
+ */
44
+ featureCandidates: Record<string, number>;
45
+ /** Applied so far this run, per feature. */
46
+ featureApplied: Record<string, number>;
47
+ appliedThisRun: number;
48
+ /**
49
+ * Applies today, per policy window. MUST include applies from the current run — the
50
+ * orchestrator increments both `appliedThisRun` and `appliedToday` after each write — so
51
+ * `cap_per_day` cannot be exceeded by up to `maxPerRun` within a single run.
52
+ */
53
+ appliedToday: number;
54
+ cooldownIssueIds: Set<string>;
55
+ /** `${entityId}:${issueType}` for re-detected issues that lost their id. */
56
+ cooldownEntityKeys: Set<string>;
57
+ /** null when no active brand profile exists → brand checks skipped. */
58
+ brandProfile: BrandVoiceStructuredProfile | null;
59
+ duplicates: DuplicateIndex;
60
+ /**
61
+ * Redirect sources already present, as stored (`fromPath`). The orchestrator supplies them
62
+ * already normalized; the gate compares `entity.url` exactly (no case-folding or
63
+ * trailing-slash handling here).
64
+ */
65
+ existingRedirectSources: Set<string>;
66
+ planDenied: boolean;
67
+ }
68
+ export type GateVerdict = {
69
+ pass: true;
70
+ checks: Record<string, boolean>;
71
+ } | {
72
+ pass: false;
73
+ reason: GateReason;
74
+ detail?: string;
75
+ };
76
+ export declare function featureKeyFor(kind: SeoProposal['kind']): string;
77
+ export declare function normalizeDuplicateValue(value: unknown): string | null;
78
+ /**
79
+ * Build the duplicate index from one row per entity.
80
+ *
81
+ * `rows[].metaTitle` MUST be the RENDERED meta title — the same form the AI title fixer puts in
82
+ * `changes[].after` (raw title through the site title template). The orchestrator renders each
83
+ * document's stored title with the site template before indexing. `rows[].metaDescription` is
84
+ * used as stored (no template applies).
85
+ */
86
+ export declare function buildDuplicateIndex(rows: Array<{
87
+ entityId: string;
88
+ metaTitle: unknown;
89
+ metaDescription: unknown;
90
+ }>): DuplicateIndex;
91
+ /**
92
+ * Word-boundary, case-insensitive — the fixer's matcher, not the scorer's substring one.
93
+ *
94
+ * Boundaries are Unicode-aware lookarounds rather than `\b`: `\b` only exists between a `\w`
95
+ * and a non-`\w` character, so a term with a non-word edge (`#1`, `100%`, `24/7`) would never
96
+ * match at string start / after a space (fail-open), and ASCII `\w` treats `é` as a boundary so
97
+ * `café` would hit inside `cafés` (false block).
98
+ */
99
+ export declare function bannedTermHits(text: string, terms: BrandVoiceBannedTerm[]): string[];
100
+ export declare function evaluateAutopilotGate(c: AutopilotCandidate, ctx: GateContext): GateVerdict;
101
+ //# sourceMappingURL=autopilot-gate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autopilot-gate.d.ts","sourceRoot":"","sources":["../../src/seo/autopilot-gate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAC5D,OAAO,KAAK,EACV,oBAAoB,EACpB,2BAA2B,EAC5B,MAAM,iCAAiC,CAAA;AAExC,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,UAAU,EACf,KAAK,kBAAkB,EACxB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAA+C,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAE9F,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG;IAC7C,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,kBAAkB,CAAA;IAChC;;;;;;OAMG;IACH,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACrC,CAAA;AAED,MAAM,WAAW,cAAc;IAC7B;;;;;;;OAOG;IACH,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;IAChC,qGAAqG;IACrG,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;CACvC;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,kBAAkB,CAAA;IAC1B,iFAAiF;IACjF,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;IAC7C;;;;OAIG;IACH,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACzC,4CAA4C;IAC5C,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACtC,cAAc,EAAE,MAAM,CAAA;IACtB;;;;OAIG;IACH,YAAY,EAAE,MAAM,CAAA;IACpB,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC7B,4EAA4E;IAC5E,kBAAkB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC/B,uEAAuE;IACvE,YAAY,EAAE,2BAA2B,GAAG,IAAI,CAAA;IAChD,UAAU,EAAE,cAAc,CAAA;IAC1B;;;;OAIG;IACH,uBAAuB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACpC,UAAU,EAAE,OAAO,CAAA;CACpB;AAED,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAC/C;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,UAAU,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAExD,wBAAgB,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,MAAM,CAW/D;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAIrE;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,KAAK,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,eAAe,EAAE,OAAO,CAAA;CAAE,CAAC,GAC9E,cAAc,CAehB;AAMD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,oBAAoB,EAAE,GAAG,MAAM,EAAE,CAYpF;AA6ED,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,kBAAkB,EAAE,GAAG,EAAE,WAAW,GAAG,WAAW,CA+G1F"}