@straiffi/archon 1.11.8 → 1.11.10

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 (142) hide show
  1. package/dist/client/assets/{ActivityView-BKLYfPXE.js → ActivityView-RnE0983a.js} +1 -1
  2. package/dist/client/assets/{GitHubActionsDialog-yqqwcP8z.js → GitHubActionsDialog-PaNJhVzv.js} +1 -1
  3. package/dist/client/assets/{VerificationDialog-DhyIDs1V.js → VerificationDialog-PGrCJ1DJ.js} +1 -1
  4. package/dist/client/assets/{architectureDiagram-3BPJPVTR-5krjaOU4.js → architectureDiagram-3BPJPVTR-CKd1Dmpz.js} +1 -1
  5. package/dist/client/assets/{blockDiagram-GPEHLZMM-Duo2q2gn.js → blockDiagram-GPEHLZMM-M3OjRhA0.js} +1 -1
  6. package/dist/client/assets/{c4Diagram-AAUBKEIU-D2lxLmwB.js → c4Diagram-AAUBKEIU-VWBcGTXO.js} +1 -1
  7. package/dist/client/assets/channel-CBQk1IQf.js +1 -0
  8. package/dist/client/assets/{chunk-2J33WTMH-Dbo5lbSs.js → chunk-2J33WTMH-C4WpCUzU.js} +1 -1
  9. package/dist/client/assets/{chunk-3OPIFGDE-mjZrNxCg.js → chunk-3OPIFGDE-BQ-j87T6.js} +1 -1
  10. package/dist/client/assets/{chunk-5ZQYHXKU-C2nUnqLh.js → chunk-5ZQYHXKU-BCZvyT9u.js} +1 -1
  11. package/dist/client/assets/{chunk-727SXJPM-7eUgm0cn.js → chunk-727SXJPM-DZP_PMNz.js} +1 -1
  12. package/dist/client/assets/{chunk-AQP2D5EJ-DouWpaE0.js → chunk-AQP2D5EJ-Cejit8wh.js} +1 -1
  13. package/dist/client/assets/{chunk-CSCIHK7Q-DesC0Fd7.js → chunk-CSCIHK7Q-CvXC4rkf.js} +1 -1
  14. package/dist/client/assets/{chunk-KSCS5N6A-DAsFowjn.js → chunk-KSCS5N6A-hTgJWrr3.js} +1 -1
  15. package/dist/client/assets/{chunk-L5ZTLDWV-w7V9r0Cw.js → chunk-L5ZTLDWV-bSK1mut3.js} +1 -1
  16. package/dist/client/assets/{chunk-LZXEDZCA-BCnxdvaJ.js → chunk-LZXEDZCA-Y2hnSpRr.js} +2 -2
  17. package/dist/client/assets/{chunk-ND2GUHAM-DO8HdZCX.js → chunk-ND2GUHAM-BiHH5lS5.js} +1 -1
  18. package/dist/client/assets/{chunk-NZK2D7GU-37Rbzvm9.js → chunk-NZK2D7GU-DdxcwTTc.js} +1 -1
  19. package/dist/client/assets/{chunk-O5CBEL6O-DTjB0GGI.js → chunk-O5CBEL6O-BZIbgKJr.js} +1 -1
  20. package/dist/client/assets/{chunk-WU5MYG2G-CAonpz-x.js → chunk-WU5MYG2G-D3yvqt9P.js} +1 -1
  21. package/dist/client/assets/classDiagram-4FO5ZUOK-BjizLQoS.js +1 -0
  22. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-B6qpU-kO.js +1 -0
  23. package/dist/client/assets/{dagre-BM42HDAG-DDET9pbe.js → dagre-BM42HDAG-CZQZPoaH.js} +1 -1
  24. package/dist/client/assets/{diagram-2AECGRRQ-r_bu5Cgo.js → diagram-2AECGRRQ-DU7zsX_b.js} +1 -1
  25. package/dist/client/assets/{diagram-5GNKFQAL-QlPCzkUJ.js → diagram-5GNKFQAL-BCCoHKlp.js} +1 -1
  26. package/dist/client/assets/{diagram-KO2AKTUF-D5SzFOzP.js → diagram-KO2AKTUF-BR_GNJLN.js} +1 -1
  27. package/dist/client/assets/{diagram-LMA3HP47-BJcWw3_s.js → diagram-LMA3HP47-B6LZOUTc.js} +1 -1
  28. package/dist/client/assets/{diagram-OG6HWLK6-CpsR9p94.js → diagram-OG6HWLK6-w89pjkBe.js} +1 -1
  29. package/dist/client/assets/{erDiagram-TEJ5UH35-Dq-K6YrY.js → erDiagram-TEJ5UH35-BReR8ngL.js} +1 -1
  30. package/dist/client/assets/{flowDiagram-I6XJVG4X-39hKkH4n.js → flowDiagram-I6XJVG4X-CGwpJ9iQ.js} +1 -1
  31. package/dist/client/assets/{ganttDiagram-6RSMTGT7-DaeBYOLz.js → ganttDiagram-6RSMTGT7-BcOPz4K9.js} +1 -1
  32. package/dist/client/assets/{gitGraphDiagram-PVQCEYII-CCeo9Czy.js → gitGraphDiagram-PVQCEYII-m6-x38H5.js} +1 -1
  33. package/dist/client/assets/index-D_brbG-0.css +2 -0
  34. package/dist/client/assets/index-yUckGfMu.js +293 -0
  35. package/dist/client/assets/{infoDiagram-5YYISTIA-jgHH1Ta7.js → infoDiagram-5YYISTIA-11iWCl_6.js} +1 -1
  36. package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-gYPsFHRd.js → ishikawaDiagram-YF4QCWOH-DbeJ14eh.js} +1 -1
  37. package/dist/client/assets/{journeyDiagram-JHISSGLW-C5m8h46L.js → journeyDiagram-JHISSGLW-BYFdU9SL.js} +1 -1
  38. package/dist/client/assets/{kanban-definition-UN3LZRKU-rag4UxAB.js → kanban-definition-UN3LZRKU-Dyc52bol.js} +1 -1
  39. package/dist/client/assets/{line-CAWxQrG3.js → line-CBauYkto.js} +1 -1
  40. package/dist/client/assets/{mermaid-parser.core-C5Hj2V3U.js → mermaid-parser.core-BBbL8arn.js} +1 -1
  41. package/dist/client/assets/{mermaid.core-BxRoDLxv.js → mermaid.core-CB2mIiiP.js} +3 -3
  42. package/dist/client/assets/{mindmap-definition-RKZ34NQL-BUV37aab.js → mindmap-definition-RKZ34NQL-CvWYGfWn.js} +1 -1
  43. package/dist/client/assets/{pieDiagram-4H26LBE5-CMwVVhpZ.js → pieDiagram-4H26LBE5-BsbIF0rU.js} +1 -1
  44. package/dist/client/assets/{quadrantDiagram-W4KKPZXB-DYHRB097.js → quadrantDiagram-W4KKPZXB-Bvs09UnJ.js} +1 -1
  45. package/dist/client/assets/{requirementDiagram-4Y6WPE33-BLtNTWtR.js → requirementDiagram-4Y6WPE33-B3U5xSYZ.js} +1 -1
  46. package/dist/client/assets/{sankeyDiagram-5OEKKPKP-Bcd-UVHZ.js → sankeyDiagram-5OEKKPKP-Dds8cy2g.js} +1 -1
  47. package/dist/client/assets/{sequenceDiagram-3UESZ5HK-Die4-puP.js → sequenceDiagram-3UESZ5HK-BoMb08Ay.js} +1 -1
  48. package/dist/client/assets/{stateDiagram-AJRCARHV-TBbOyQST.js → stateDiagram-AJRCARHV-atm7kYDg.js} +1 -1
  49. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-EYJsus1Q.js +1 -0
  50. package/dist/client/assets/{timeline-definition-PNZ67QCA-CZ3E6e1X.js → timeline-definition-PNZ67QCA-C7U--kCB.js} +1 -1
  51. package/dist/client/assets/{vennDiagram-CIIHVFJN-CY_kofMf.js → vennDiagram-CIIHVFJN-BoPWwPSI.js} +1 -1
  52. package/dist/client/assets/{wardleyDiagram-YWT4CUSO-TzBIV1Er.js → wardleyDiagram-YWT4CUSO-CJ6Y7g3b.js} +1 -1
  53. package/dist/client/assets/{xychartDiagram-2RQKCTM6-BTvKU2GO.js → xychartDiagram-2RQKCTM6-rN5shXue.js} +1 -1
  54. package/dist/client/index.html +2 -2
  55. package/dist/server/db.js +2 -0
  56. package/dist/server/db.js.map +1 -1
  57. package/dist/server/index.js +212 -238
  58. package/dist/server/index.js.map +1 -1
  59. package/dist/server/lib/agent.js +23 -7
  60. package/dist/server/lib/agent.js.map +1 -1
  61. package/dist/server/lib/agentProvider.js +62 -15
  62. package/dist/server/lib/agentProvider.js.map +1 -1
  63. package/dist/server/lib/bundleCleanupManagement.js +181 -0
  64. package/dist/server/lib/bundleCleanupManagement.js.map +1 -0
  65. package/dist/server/lib/bundleCleanupRoutes.js +36 -0
  66. package/dist/server/lib/bundleCleanupRoutes.js.map +1 -0
  67. package/dist/server/lib/bundleDeletion.js +257 -0
  68. package/dist/server/lib/bundleDeletion.js.map +1 -0
  69. package/dist/server/lib/bundleDeletionRoutes.js +73 -0
  70. package/dist/server/lib/bundleDeletionRoutes.js.map +1 -0
  71. package/dist/server/lib/bundleDeletionSchema.js +134 -0
  72. package/dist/server/lib/bundleDeletionSchema.js.map +1 -0
  73. package/dist/server/lib/bundleDeletionStore.js +18 -0
  74. package/dist/server/lib/bundleDeletionStore.js.map +1 -0
  75. package/dist/server/lib/bundleWorktreeCleanup.js +160 -0
  76. package/dist/server/lib/bundleWorktreeCleanup.js.map +1 -0
  77. package/dist/server/lib/codexAgentProvider.js +186 -123
  78. package/dist/server/lib/codexAgentProvider.js.map +1 -1
  79. package/dist/server/lib/diffExplanation.js +485 -0
  80. package/dist/server/lib/diffExplanation.js.map +1 -0
  81. package/dist/server/lib/diffExplanationJobs.js +605 -0
  82. package/dist/server/lib/diffExplanationJobs.js.map +1 -0
  83. package/dist/server/lib/diffExplanationRoutes.js +236 -0
  84. package/dist/server/lib/diffExplanationRoutes.js.map +1 -0
  85. package/dist/server/lib/dockerSandboxCleanup.js +68 -0
  86. package/dist/server/lib/dockerSandboxCleanup.js.map +1 -0
  87. package/dist/server/lib/dockerSandboxEnvironmentOperations.js +4 -3
  88. package/dist/server/lib/dockerSandboxEnvironmentOperations.js.map +1 -1
  89. package/dist/server/lib/dockerSandboxExecutionEnvironment.js +35 -59
  90. package/dist/server/lib/dockerSandboxExecutionEnvironment.js.map +1 -1
  91. package/dist/server/lib/dockerSandboxReleaseProfiles.js +1 -1
  92. package/dist/server/lib/dockerSandboxReleaseProfiles.js.map +1 -1
  93. package/dist/server/lib/executionEnvironmentOperations.js +7 -2
  94. package/dist/server/lib/executionEnvironmentOperations.js.map +1 -1
  95. package/dist/server/lib/executionEnvironmentReconciliation.js +34 -169
  96. package/dist/server/lib/executionEnvironmentReconciliation.js.map +1 -1
  97. package/dist/server/lib/executionEnvironmentTargetCleanup.js +232 -0
  98. package/dist/server/lib/executionEnvironmentTargetCleanup.js.map +1 -0
  99. package/dist/server/lib/executionEnvironments.js +1 -0
  100. package/dist/server/lib/executionEnvironments.js.map +1 -1
  101. package/dist/server/lib/executionTargets.js +1 -1
  102. package/dist/server/lib/executionTargets.js.map +1 -1
  103. package/dist/server/lib/git.js +205 -35
  104. package/dist/server/lib/git.js.map +1 -1
  105. package/dist/server/lib/i18n/resources.js +10 -0
  106. package/dist/server/lib/i18n/resources.js.map +1 -1
  107. package/dist/server/lib/lightweightPrompt.js +284 -52
  108. package/dist/server/lib/lightweightPrompt.js.map +1 -1
  109. package/dist/server/lib/oneShotCancellation.js +54 -0
  110. package/dist/server/lib/oneShotCancellation.js.map +1 -0
  111. package/dist/server/lib/opencodeExecutionReliability.js +46 -2
  112. package/dist/server/lib/opencodeExecutionReliability.js.map +1 -1
  113. package/dist/server/lib/projectMemoryScan.js +3 -46
  114. package/dist/server/lib/projectMemoryScan.js.map +1 -1
  115. package/dist/server/lib/promptDiffSafety.js +53 -0
  116. package/dist/server/lib/promptDiffSafety.js.map +1 -0
  117. package/dist/server/lib/repositorySecrets.js +69 -0
  118. package/dist/server/lib/repositorySecrets.js.map +1 -0
  119. package/dist/server/lib/tickets.js +3 -2
  120. package/dist/server/lib/tickets.js.map +1 -1
  121. package/dist/server/lib/types.js.map +1 -1
  122. package/dist/server/lib/unifiedDiff.js +459 -0
  123. package/dist/server/lib/unifiedDiff.js.map +1 -0
  124. package/dist/server/lib/workspaceDiff.js +156 -0
  125. package/dist/server/lib/workspaceDiff.js.map +1 -0
  126. package/dist/server/lib/workspaceDiffRoutes.js +63 -0
  127. package/dist/server/lib/workspaceDiffRoutes.js.map +1 -0
  128. package/dist/server/lib/workspaceTargets.js +88 -0
  129. package/dist/server/lib/workspaceTargets.js.map +1 -0
  130. package/dist/server/workers/chat.js +71 -1
  131. package/dist/server/workers/chat.js.map +1 -1
  132. package/dist/server/workers/plan.js +24 -2
  133. package/dist/server/workers/plan.js.map +1 -1
  134. package/dist/server/workers/review.js +19 -13
  135. package/dist/server/workers/review.js.map +1 -1
  136. package/package.json +1 -1
  137. package/dist/client/assets/channel-Cf2U7nU4.js +0 -1
  138. package/dist/client/assets/classDiagram-4FO5ZUOK-CK8VsU-L.js +0 -1
  139. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-RvySOEwt.js +0 -1
  140. package/dist/client/assets/index-B9-M1vEw.js +0 -287
  141. package/dist/client/assets/index-CbYT3N3U.css +0 -2
  142. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-BRotXz7h.js +0 -1
@@ -1,41 +1,19 @@
1
1
  import db from '../db.js';
2
- import { randomUUID } from 'crypto';
3
- import { createDockerSandboxAdapter, createDockerSandboxName, createSbxCommandRunner, DOCKER_SANDBOX_PROVIDER, DockerSandboxCollisionFailure, DockerSandboxStopVerificationFailure, SbxCommandFailure, } from './dockerSandboxExecutionEnvironment.js';
2
+ import { isBundleCleanupAbandoned, isBundleDeletionTargetPending } from './bundleDeletionStore.js';
3
+ import { DOCKER_SANDBOX_PROVIDER, DockerSandboxCollisionFailure, DockerSandboxStopVerificationFailure, SbxCommandFailure, } from './dockerSandboxExecutionEnvironment.js';
4
4
  import { resolveDockerSandboxReleaseForPersistedEnvironment } from './dockerSandboxReleaseProfiles.js';
5
5
  import { getExecutionProfileRevision } from './executionProfileStore.js';
6
- import { appendExecutionEnvironmentEvent, claimExecutionEnvironmentsForCleanup, completeExecutionEnvironmentCleanup, failExecutionEnvironmentCleanup, getExecutionEnvironment, releaseExecutionEnvironmentLease, transitionExecutionEnvironment, } from './executionEnvironments.js';
6
+ import { appendExecutionEnvironmentEvent, getExecutionEnvironment, releaseExecutionEnvironmentLease, transitionExecutionEnvironment, } from './executionEnvironments.js';
7
7
  import { getExecutionRun, transitionExecutionRun } from './executionRuns.js';
8
8
  import { getServiceRunDetails, recordServiceRunReleaseFailure } from './serviceRuns.js';
9
9
  import { defaultDockerSandboxEnvironmentDependencies } from './dockerSandboxEnvironmentOperations.js';
10
10
  import { retryExecutionEnvironmentCleanup, stopExecutionEnvironment, } from './executionEnvironmentOperations.js';
11
+ import { cleanupExecutionEnvironmentsForTarget as cleanupTarget, cleanupProjectExecutionEnvironments as cleanupProject, createDefaultDockerSandboxAdapter as createCleanupAdapter, ExecutionEnvironmentCleanupError as CleanupError, inspectionMatches, resolveExpectedDockerSandbox as resolveCleanupSandbox, } from './executionEnvironmentTargetCleanup.js';
11
12
  const VALIDATION_CLEANUP_TIMEOUT_MS = 30_000;
12
13
  const VALIDATION_CLEANUP_REMEDIATION = 'Verify the persisted sandbox identity and stop it manually before retrying validation.';
13
- export class ExecutionEnvironmentCleanupError extends Error {
14
- constructor(message, options = {}) {
15
- super(message, options);
16
- this.name = 'ExecutionEnvironmentCleanupError';
17
- }
18
- }
19
- export const createDefaultDockerSandboxAdapter = () => (createDockerSandboxAdapter(createSbxCommandRunner()));
20
- export const resolveExpectedDockerSandbox = (environment, requestedAgent) => {
21
- if (environment.provider_kind !== DOCKER_SANDBOX_PROVIDER || !environment.agent_identity || !environment.template_identity) {
22
- throw new Error(`Execution environment ${environment.id} has incomplete persisted sandbox ownership evidence`);
23
- }
24
- if (requestedAgent && environment.agent_identity !== requestedAgent) {
25
- throw new Error(`Execution environment ${environment.id} is not owned by the requested agent template`);
26
- }
27
- return {
28
- name: environment.external_id ?? createDockerSandboxName({
29
- projectId: environment.project_id,
30
- targetKey: environment.target_key,
31
- environmentRevision: environment.environment_revision,
32
- validationFingerprint: environment.environment_validation_fingerprint,
33
- }),
34
- agent: environment.agent_identity,
35
- workspacePath: environment.target_workspace_path,
36
- template: environment.template_identity,
37
- };
38
- };
14
+ export const ExecutionEnvironmentCleanupError = CleanupError;
15
+ export const createDefaultDockerSandboxAdapter = () => (createCleanupAdapter());
16
+ export const resolveExpectedDockerSandbox = (environment, requestedAgent) => resolveCleanupSandbox(environment, requestedAgent);
39
17
  const validationCleanupFailure = (error, timedOut) => {
40
18
  if (timedOut || (error instanceof SbxCommandFailure && error.kind === 'timeout')) {
41
19
  return { code: 'validation_cleanup_stop_timeout', message: 'Docker Sandbox cleanup timed out before stopped state was verified.' };
@@ -52,6 +30,9 @@ const validationCleanupFailure = (error, timedOut) => {
52
30
  };
53
31
  };
54
32
  export const stopAndRecordEnvironmentValidationCleanup = async (input) => {
33
+ if (isBundleCleanupAbandoned(input.environment.project_id, input.environment.target_key)) {
34
+ return;
35
+ }
55
36
  const expected = resolveExpectedDockerSandbox(input.environment, input.requestedAgent);
56
37
  const controller = new AbortController();
57
38
  let timedOut = false;
@@ -206,6 +187,9 @@ export const resetExecutionEnvironment = async (input) => {
206
187
  }
207
188
  };
208
189
  export const stopAndRecordEnvironmentExecutionCleanup = async (input) => {
190
+ if (isBundleCleanupAbandoned(input.environment.project_id, input.environment.target_key)) {
191
+ return;
192
+ }
209
193
  const expected = resolveExpectedDockerSandbox(input.environment);
210
194
  try {
211
195
  const before = await input.adapter.inspect(expected.name);
@@ -303,10 +287,6 @@ export const stopAndRecordEnvironmentExecutionCleanup = async (input) => {
303
287
  throw new ExecutionEnvironmentCleanupError(`Unable to prove termination of execution run ${input.executionRunId} in sandbox ${expected.name}`, { cause: error });
304
288
  }
305
289
  };
306
- const inspectionMatches = (expected, observed) => (expected.name === observed.name
307
- && expected.agent === observed.agent
308
- && expected.workspacePath === observed.workspacePath
309
- && expected.template === observed.template);
310
290
  const parseProductionAuthority = (binding) => {
311
291
  if (!binding.authority_json) {
312
292
  return null;
@@ -400,6 +380,9 @@ export const reconcileProductionExecutionEnvironmentBindings = async (adapter =
400
380
  for (const binding of bindings.filter(binding => (scope.projectId === undefined || binding.project_id === scope.projectId)
401
381
  && (scope.executionRunId === undefined || binding.execution_run_id === scope.executionRunId))) {
402
382
  const environment = getExecutionEnvironment(binding.project_id, binding.environment_id);
383
+ if (environment && isBundleCleanupAbandoned(environment.project_id, environment.target_key)) {
384
+ continue;
385
+ }
403
386
  const authority = parseProductionAuthority(binding);
404
387
  const parsedPlacement = parseProductionPlacement(binding);
405
388
  try {
@@ -409,12 +392,8 @@ export const reconcileProductionExecutionEnvironmentBindings = async (adapter =
409
392
  if (!authority) {
410
393
  throw new Error('The immutable execution authority is malformed or does not match its lease');
411
394
  }
412
- const profileRevision = environment.execution_profile_revision_id
413
- ? getExecutionProfileRevision(environment.project_id, environment.execution_profile_revision_id)
414
- : null;
415
- const releaseProfile = resolveDockerSandboxReleaseForPersistedEnvironment(environment.provider_version, environment.template_identity, authority.agent, profileRevision?.profile.template_overrides?.[authority.agent]);
416
- if (!releaseProfile) {
417
- throw new Error('The persisted Docker Sandbox release is unsupported or security-blocked');
395
+ if (!environment.template_identity || environment.agent_identity !== authority.agent) {
396
+ throw new Error('The persisted Docker Sandbox ownership identity is incomplete or does not match its authority');
418
397
  }
419
398
  if (binding.placement_json !== null && !parsedPlacement) {
420
399
  throw new Error('The immutable execution placement is malformed or does not match its lease');
@@ -551,11 +530,14 @@ export const reconcileExecutionEnvironmentLifecycleOperations = async (adapter =
551
530
  const now = new Date().toISOString();
552
531
  const staleClaimBefore = new Date(Date.now() - 5 * 60_000).toISOString();
553
532
  const staleClaims = db.prepare(`
554
- SELECT id, project_id, lifecycle_state, operation_claim_id, operation_kind
533
+ SELECT id, project_id, target_key, lifecycle_state, operation_claim_id, operation_kind
555
534
  FROM execution_environments
556
535
  WHERE operation_claim_id IS NOT NULL AND operation_claimed_at < ?
557
536
  `).all(staleClaimBefore);
558
537
  for (const claim of staleClaims) {
538
+ if (isBundleDeletionTargetPending(claim.project_id, claim.target_key) || isBundleCleanupAbandoned(claim.project_id, claim.target_key)) {
539
+ continue;
540
+ }
559
541
  const result = db.prepare(`
560
542
  UPDATE execution_environments
561
543
  SET operation_claim_id = NULL, operation_kind = NULL, operation_claimed_at = NULL, updated_at = ?
@@ -600,6 +582,9 @@ export const reconcileExecutionEnvironmentLifecycleOperations = async (adapter =
600
582
  if (!environment) {
601
583
  continue;
602
584
  }
585
+ if (isBundleDeletionTargetPending(environment.project_id, environment.target_key) || isBundleCleanupAbandoned(environment.project_id, environment.target_key)) {
586
+ continue;
587
+ }
603
588
  try {
604
589
  if (environment.idle_stop_at !== null && ['ready', 'running'].includes(environment.lifecycle_state)) {
605
590
  await stopExecutionEnvironment({
@@ -648,6 +633,10 @@ export const reconcileExecutionEnvironments = async (adapter = createDefaultDock
648
633
  summary.deferred += 1;
649
634
  continue;
650
635
  }
636
+ if (isBundleDeletionTargetPending(environment.project_id, environment.target_key) || isBundleCleanupAbandoned(environment.project_id, environment.target_key)) {
637
+ summary.deferred += 1;
638
+ continue;
639
+ }
651
640
  try {
652
641
  const profileRevision = environment.execution_profile_revision_id
653
642
  ? getExecutionProfileRevision(environment.project_id, environment.execution_profile_revision_id)
@@ -756,6 +745,9 @@ export const reconcileOrphanedExecutionEnvironments = async (adapter = createDef
756
745
  const scopes = listOrphanedExecutionEnvironmentScopes();
757
746
  const summary = { scanned: scopes.length, cleaned: 0, failed: 0 };
758
747
  for (const scope of scopes) {
748
+ if (isBundleDeletionTargetPending(scope.projectId, scope.targetKey) || isBundleCleanupAbandoned(scope.projectId, scope.targetKey)) {
749
+ continue;
750
+ }
759
751
  try {
760
752
  const result = await cleanupExecutionEnvironmentsForTarget({ ...scope, adapter });
761
753
  summary.cleaned += result.cleaned;
@@ -766,133 +758,6 @@ export const reconcileOrphanedExecutionEnvironments = async (adapter = createDef
766
758
  }
767
759
  return summary;
768
760
  };
769
- const getCleanupScopeQuery = (scope, alias = '') => {
770
- const column = (name) => alias ? `${alias}.${name}` : name;
771
- const conditions = [`${column('project_id')} = ?`];
772
- const params = [scope.projectId];
773
- if (scope.targetKind !== undefined) {
774
- conditions.push(`${column('target_kind')} = ?`);
775
- params.push(scope.targetKind);
776
- }
777
- if (scope.targetKey !== undefined) {
778
- conditions.push(`${column('target_key')} = ?`);
779
- params.push(scope.targetKey);
780
- }
781
- return { where: conditions.join(' AND '), params };
782
- };
783
- const assertNoActiveEnvironmentBindings = (scope) => {
784
- const query = getCleanupScopeQuery(scope, 'environment');
785
- const active = db.prepare(`
786
- SELECT binding.environment_id, binding.execution_run_id
787
- FROM execution_environment_run_bindings binding
788
- JOIN execution_environments environment
789
- ON environment.id = binding.environment_id AND environment.project_id = binding.project_id
790
- WHERE ${query.where}
791
- AND binding.released_at IS NULL
792
- LIMIT 1
793
- `).get(...query.params);
794
- if (active) {
795
- throw new ExecutionEnvironmentCleanupError(`Execution environment ${active.environment_id} is still used by active run ${active.execution_run_id}`);
796
- }
797
- };
798
- const prepareEnvironmentsForCleanup = (scope, eventType, message) => {
799
- const query = getCleanupScopeQuery(scope);
800
- const rows = db.prepare(`
801
- SELECT id FROM execution_environments
802
- WHERE ${query.where} AND lifecycle_state NOT IN ('retiring', 'cleanup_pending', 'retired')
803
- ORDER BY created_at ASC, id ASC
804
- `).all(...query.params);
805
- for (const row of rows) {
806
- transitionExecutionEnvironment({
807
- projectId: scope.projectId,
808
- environmentId: row.id,
809
- state: 'retiring',
810
- eventType,
811
- message,
812
- });
813
- }
814
- };
815
- const cleanupExecutionEnvironments = async (scope, claimId, adapter = createDefaultDockerSandboxAdapter(), options) => {
816
- assertNoActiveEnvironmentBindings(scope);
817
- prepareEnvironmentsForCleanup(scope, options.startedEventType, options.startedMessage);
818
- const staleBefore = new Date().toISOString();
819
- let cleaned = 0;
820
- while (true) {
821
- const claimed = claimExecutionEnvironmentsForCleanup({
822
- projectId: scope.projectId,
823
- targetKind: scope.targetKind,
824
- targetKey: scope.targetKey,
825
- claimId,
826
- limit: 200,
827
- staleBefore,
828
- ignoreRetryAt: true,
829
- });
830
- if (claimed.length === 0) {
831
- break;
832
- }
833
- const failures = [];
834
- for (const environment of claimed) {
835
- try {
836
- const expected = resolveExpectedDockerSandbox(environment);
837
- const observed = await adapter.inspect(expected.name);
838
- if (observed && !inspectionMatches(expected, observed)) {
839
- throw new DockerSandboxCollisionFailure(expected.name, `Sandbox ${expected.name} does not match Archon's persisted external identity`);
840
- }
841
- if (observed?.state === 'running') {
842
- await adapter.stop(expected);
843
- }
844
- if (observed) {
845
- await adapter.remove(expected);
846
- }
847
- const remaining = await adapter.inspect(expected.name);
848
- if (remaining && !inspectionMatches(expected, remaining)) {
849
- throw new DockerSandboxCollisionFailure(expected.name, `Sandbox ${expected.name} was replaced before absence could be verified`);
850
- }
851
- if (remaining) {
852
- throw new Error(`Sandbox ${expected.name} still exists after removal`);
853
- }
854
- completeExecutionEnvironmentCleanup({ projectId: scope.projectId, environmentId: environment.id, claimId });
855
- }
856
- catch (error) {
857
- const failure = error instanceof Error ? error : new Error(String(error));
858
- failExecutionEnvironmentCleanup({
859
- projectId: scope.projectId,
860
- environmentId: environment.id,
861
- claimId,
862
- failure: {
863
- code: error instanceof DockerSandboxCollisionFailure ? 'identity_mismatch' : 'cleanup_failed',
864
- message: failure.message,
865
- },
866
- });
867
- failures.push(failure);
868
- }
869
- }
870
- if (failures.length > 0) {
871
- throw new ExecutionEnvironmentCleanupError(`Failed to clean ${failures.length} execution environment(s): ${failures[0]?.message ?? 'Unknown cleanup failure'}`, { cause: new AggregateError(failures) });
872
- }
873
- cleaned += claimed.length;
874
- }
875
- const query = getCleanupScopeQuery(scope);
876
- const remaining = db.prepare(`
877
- SELECT id FROM execution_environments
878
- WHERE ${query.where} AND lifecycle_state <> 'retired'
879
- LIMIT 1
880
- `).get(...query.params);
881
- if (remaining) {
882
- throw new ExecutionEnvironmentCleanupError(`Execution environment ${remaining.id} could not be claimed for verified cleanup.`);
883
- }
884
- return { cleaned };
885
- };
886
- export const cleanupExecutionEnvironmentsForTarget = async (input) => cleanupExecutionEnvironments({
887
- projectId: input.projectId,
888
- targetKind: input.targetKind,
889
- targetKey: input.targetKey,
890
- }, randomUUID(), input.adapter, {
891
- startedEventType: 'environment_target_deletion_started',
892
- startedMessage: 'Environment cleanup started because its execution target is being deleted.',
893
- });
894
- export const cleanupProjectExecutionEnvironments = async (projectId, claimId, adapter = createDefaultDockerSandboxAdapter()) => cleanupExecutionEnvironments({ projectId }, claimId, adapter, {
895
- startedEventType: 'environment_project_deletion_started',
896
- startedMessage: 'Environment cleanup started for claimed project deletion.',
897
- });
761
+ export const cleanupExecutionEnvironmentsForTarget = (...args) => cleanupTarget(...args);
762
+ export const cleanupProjectExecutionEnvironments = (...args) => cleanupProject(...args);
898
763
  //# sourceMappingURL=executionEnvironmentReconciliation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"executionEnvironmentReconciliation.js","sourceRoot":"","sources":["../../../server/lib/executionEnvironmentReconciliation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAA;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,EACvB,sBAAsB,EACtB,uBAAuB,EACvB,6BAA6B,EAC7B,oCAAoC,EACpC,iBAAiB,GAIlB,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EAAE,kDAAkD,EAAE,MAAM,mCAAmC,CAAA;AACtG,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAA;AACxE,OAAO,EACL,+BAA+B,EAC/B,oCAAoC,EACpC,mCAAmC,EACnC,+BAA+B,EAC/B,uBAAuB,EACvB,gCAAgC,EAChC,8BAA8B,GAC/B,MAAM,4BAA4B,CAAA;AAKnC,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAC5E,OAAO,EAAE,oBAAoB,EAAE,8BAA8B,EAAE,MAAM,kBAAkB,CAAA;AACvF,OAAO,EAAE,2CAA2C,EAAE,MAAM,yCAAyC,CAAA;AACrG,OAAO,EACL,gCAAgC,EAChC,wBAAwB,GACzB,MAAM,qCAAqC,CAAA;AAE5C,MAAM,6BAA6B,GAAG,MAAM,CAAA;AAC5C,MAAM,8BAA8B,GAAG,wFAAwF,CAAA;AAQ/H,MAAM,OAAO,gCAAiC,SAAQ,KAAK;IACzD,YAAY,OAAe,EAAE,UAAwB,EAAE;QACrD,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACvB,IAAI,CAAC,IAAI,GAAG,kCAAkC,CAAA;IAChD,CAAC;CACF;AAED,MAAM,CAAC,MAAM,iCAAiC,GAAG,GAAyB,EAAE,CAAC,CAC3E,0BAA0B,CAAC,sBAAsB,EAAE,CAAC,CACrD,CAAA;AAED,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAC1C,WAAiC,EACjC,cAA0C,EACJ,EAAE;IACxC,IAAI,WAAW,CAAC,aAAa,KAAK,uBAAuB,IAAI,CAAC,WAAW,CAAC,cAAc,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC;QAC3H,MAAM,IAAI,KAAK,CAAC,yBAAyB,WAAW,CAAC,EAAE,sDAAsD,CAAC,CAAA;IAChH,CAAC;IACD,IAAI,cAAc,IAAI,WAAW,CAAC,cAAc,KAAK,cAAc,EAAE,CAAC;QACpE,MAAM,IAAI,KAAK,CAAC,yBAAyB,WAAW,CAAC,EAAE,+CAA+C,CAAC,CAAA;IACzG,CAAC;IACD,OAAO;QACL,IAAI,EAAE,WAAW,CAAC,WAAW,IAAI,uBAAuB,CAAC;YACvD,SAAS,EAAE,WAAW,CAAC,UAAU;YACjC,SAAS,EAAE,WAAW,CAAC,UAAU;YACjC,mBAAmB,EAAE,WAAW,CAAC,oBAAoB;YACrD,qBAAqB,EAAE,WAAW,CAAC,kCAAkC;SACtE,CAAC;QACF,KAAK,EAAE,WAAW,CAAC,cAAc;QACjC,aAAa,EAAE,WAAW,CAAC,qBAAqB;QAChD,QAAQ,EAAE,WAAW,CAAC,iBAAiB;KACxC,CAAA;AACH,CAAC,CAAA;AAED,MAAM,wBAAwB,GAAG,CAAC,KAAc,EAAE,QAAiB,EAAE,EAAE;IACrE,IAAI,QAAQ,IAAI,CAAC,KAAK,YAAY,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,EAAE,CAAC;QACjF,OAAO,EAAE,IAAI,EAAE,iCAAiC,EAAE,OAAO,EAAE,qEAAqE,EAAE,CAAA;IACpI,CAAC;IACD,IAAI,KAAK,YAAY,6BAA6B,EAAE,CAAC;QACnD,OAAO,EAAE,IAAI,EAAE,sCAAsC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAA;IACjF,CAAC;IACD,IAAI,KAAK,YAAY,oCAAoC,EAAE,CAAC;QAC1D,OAAO,EAAE,IAAI,EAAE,uCAAuC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAA;IAClF,CAAC;IACD,OAAO;QACL,IAAI,EAAE,qCAAqC;QAC3C,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,wDAAwD;KAC3G,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,yCAAyC,GAAG,KAAK,EAAE,KAK9D,EAAE,EAAE;IACJ,MAAM,QAAQ,GAAG,4BAA4B,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,cAAc,CAAC,CAAA;IACtF,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAA;IACxC,IAAI,QAAQ,GAAG,KAAK,CAAA;IACpB,MAAM,cAAc,GAAG,IAAI,OAAO,CAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE;QAC7D,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YAC9B,QAAQ,GAAG,IAAI,CAAA;YACf,UAAU,CAAC,KAAK,EAAE,CAAA;YAClB,MAAM,CAAC,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC,CAAA;QACxD,CAAC,EAAE,6BAA6B,CAAC,CAAA;QACjC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAA;QACjB,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;IAC1F,CAAC,CAAC,CAAA;IACF,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,IAAI,CAAC;YACjB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,6BAA6B,EAAE,CAAC;YACrG,cAAc;SACf,CAAC,CAAA;QACF,MAAM,OAAO,GAAG,uBAAuB,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU,EAAE,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;QAC3F,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,eAAe,KAAK,SAAS,IAAI,OAAO,CAAC,eAAe,KAAK,QAAQ,EAAE,CAAC;YAC9F,OAAM;QACR,CAAC;QACD,IAAI,OAAO,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;YAC1C,+BAA+B,CAAC;gBAC9B,SAAS,EAAE,OAAO,CAAC,UAAU;gBAC7B,aAAa,EAAE,OAAO,CAAC,EAAE;gBACzB,SAAS,EAAE,0CAA0C;gBACrD,SAAS,EAAE,SAAS;gBACpB,OAAO,EAAE,SAAS;gBAClB,OAAO,EAAE,6DAA6D;gBACtE,QAAQ,EAAE,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,WAAW,EAAE,QAAQ,CAAC,IAAI,EAAE;aAC/E,CAAC,CAAA;YACF,OAAM;QACR,CAAC;QACD,8BAA8B,CAAC;YAC7B,SAAS,EAAE,OAAO,CAAC,UAAU;YAC7B,aAAa,EAAE,OAAO,CAAC,EAAE;YACzB,KAAK,EAAE,SAAS;YAChB,SAAS,EAAE,0CAA0C;YACrD,OAAO,EAAE,6DAA6D;YACtE,QAAQ,EAAE,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,WAAW,EAAE,QAAQ,CAAC,IAAI,EAAE;SAC/E,CAAC,CAAA;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,wBAAwB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;QACzD,MAAM,OAAO,GAAG,uBAAuB,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU,EAAE,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;QAC3F,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,eAAe,KAAK,SAAS,IAAI,OAAO,CAAC,eAAe,KAAK,QAAQ,EAAE,CAAC;YAC9F,OAAM;QACR,CAAC;QACD,MAAM,QAAQ,GAAG;YACf,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,WAAW,EAAE,QAAQ,CAAC,IAAI;YAC1B,WAAW,EAAE,8BAA8B;SAC5C,CAAA;QACD,IAAI,OAAO,CAAC,eAAe,KAAK,aAAa,EAAE,CAAC;YAC9C,+BAA+B,CAAC;gBAC9B,SAAS,EAAE,OAAO,CAAC,UAAU;gBAC7B,aAAa,EAAE,OAAO,CAAC,EAAE;gBACzB,SAAS,EAAE,uCAAuC;gBAClD,SAAS,EAAE,aAAa;gBACxB,OAAO,EAAE,aAAa;gBACtB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,QAAQ,EAAE,EAAE,GAAG,QAAQ,EAAE,WAAW,EAAE,OAAO,CAAC,IAAI,EAAE;aACrD,CAAC,CAAA;YACF,OAAM;QACR,CAAC;QACD,8BAA8B,CAAC;YAC7B,SAAS,EAAE,OAAO,CAAC,UAAU;YAC7B,aAAa,EAAE,OAAO,CAAC,EAAE;YACzB,KAAK,EAAE,aAAa;YACpB,SAAS,EAAE,uCAAuC;YAClD,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,8BAA8B,EAAE,EAAE;YACnH,QAAQ;SACT,CAAC,CAAA;IACJ,CAAC;YAAS,CAAC;QACT,UAAU,CAAC,KAAK,EAAE,CAAA;IACpB,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,yBAAyB,GAAG,KAAK,EAAE,KAI9C,EAAE,EAAE;IACJ,MAAM,WAAW,GAAG,uBAAuB,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,CAAA;IACjF,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,gCAAgC,CAAC,yBAAyB,KAAK,CAAC,aAAa,iBAAiB,CAAC,CAAA;IAC3G,CAAC;IACD,MAAM,aAAa,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;GAKhC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,aAAa,CAA6C,CAAA;IACxF,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,IAAI,gCAAgC,CACxC,yBAAyB,KAAK,CAAC,aAAa,gCAAgC,aAAa,CAAC,gBAAgB,GAAG,CAC9G,CAAA;IACH,CAAC;IACD,IAAI,WAAW,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;QAC9C,OAAO,WAAW,CAAA;IACpB,CAAC;IAED,8BAA8B,CAAC;QAC7B,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,KAAK,EAAE,UAAU;QACjB,SAAS,EAAE,2BAA2B;QACtC,OAAO,EAAE,2CAA2C;KACrD,CAAC,CAAA;IACF,MAAM,QAAQ,GAAG,4BAA4B,CAAC,WAAW,CAAC,CAAA;IAC1D,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAC3D,IAAI,QAAQ,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC;YACvD,MAAM,IAAI,6BAA6B,CACrC,QAAQ,CAAC,IAAI,EACb,WAAW,QAAQ,CAAC,IAAI,sDAAsD,CAC/E,CAAA;QACH,CAAC;QACD,IAAI,QAAQ,EAAE,KAAK,KAAK,SAAS,EAAE,CAAC;YAClC,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACpC,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAC5D,IAAI,SAAS,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC;YACzD,MAAM,IAAI,6BAA6B,CACrC,QAAQ,CAAC,IAAI,EACb,WAAW,QAAQ,CAAC,IAAI,4BAA4B,CACrD,CAAA;QACH,CAAC;QACD,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QACtC,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAC5D,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,IAAI,gCAAgC,CAAC,WAAW,QAAQ,CAAC,IAAI,4BAA4B,CAAC,CAAA;QAClG,CAAC;QACD,8BAA8B,CAAC;YAC7B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,KAAK,EAAE,iBAAiB;YACxB,SAAS,EAAE,mCAAmC;SAC/C,CAAC,CAAA;QACF,OAAO,8BAA8B,CAAC;YACpC,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,KAAK,EAAE,SAAS;YAChB,SAAS,EAAE,6BAA6B;YACxC,OAAO,EAAE,iDAAiD;SAC3D,CAAC,CAAA;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,uBAAuB,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,CAAA;QAC7E,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,KAAK,UAAU,IAAI,OAAO,CAAC,eAAe,KAAK,iBAAiB,CAAC,EAAE,CAAC;YACzG,8BAA8B,CAAC;gBAC7B,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,aAAa,EAAE,KAAK,CAAC,aAAa;gBAClC,KAAK,EAAE,aAAa;gBACpB,SAAS,EAAE,0BAA0B;gBACrC,OAAO,EAAE;oBACP,IAAI,EAAE,KAAK,YAAY,6BAA6B,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,cAAc;oBAC3F,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,8BAA8B;iBACjF;aACF,CAAC,CAAA;QACJ,CAAC;QACD,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,wCAAwC,GAAG,KAAK,EAAE,KAI7D,EAAE,EAAE;IACJ,MAAM,QAAQ,GAAG,4BAA4B,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;IAChE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QACzD,IAAI,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;YACnD,MAAM,IAAI,6BAA6B,CACrC,QAAQ,CAAC,IAAI,EACb,WAAW,QAAQ,CAAC,IAAI,sDAAsD,CAC/E,CAAA;QACH,CAAC;QACD,IAAI,MAAM,EAAE,KAAK,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,6BAA6B,EAAE,CAAC,CAAA;QAClF,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QACxD,IAAI,KAAK,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,6BAA6B,CACrC,QAAQ,CAAC,IAAI,EACb,WAAW,QAAQ,CAAC,IAAI,wCAAwC,CACjE,CAAA;QACH,CAAC;QACD,IAAI,KAAK,EAAE,KAAK,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,IAAI,oCAAoC,CAAC,WAAW,QAAQ,CAAC,IAAI,mBAAmB,CAAC,CAAA;QAC7F,CAAC;QAED,MAAM,OAAO,GAAG,uBAAuB,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU,EAAE,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;QAC3F,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;YACtD,OAAM;QACR,CAAC;QACD,MAAM,QAAQ,GAAG,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,WAAW,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAA;QACrF,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,IAAI,OAAO,CAAC,eAAe,KAAK,aAAa,IAAI,OAAO,CAAC,eAAe,KAAK,QAAQ,EAAE,CAAC;gBACtF,+BAA+B,CAAC;oBAC9B,SAAS,EAAE,OAAO,CAAC,UAAU;oBAC7B,aAAa,EAAE,OAAO,CAAC,EAAE;oBACzB,SAAS,EAAE,gDAAgD;oBAC3D,SAAS,EAAE,OAAO,CAAC,eAAe;oBAClC,OAAO,EAAE,OAAO,CAAC,eAAe;oBAChC,OAAO,EAAE,mEAAmE;oBAC5E,QAAQ;iBACT,CAAC,CAAA;YACJ,CAAC;iBAAM,CAAC;gBACN,8BAA8B,CAAC;oBAC7B,SAAS,EAAE,OAAO,CAAC,UAAU;oBAC7B,aAAa,EAAE,OAAO,CAAC,EAAE;oBACzB,KAAK,EAAE,aAAa;oBACpB,SAAS,EAAE,gDAAgD;oBAC3D,OAAO,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,mEAAmE,EAAE;oBAClH,QAAQ;iBACT,CAAC,CAAA;YACJ,CAAC;YACD,OAAM;QACR,CAAC;QACD,IAAI,OAAO,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;YAC1C,+BAA+B,CAAC;gBAC9B,SAAS,EAAE,OAAO,CAAC,UAAU;gBAC7B,aAAa,EAAE,OAAO,CAAC,EAAE;gBACzB,SAAS,EAAE,yCAAyC;gBACpD,SAAS,EAAE,SAAS;gBACpB,OAAO,EAAE,SAAS;gBAClB,OAAO,EAAE,yEAAyE;gBAClF,QAAQ;aACT,CAAC,CAAA;QACJ,CAAC;aAAM,IAAI,OAAO,CAAC,eAAe,KAAK,QAAQ,IAAI,OAAO,CAAC,eAAe,KAAK,aAAa,EAAE,CAAC;YAC7F,8BAA8B,CAAC;gBAC7B,SAAS,EAAE,OAAO,CAAC,UAAU;gBAC7B,aAAa,EAAE,OAAO,CAAC,EAAE;gBACzB,KAAK,EAAE,SAAS;gBAChB,SAAS,EAAE,yCAAyC;gBACpD,OAAO,EAAE,yEAAyE;gBAClF,QAAQ;aACT,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,uBAAuB,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU,EAAE,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;QAC3F,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,kEAAkE,CAAA;QAC3H,IAAI,OAAO,IAAI,OAAO,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;YACrD,MAAM,QAAQ,GAAG,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,WAAW,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAA;YACrF,IAAI,OAAO,CAAC,eAAe,KAAK,QAAQ,IAAI,OAAO,CAAC,eAAe,KAAK,aAAa,EAAE,CAAC;gBACtF,+BAA+B,CAAC;oBAC9B,SAAS,EAAE,OAAO,CAAC,UAAU;oBAC7B,aAAa,EAAE,OAAO,CAAC,EAAE;oBACzB,SAAS,EAAE,sCAAsC;oBACjD,SAAS,EAAE,OAAO,CAAC,eAAe;oBAClC,OAAO,EAAE,OAAO,CAAC,eAAe;oBAChC,OAAO;oBACP,QAAQ;iBACT,CAAC,CAAA;YACJ,CAAC;iBAAM,CAAC;gBACN,8BAA8B,CAAC;oBAC7B,SAAS,EAAE,OAAO,CAAC,UAAU;oBAC7B,aAAa,EAAE,OAAO,CAAC,EAAE;oBACzB,KAAK,EAAE,aAAa;oBACpB,SAAS,EAAE,sCAAsC;oBACjD,OAAO,EAAE,EAAE,IAAI,EAAE,kCAAkC,EAAE,OAAO,EAAE;oBAC9D,QAAQ;iBACT,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;QACD,MAAM,IAAI,gCAAgC,CACxC,gDAAgD,KAAK,CAAC,cAAc,eAAe,QAAQ,CAAC,IAAI,EAAE,EAClG,EAAE,KAAK,EAAE,KAAK,EAAE,CACjB,CAAA;IACH,CAAC;AACH,CAAC,CAAA;AAED,MAAM,iBAAiB,GAAG,CACxB,QAA8C,EAC9C,QAAiC,EACjC,EAAE,CAAC,CACH,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI;OAC5B,QAAQ,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK;OACjC,QAAQ,CAAC,aAAa,KAAK,QAAQ,CAAC,aAAa;OACjD,QAAQ,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ,CAC3C,CAAA;AAED,MAAM,wBAAwB,GAAG,CAC/B,OAAuC,EACO,EAAE;IAChD,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAA;IACb,CAAC;IACD,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAA0C,CAAA;QAC7F,IACE,SAAS,EAAE,cAAc,KAAK,CAAC;eAC5B,SAAS,CAAC,QAAQ,KAAK,uBAAuB;eAC9C,SAAS,CAAC,cAAc,KAAK,OAAO,CAAC,cAAc;eACnD,SAAS,CAAC,oBAAoB,KAAK,OAAO,CAAC,oBAAoB;eAC/D,SAAS,CAAC,kCAAkC,KAAK,OAAO,CAAC,kCAAkC;eAC3F,CAAC,SAAS,CAAC,KAAK,KAAK,UAAU,IAAI,SAAS,CAAC,KAAK,KAAK,QAAQ,IAAI,SAAS,CAAC,KAAK,KAAK,OAAO,CAAC;eAC/F,OAAO,SAAS,CAAC,MAAM,EAAE,cAAc,KAAK,QAAQ;eACpD,OAAO,SAAS,CAAC,MAAM,EAAE,GAAG,KAAK,QAAQ,EAC5C,CAAC;YACD,OAAO,IAAI,CAAA;QACb,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC,CAAA;AAED,MAAM,wBAAwB,GAAG,CAC/B,OAAuC,EACJ,EAAE;IACrC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAA;IACb,CAAC;IACD,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAA+B,CAAA;QAClF,IACE,SAAS,EAAE,QAAQ,KAAK,uBAAuB;eAC5C,SAAS,CAAC,aAAa,KAAK,OAAO,CAAC,cAAc;eAClD,SAAS,CAAC,mBAAmB,KAAK,OAAO,CAAC,oBAAoB;eAC9D,SAAS,CAAC,cAAc,KAAK,OAAO,CAAC,gBAAgB;eACrD,SAAS,CAAC,KAAK,EAAE,IAAI,KAAK,eAAe;eACzC,OAAO,SAAS,CAAC,KAAK,CAAC,UAAU,KAAK,QAAQ,EACjD,CAAC;YACD,OAAO,IAAI,CAAA;QACb,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC,CAAA;AAED,MAAM,yCAAyC,GAAG,CAChD,OAAuC,EACvC,OAAe,EACf,EAAE;IACF,MAAM,GAAG,GAAG,eAAe,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;IACzE,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QACnE,OAAM;IACR,CAAC;IACD,MAAM,cAAc,GAAG,oBAAoB,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;IACzF,IAAI,cAAc,EAAE,eAAe,IAAI,cAAc,CAAC,mBAAmB,EAAE,CAAC;QAC1E,8BAA8B,CAAC;YAC7B,SAAS,EAAE,OAAO,CAAC,UAAU;YAC7B,cAAc,EAAE,OAAO,CAAC,gBAAgB;YACxC,OAAO;YACP,cAAc,EAAE,cAAc,CAAC,eAAe;YAC9C,iBAAiB,EAAE,cAAc,CAAC,mBAAmB;SACtD,CAAC,CAAA;QACF,OAAM;IACR,CAAC;IACD,sBAAsB,CAAC;QACrB,SAAS,EAAE,OAAO,CAAC,UAAU;QAC7B,KAAK,EAAE,OAAO,CAAC,gBAAgB;QAC/B,MAAM,EAAE,aAAa;QACrB,YAAY,EAAE,aAAa;QAC3B,OAAO,EAAE;YACP,IAAI,EAAE,+CAA+C;YACrD,OAAO,EAAE,oFAAoF,OAAO,EAAE;YACtG,OAAO,EAAE;gBACP,aAAa,EAAE,OAAO,CAAC,cAAc;gBACrC,mBAAmB,EAAE,OAAO,CAAC,oBAAoB;gBACjD,iBAAiB,EAAE,OAAO,CAAC,cAAc,KAAK,IAAI;aACnD;SACF;QACD,SAAS,EAAE,8CAA8C;QACzD,YAAY,EAAE,0FAA0F;QACxG,aAAa,EAAE;YACb,aAAa,EAAE,OAAO,CAAC,cAAc;YACrC,mBAAmB,EAAE,OAAO,CAAC,oBAAoB;YACjD,aAAa,EAAE,IAAI;YACnB,iBAAiB,EAAE,OAAO,CAAC,cAAc,KAAK,IAAI;SACnD;KACF,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,+CAA+C,GAAG,KAAK,EAClE,UAAgC,iCAAiC,EAAE,EACnE,QAAmE,EAAE,EACrE,EAAE;IACF,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;GAK3B,CAAC,CAAC,GAAG,EAAsC,CAAA;IAC5C,MAAM,OAAO,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAA;IAEzC,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAC9C,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,OAAO,CAAC,UAAU,KAAK,KAAK,CAAC,SAAS,CAAC;WACtE,CAAC,KAAK,CAAC,cAAc,KAAK,SAAS,IAAI,OAAO,CAAC,gBAAgB,KAAK,KAAK,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC;QAChG,MAAM,WAAW,GAAG,uBAAuB,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,cAAc,CAAC,CAAA;QACvF,MAAM,SAAS,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAA;QACnD,MAAM,eAAe,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAA;QACzD,IAAI,CAAC;YACH,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,yBAAyB,OAAO,CAAC,cAAc,aAAa,CAAC,CAAA;YAC/E,CAAC;YACD,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAA;YAC/F,CAAC;YACD,MAAM,eAAe,GAAG,WAAW,CAAC,6BAA6B;gBAC/D,CAAC,CAAC,2BAA2B,CAAC,WAAW,CAAC,UAAU,EAAE,WAAW,CAAC,6BAA6B,CAAC;gBAChG,CAAC,CAAC,IAAI,CAAA;YACR,MAAM,cAAc,GAAG,kDAAkD,CACvE,WAAW,CAAC,gBAAgB,EAC5B,WAAW,CAAC,iBAAiB,EAC7B,SAAS,CAAC,KAAK,EACf,eAAe,EAAE,OAAO,CAAC,kBAAkB,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAC/D,CAAA;YACD,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAA;YAC5F,CAAC;YACD,IAAI,OAAO,CAAC,cAAc,KAAK,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBACxD,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAA;YAC/F,CAAC;YACD,MAAM,SAAS,GAAG,eAAe;mBAC5B,eAAe,CAAC,eAAe,KAAK,SAAS,CAAC,gBAAgB;mBAC9D,eAAe,CAAC,SAAS,KAAK,SAAS,CAAC,MAAM,CAAC,GAAG;gBACrD,CAAC,CAAC,eAAe;gBACjB,CAAC,CAAC,IAAI,CAAA;YACR,IAAI,eAAe,IAAI,CAAC,SAAS,EAAE,CAAC;gBAClC,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAA;YACnF,CAAC;YACD,MAAM,UAAU,GAAG,SAAS,EAAE,KAAK,CAAC,IAAI,KAAK,eAAe;gBAC1D,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU;gBAC5B,CAAC,CAAC,WAAW,CAAC,WAAW,CAAA;YAC3B,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;YACrE,CAAC;YACD,IAAI,SAAS,EAAE,KAAK,CAAC,IAAI,KAAK,eAAe,IAAI,WAAW,CAAC,WAAW,IAAI,UAAU,KAAK,WAAW,CAAC,WAAW,EAAE,CAAC;gBACnH,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAA;YAC/E,CAAC;YACD,MAAM,QAAQ,GAAyC;gBACrD,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,SAAS,CAAC,KAAK;gBACtB,aAAa,EAAE,SAAS,CAAC,MAAM,CAAC,cAAc;gBAC9C,QAAQ,EAAE,WAAW,CAAC,iBAA2B;aAClD,CAAA;YACD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;YACnD,IAAI,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;gBACnD,MAAM,IAAI,6BAA6B,CAAC,QAAQ,CAAC,IAAI,EAAE,8EAA8E,CAAC,CAAA;YACxI,CAAC;YACD,IAAI,MAAM,EAAE,KAAK,KAAK,SAAS,EAAE,CAAC;gBAChC,MAAM,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,6BAA6B,EAAE,CAAC,CAAA;YAC5E,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;YAClD,IAAI,KAAK,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC;gBACjD,MAAM,IAAI,6BAA6B,CAAC,QAAQ,CAAC,IAAI,EAAE,yEAAyE,CAAC,CAAA;YACnI,CAAC;YACD,IAAI,KAAK,EAAE,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC/B,MAAM,IAAI,oCAAoC,CAAC,WAAW,QAAQ,CAAC,IAAI,mBAAmB,CAAC,CAAA;YAC7F,CAAC;YACD,MAAM,KAAK,GAA0C,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAA;YACjF,MAAM,iBAAiB,GAAG,KAAK,KAAK,SAAS;gBAC3C,CAAC,CAAC;oBACE,KAAK;oBACL,SAAS,EAAE,iDAAiD;oBAC5D,OAAO,EAAE,8FAA8F;oBACvG,QAAQ,EAAE,EAAE,cAAc,EAAE,OAAO,CAAC,gBAAgB,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE;iBAC7F;gBACZ,CAAC,CAAC;oBACE,KAAK;oBACL,SAAS,EAAE,uDAAuD;oBAClE,OAAO,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,gDAAgD,EAAE;oBAC/F,QAAQ,EAAE,EAAE,cAAc,EAAE,OAAO,CAAC,gBAAgB,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE;iBAC7F,CAAA;YACd,IAAI,SAAS,EAAE,CAAC;gBACd,gCAAgC,CAAC;oBAC/B,SAAS,EAAE,OAAO,CAAC,UAAU;oBAC7B,aAAa,EAAE,OAAO,CAAC,cAAc;oBACrC,cAAc,EAAE,OAAO,CAAC,gBAAgB;oBACxC,KAAK,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE;oBACnF,iBAAiB;iBAClB,CAAC,CAAA;YACJ,CAAC;iBAAM,CAAC;gBACN,gCAAgC,CAAC;oBAC/B,SAAS,EAAE,OAAO,CAAC,UAAU;oBAC7B,aAAa,EAAE,OAAO,CAAC,cAAc;oBACrC,cAAc,EAAE,OAAO,CAAC,gBAAgB;oBACxC,KAAK,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,UAAU,EAAE,KAAK,EAAE;oBAC3D,iBAAiB;iBAClB,CAAC,CAAA;YACJ,CAAC;YACD,OAAO,CAAC,OAAO,IAAI,CAAC,CAAA;QACtB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,2DAA2D,CAAA;YACpH,MAAM,OAAO,GAAG,WAAW,IAAI,uBAAuB,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,cAAc,CAAC,CAAA;YAClG,IAAI,OAAO,IAAI,CAAC,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;gBAC7E,MAAM,YAAY,GAAG,OAAO,CAAC,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,aAAa,CAAA;gBAC7F,8BAA8B,CAAC;oBAC7B,SAAS,EAAE,OAAO,CAAC,UAAU;oBAC7B,aAAa,EAAE,OAAO,CAAC,cAAc;oBACrC,KAAK,EAAE,YAAY;oBACnB,SAAS,EAAE,8CAA8C;oBACzD,OAAO,EAAE,EAAE,IAAI,EAAE,mCAAmC,EAAE,OAAO,EAAE;oBAC/D,QAAQ,EAAE,EAAE,cAAc,EAAE,OAAO,CAAC,gBAAgB,EAAE,aAAa,EAAE,IAAI,EAAE;iBAC5E,CAAC,CAAA;YACJ,CAAC;iBAAM,IAAI,OAAO,EAAE,CAAC;gBACnB,+BAA+B,CAAC;oBAC9B,SAAS,EAAE,OAAO,CAAC,UAAU;oBAC7B,aAAa,EAAE,OAAO,CAAC,cAAc;oBACrC,SAAS,EAAE,8CAA8C;oBACzD,SAAS,EAAE,OAAO,CAAC,eAAe;oBAClC,OAAO,EAAE,OAAO,CAAC,eAAe;oBAChC,OAAO;oBACP,QAAQ,EAAE,EAAE,cAAc,EAAE,OAAO,CAAC,gBAAgB,EAAE,aAAa,EAAE,IAAI,EAAE;iBAC5E,CAAC,CAAA;YACJ,CAAC;YACD,yCAAyC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YAC3D,OAAO,CAAC,MAAM,IAAI,CAAC,CAAA;QACrB,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAED,MAAM,iBAAiB,GAAG,CACxB,WAAiC,EACjC,QAAiC,EACjC,EAAE;IACF,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAA;IACtE,MAAM,OAAO,GAAG,CACd,CAAC,WAAW,KAAK,SAAS,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;WACnG,CAAC,WAAW,KAAK,OAAO,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAC1G,CAAA;IACD,IAAI,WAAW,CAAC,eAAe,KAAK,WAAW,IAAI,OAAO,EAAE,CAAC;QAC3D,8BAA8B,CAAC;YAC7B,SAAS,EAAE,WAAW,CAAC,UAAU;YACjC,aAAa,EAAE,WAAW,CAAC,EAAE;YAC7B,KAAK,EAAE,WAAW;YAClB,SAAS,EAAE,wBAAwB;YACnC,OAAO,EAAE,+BAA+B,QAAQ,CAAC,KAAK,iCAAiC;YACvF,QAAQ,EAAE,EAAE,aAAa,EAAE,QAAQ,CAAC,KAAK,EAAE;SAC5C,CAAC,CAAA;QACF,OAAM;IACR,CAAC;IACD,+BAA+B,CAAC;QAC9B,SAAS,EAAE,WAAW,CAAC,UAAU;QACjC,aAAa,EAAE,WAAW,CAAC,EAAE;QAC7B,SAAS,EAAE,wBAAwB;QACnC,SAAS,EAAE,WAAW,CAAC,eAAe;QACtC,OAAO,EAAE,WAAW,CAAC,eAAe;QACpC,OAAO,EAAE,+BAA+B,QAAQ,CAAC,KAAK,iCAAiC;QACvF,QAAQ,EAAE,EAAE,aAAa,EAAE,QAAQ,CAAC,KAAK,EAAE;KAC5C,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,gDAAgD,GAAG,KAAK,EACnE,UAAgC,iCAAiC,EAAE,EACnE,EAAE;IACF,MAAM,OAAO,GAAG,EAAE,YAAY,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,CAAA;IACvF,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IACpC,MAAM,gBAAgB,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,WAAW,EAAE,CAAA;IACxE,MAAM,WAAW,GAAG,EAAE,CAAC,OAAO,CAAC;;;;GAI9B,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAMrB,CAAA;IACF,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC;;;;KAIzB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAA;QACjE,IAAI,MAAM,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;YACzB,SAAQ;QACV,CAAC;QACD,+BAA+B,CAAC;YAC9B,SAAS,EAAE,KAAK,CAAC,UAAU;YAC3B,aAAa,EAAE,KAAK,CAAC,EAAE;YACvB,SAAS,EAAE,uCAAuC;YAClD,SAAS,EAAE,KAAK,CAAC,eAAe;YAChC,OAAO,EAAE,KAAK,CAAC,eAAe;YAC9B,QAAQ,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,kBAAkB,EAAE,aAAa,EAAE,KAAK,CAAC,cAAc,EAAE;SACrF,CAAC,CAAA;QACF,OAAO,CAAC,gBAAgB,IAAI,CAAC,CAAA;IAC/B,CAAC;IAED,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;GAoBtB,CAAC,CAAC,GAAG,CAAC,uBAAuB,EAAE,GAAG,EAAE,GAAG,CAA8C,CAAA;IAEtF,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;QACtB,MAAM,WAAW,GAAG,uBAAuB,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA;QACnE,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,SAAQ;QACV,CAAC;QACD,IAAI,CAAC;YACH,IAAI,WAAW,CAAC,YAAY,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,eAAe,CAAC,EAAE,CAAC;gBACpG,MAAM,wBAAwB,CAAC;oBAC7B,SAAS,EAAE,WAAW,CAAC,UAAU;oBACjC,aAAa,EAAE,WAAW,CAAC,EAAE;oBAC7B,YAAY,EAAE,EAAE,GAAG,2CAA2C,EAAE,OAAO,EAAE;oBACzE,SAAS,EAAE,iCAAiC;iBAC7C,CAAC,CAAA;gBACF,OAAO,CAAC,YAAY,IAAI,CAAC,CAAA;YAC3B,CAAC;iBAAM,CAAC;gBACN,MAAM,gCAAgC,CAAC;oBACrC,SAAS,EAAE,WAAW,CAAC,UAAU;oBACjC,aAAa,EAAE,WAAW,CAAC,EAAE;oBAC7B,YAAY,EAAE,EAAE,GAAG,2CAA2C,EAAE,OAAO,EAAE;iBAC1E,CAAC,CAAA;gBACF,OAAO,CAAC,eAAe,IAAI,CAAC,CAAA;YAC9B,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,MAAM,IAAI,CAAC,CAAA;QACrB,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,8BAA8B,GAAG,KAAK,EACjD,UAAgC,iCAAiC,EAAE,EACnE,EAAE;IACF,MAAM,gBAAgB,GAAG,MAAM,gDAAgD,CAAC,OAAO,CAAC,CAAA;IACxF,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;GAKvB,CAAC,CAAC,GAAG,EAA+C,CAAA;IACrD,MAAM,OAAO,GAAG;QACd,gBAAgB,EAAE,CAAC;QACnB,gBAAgB,EAAE,CAAC;QACnB,gBAAgB,EAAE,CAAC;QACnB,WAAW,EAAE,CAAC;QACd,QAAQ,EAAE,CAAC;QACX,YAAY,EAAE,gBAAgB,CAAC,YAAY;QAC3C,eAAe,EAAE,gBAAgB,CAAC,eAAe;KAClD,CAAA;IAED,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,WAAW,GAAG,uBAAuB,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA;QACnE,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,aAAa,KAAK,uBAAuB,EAAE,CAAC;YAC1E,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAA;YACrB,SAAQ;QACV,CAAC;QACD,IAAI,CAAC;YACH,MAAM,eAAe,GAAG,WAAW,CAAC,6BAA6B;gBAC/D,CAAC,CAAC,2BAA2B,CAAC,WAAW,CAAC,UAAU,EAAE,WAAW,CAAC,6BAA6B,CAAC;gBAChG,CAAC,CAAC,IAAI,CAAA;YACR,IAAI,CAAC,kDAAkD,CACrD,WAAW,CAAC,gBAAgB,EAC5B,WAAW,CAAC,iBAAiB,EAC7B,WAAW,CAAC,cAAc,EAC1B,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,eAAe,EAAE,OAAO,CAAC,kBAAkB,EAAE,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CACnH,EAAE,CAAC;gBACF,MAAM,IAAI,KAAK,CAAC,iFAAiF,CAAC,CAAA;YACpG,CAAC;YACD,MAAM,QAAQ,GAAG,4BAA4B,CAAC,WAAW,CAAC,CAAA;YAC1D,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;YACrD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,IAAI,WAAW,CAAC,eAAe,KAAK,QAAQ,EAAE,CAAC;oBAC7C,+BAA+B,CAAC;wBAC9B,SAAS,EAAE,WAAW,CAAC,UAAU;wBACjC,aAAa,EAAE,WAAW,CAAC,EAAE;wBAC7B,SAAS,EAAE,oCAAoC;wBAC/C,SAAS,EAAE,WAAW,CAAC,eAAe;wBACtC,OAAO,EAAE,WAAW,CAAC,eAAe;wBACpC,OAAO,EAAE,2EAA2E;wBACpF,QAAQ,EAAE,EAAE,WAAW,EAAE,iBAAiB,EAAE;qBAC7C,CAAC,CAAA;oBACF,OAAO,CAAC,gBAAgB,IAAI,CAAC,CAAA;oBAC7B,SAAQ;gBACV,CAAC;gBACD,8BAA8B,CAAC;oBAC7B,SAAS,EAAE,WAAW,CAAC,UAAU;oBACjC,aAAa,EAAE,WAAW,CAAC,EAAE;oBAC7B,KAAK,EAAE,aAAa;oBACpB,SAAS,EAAE,oCAAoC;oBAC/C,OAAO,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,2EAA2E,EAAE;iBAC3H,CAAC,CAAA;gBACF,OAAO,CAAC,gBAAgB,IAAI,CAAC,CAAA;gBAC7B,SAAQ;YACV,CAAC;YACD,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC;gBAC3C,MAAM,IAAI,6BAA6B,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,QAAQ,CAAC,IAAI,sDAAsD,CAAC,CAAA;YACxI,CAAC;YACD,iBAAiB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;YACxC,OAAO,CAAC,QAAQ,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA;QACtF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,uBAAuB,CAAC,WAAW,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,CAAC,CAAA;YAC/E,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,uCAAuC,CAAA;YAChG,IAAI,OAAO,IAAI,CAAC,CAAC,QAAQ,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;gBACvF,8BAA8B,CAAC;oBAC7B,SAAS,EAAE,OAAO,CAAC,UAAU;oBAC7B,aAAa,EAAE,OAAO,CAAC,EAAE;oBACzB,KAAK,EAAE,aAAa;oBACpB,SAAS,EAAE,wCAAwC;oBACnD,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,YAAY,6BAA6B,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,sBAAsB,EAAE,OAAO,EAAE;iBAC1H,CAAC,CAAA;YACJ,CAAC;iBAAM,IAAI,OAAO,EAAE,CAAC;gBACnB,+BAA+B,CAAC;oBAC9B,SAAS,EAAE,OAAO,CAAC,UAAU;oBAC7B,aAAa,EAAE,OAAO,CAAC,EAAE;oBACzB,SAAS,EAAE,wCAAwC;oBACnD,SAAS,EAAE,OAAO,CAAC,eAAe;oBAClC,OAAO,EAAE,OAAO,CAAC,eAAe;oBAChC,OAAO;iBACR,CAAC,CAAA;YACJ,CAAC;YACD,OAAO,CAAC,WAAW,IAAI,CAAC,CAAA;QAC1B,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAQD,MAAM,sCAAsC,GAAG,GAAwC,EAAE;IACvF,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BvB,CAAC,CAAC,GAAG,EAA4E,CAAA;IAClF,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACtB,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,UAAU,EAAE,GAAG,CAAC,WAAW;QAC3B,SAAS,EAAE,GAAG,CAAC,UAAU;KAC1B,CAAC,CAAC,CAAA;AACL,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,sCAAsC,GAAG,KAAK,EACzD,UAAgC,iCAAiC,EAAE,EACnE,EAAE;IACF,MAAM,MAAM,GAAG,sCAAsC,EAAE,CAAA;IACvD,MAAM,OAAO,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAA;IACjE,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,qCAAqC,CAAC,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,CAAC,CAAA;YACjF,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAA;QACnC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,MAAM,IAAI,CAAC,CAAA;QACrB,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAED,MAAM,oBAAoB,GAAG,CAAC,KAAuC,EAAE,KAAK,GAAG,EAAE,EAAE,EAAE;IACnF,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;IAClE,MAAM,UAAU,GAAG,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;IAClD,MAAM,MAAM,GAAc,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IAC3C,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACnC,UAAU,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;QAC/C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;IAC/B,CAAC;IACD,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAClC,UAAU,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;QAC9C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IAC9B,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;AACpD,CAAC,CAAA;AAED,MAAM,iCAAiC,GAAG,CAAC,KAAuC,EAAE,EAAE;IACpF,MAAM,KAAK,GAAG,oBAAoB,CAAC,KAAK,EAAE,aAAa,CAAC,CAAA;IACxD,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;YAKhB,KAAK,CAAC,KAAK;;;GAGpB,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAqE,CAAA;IAC3F,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,IAAI,gCAAgC,CACxC,yBAAyB,MAAM,CAAC,cAAc,gCAAgC,MAAM,CAAC,gBAAgB,EAAE,CACxG,CAAA;IACH,CAAC;AACH,CAAC,CAAA;AAED,MAAM,6BAA6B,GAAG,CAAC,KAAuC,EAAE,SAAiB,EAAE,OAAe,EAAE,EAAE;IACpH,MAAM,KAAK,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAA;IACzC,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC;;YAEd,KAAK,CAAC,KAAK;;GAEpB,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAA0B,CAAA;IAChD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,8BAA8B,CAAC;YAC7B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,aAAa,EAAE,GAAG,CAAC,EAAE;YACrB,KAAK,EAAE,UAAU;YACjB,SAAS;YACT,OAAO;SACR,CAAC,CAAA;IACJ,CAAC;AACH,CAAC,CAAA;AAED,MAAM,4BAA4B,GAAG,KAAK,EACxC,KAAuC,EACvC,OAAe,EACf,UAAgC,iCAAiC,EAAE,EACnE,OAGE,EACF,EAAE;IACF,iCAAiC,CAAC,KAAK,CAAC,CAAA;IACxC,6BAA6B,CAAC,KAAK,EAAE,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAAC,cAAc,CAAC,CAAA;IACtF,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IAC5C,IAAI,OAAO,GAAG,CAAC,CAAA;IACf,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,OAAO,GAAG,oCAAoC,CAAC;YACnD,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,OAAO;YACP,KAAK,EAAE,GAAG;YACV,WAAW;YACX,aAAa,EAAE,IAAI;SACpB,CAAC,CAAA;QACF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,MAAK;QACP,CAAC;QACD,MAAM,QAAQ,GAAY,EAAE,CAAA;QAE5B,KAAK,MAAM,WAAW,IAAI,OAAO,EAAE,CAAC;YAClC,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,4BAA4B,CAAC,WAAW,CAAC,CAAA;gBAC1D,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;gBACrD,IAAI,QAAQ,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC;oBACvD,MAAM,IAAI,6BAA6B,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,QAAQ,CAAC,IAAI,sDAAsD,CAAC,CAAA;gBACxI,CAAC;gBACD,IAAI,QAAQ,EAAE,KAAK,KAAK,SAAS,EAAE,CAAC;oBAClC,MAAM,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;gBAC9B,CAAC;gBACD,IAAI,QAAQ,EAAE,CAAC;oBACb,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;gBAChC,CAAC;gBACD,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;gBACtD,IAAI,SAAS,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC;oBACzD,MAAM,IAAI,6BAA6B,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,QAAQ,CAAC,IAAI,gDAAgD,CAAC,CAAA;gBAClI,CAAC;gBACD,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,IAAI,KAAK,CAAC,WAAW,QAAQ,CAAC,IAAI,6BAA6B,CAAC,CAAA;gBACxE,CAAC;gBACD,mCAAmC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,aAAa,EAAE,WAAW,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,CAAA;YAC7G,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;gBACzE,+BAA+B,CAAC;oBAC9B,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,aAAa,EAAE,WAAW,CAAC,EAAE;oBAC7B,OAAO;oBACP,OAAO,EAAE;wBACP,IAAI,EAAE,KAAK,YAAY,6BAA6B,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,gBAAgB;wBAC7F,OAAO,EAAE,OAAO,CAAC,OAAO;qBACzB;iBACF,CAAC,CAAA;gBACF,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACxB,CAAC;QACH,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,gCAAgC,CACxC,mBAAmB,QAAQ,CAAC,MAAM,8BAA8B,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,yBAAyB,EAAE,EACnH,EAAE,KAAK,EAAE,IAAI,cAAc,CAAC,QAAQ,CAAC,EAAE,CACxC,CAAA;QACH,CAAC;QACD,OAAO,IAAI,OAAO,CAAC,MAAM,CAAA;IAC3B,CAAC;IACD,MAAM,KAAK,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAA;IACzC,MAAM,SAAS,GAAG,EAAE,CAAC,OAAO,CAAC;;YAEnB,KAAK,CAAC,KAAK;;GAEpB,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAA+B,CAAA;IACrD,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,IAAI,gCAAgC,CACxC,yBAAyB,SAAS,CAAC,EAAE,6CAA6C,CACnF,CAAA;IACH,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,CAAA;AACpB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,qCAAqC,GAAG,KAAK,EACxD,KAKE,EACF,EAAE,CAAC,4BAA4B,CAC/B;IACE,SAAS,EAAE,KAAK,CAAC,SAAS;IAC1B,UAAU,EAAE,KAAK,CAAC,UAAU;IAC5B,SAAS,EAAE,KAAK,CAAC,SAAS;CAC3B,EACD,UAAU,EAAE,EACZ,KAAK,CAAC,OAAO,EACb;IACE,gBAAgB,EAAE,qCAAqC;IACvD,cAAc,EAAE,4EAA4E;CAC7F,CACF,CAAA;AAED,MAAM,CAAC,MAAM,mCAAmC,GAAG,KAAK,EACtD,SAAiB,EACjB,OAAe,EACf,UAAgC,iCAAiC,EAAE,EACnE,EAAE,CAAC,4BAA4B,CAC/B,EAAE,SAAS,EAAE,EACb,OAAO,EACP,OAAO,EACP;IACE,gBAAgB,EAAE,sCAAsC;IACxD,cAAc,EAAE,2DAA2D;CAC5E,CACF,CAAA"}
1
+ {"version":3,"file":"executionEnvironmentReconciliation.js","sourceRoot":"","sources":["../../../server/lib/executionEnvironmentReconciliation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,232 @@
1
+ import { randomUUID } from 'crypto';
2
+ import db from '../db.js';
3
+ import { isBundleCleanupAbandoned } from './bundleDeletionStore.js';
4
+ import { createDockerSandboxAdapter, createDockerSandboxName, createSbxCommandRunner, DOCKER_SANDBOX_PROVIDER, DockerSandboxCollisionFailure, } from './dockerSandboxExecutionEnvironment.js';
5
+ import { claimExecutionEnvironmentsForCleanup, completeExecutionEnvironmentCleanup, failExecutionEnvironmentCleanup, transitionExecutionEnvironment, } from './executionEnvironments.js';
6
+ const CLEANUP_TIMEOUT_MS = 30_000;
7
+ export const ExecutionEnvironmentCleanupError = class extends Error {
8
+ constructor(message, options = {}) {
9
+ super(message, options);
10
+ this.name = 'ExecutionEnvironmentCleanupError';
11
+ }
12
+ };
13
+ export const createDefaultDockerSandboxAdapter = () => (createDockerSandboxAdapter(createSbxCommandRunner()));
14
+ export const resolveExpectedDockerSandbox = (environment, requestedAgent) => {
15
+ if (environment.provider_kind !== DOCKER_SANDBOX_PROVIDER || !environment.agent_identity || !environment.template_identity) {
16
+ throw new Error(`Execution environment ${environment.id} has incomplete persisted sandbox ownership evidence`);
17
+ }
18
+ if (requestedAgent && environment.agent_identity !== requestedAgent) {
19
+ throw new Error(`Execution environment ${environment.id} is not owned by the requested agent template`);
20
+ }
21
+ return {
22
+ name: environment.external_id ?? createDockerSandboxName({
23
+ projectId: environment.project_id,
24
+ targetKey: environment.target_key,
25
+ environmentRevision: environment.environment_revision,
26
+ validationFingerprint: environment.environment_validation_fingerprint,
27
+ }),
28
+ agent: environment.agent_identity,
29
+ workspacePath: environment.target_workspace_path,
30
+ template: environment.template_identity,
31
+ };
32
+ };
33
+ export const inspectionMatches = (expected, observed) => (expected.name === observed.name
34
+ && expected.agent === observed.agent
35
+ && expected.workspacePath === observed.workspacePath
36
+ && expected.template === observed.template);
37
+ const getCleanupScopeQuery = (scope, alias = '') => {
38
+ const column = (name) => alias ? `${alias}.${name}` : name;
39
+ const conditions = [`${column('project_id')} = ?`];
40
+ const params = [scope.projectId];
41
+ if (scope.targetKind !== undefined) {
42
+ conditions.push(`${column('target_kind')} = ?`);
43
+ params.push(scope.targetKind);
44
+ }
45
+ if (scope.targetKey !== undefined) {
46
+ conditions.push(`${column('target_key')} = ?`);
47
+ params.push(scope.targetKey);
48
+ }
49
+ if (db.prepare("SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = 'bundle_deletion_jobs'").get()) {
50
+ conditions.push(`NOT EXISTS (
51
+ SELECT 1 FROM bundle_deletion_jobs job
52
+ WHERE job.project_id = ${column('project_id')} AND job.target_key = ${column('target_key')}
53
+ AND job.status = 'abandoned'
54
+ )`);
55
+ }
56
+ return { where: conditions.join(' AND '), params };
57
+ };
58
+ const assertNoActiveEnvironmentBindings = (scope) => {
59
+ const query = getCleanupScopeQuery(scope, 'environment');
60
+ const active = db.prepare(`
61
+ SELECT binding.environment_id, binding.execution_run_id
62
+ FROM execution_environment_run_bindings binding
63
+ JOIN execution_environments environment
64
+ ON environment.id = binding.environment_id AND environment.project_id = binding.project_id
65
+ WHERE ${query.where}
66
+ AND binding.released_at IS NULL
67
+ LIMIT 1
68
+ `).get(...query.params);
69
+ if (active) {
70
+ throw new ExecutionEnvironmentCleanupError(`Execution environment ${active.environment_id} is still used by active run ${active.execution_run_id}`);
71
+ }
72
+ };
73
+ const prepareEnvironmentsForCleanup = (scope, eventType, message) => {
74
+ const query = getCleanupScopeQuery(scope, 'environment');
75
+ const rows = db.prepare(`
76
+ SELECT id FROM execution_environments environment
77
+ WHERE ${query.where} AND lifecycle_state NOT IN ('retiring', 'cleanup_pending', 'retired')
78
+ AND operation_claim_id IS NULL
79
+ ORDER BY created_at ASC, id ASC
80
+ `).all(...query.params);
81
+ for (const row of rows) {
82
+ transitionExecutionEnvironment({
83
+ projectId: scope.projectId,
84
+ environmentId: row.id,
85
+ state: 'retiring',
86
+ eventType,
87
+ message,
88
+ });
89
+ }
90
+ };
91
+ const cleanupExecutionEnvironments = async (scope, claimId, adapter = createDefaultDockerSandboxAdapter(), options) => {
92
+ if (scope.targetKey !== undefined && isBundleCleanupAbandoned(scope.projectId, scope.targetKey)) {
93
+ return { cleaned: 0 };
94
+ }
95
+ assertNoActiveEnvironmentBindings(scope);
96
+ prepareEnvironmentsForCleanup(scope, options.startedEventType, options.startedMessage);
97
+ const commandOptions = { timeoutMs: CLEANUP_TIMEOUT_MS, ...options.commandOptions };
98
+ const staleBefore = new Date(Date.now() - 5 * 60_000).toISOString();
99
+ let cleaned = 0;
100
+ while (true) {
101
+ const query = getCleanupScopeQuery(scope, 'environment');
102
+ const targets = db.prepare(`
103
+ SELECT DISTINCT target_kind, target_key FROM execution_environments environment
104
+ WHERE ${query.where}
105
+ `).all(...query.params);
106
+ const claimed = targets.flatMap(target => claimExecutionEnvironmentsForCleanup({
107
+ projectId: scope.projectId,
108
+ targetKind: target.target_kind,
109
+ targetKey: target.target_key,
110
+ claimId,
111
+ limit: 200,
112
+ staleBefore,
113
+ ignoreRetryAt: true,
114
+ }));
115
+ if (claimed.length === 0) {
116
+ break;
117
+ }
118
+ const failures = [];
119
+ for (const environment of claimed) {
120
+ try {
121
+ const expected = resolveExpectedDockerSandbox(environment);
122
+ const observed = await adapter.inspect(expected.name, commandOptions);
123
+ if (observed && !inspectionMatches(expected, observed)) {
124
+ throw new DockerSandboxCollisionFailure(expected.name, `Sandbox ${expected.name} does not match Archon's persisted external identity`);
125
+ }
126
+ if (observed?.state === 'running') {
127
+ await adapter.stop(expected, commandOptions);
128
+ }
129
+ if (observed) {
130
+ await adapter.remove(expected, commandOptions);
131
+ }
132
+ const remaining = await adapter.inspect(expected.name, commandOptions);
133
+ if (remaining && !inspectionMatches(expected, remaining)) {
134
+ throw new DockerSandboxCollisionFailure(expected.name, `Sandbox ${expected.name} was replaced before absence could be verified`);
135
+ }
136
+ if (remaining) {
137
+ throw new Error(`Sandbox ${expected.name} still exists after removal`);
138
+ }
139
+ completeExecutionEnvironmentCleanup({ projectId: scope.projectId, environmentId: environment.id, claimId });
140
+ }
141
+ catch (error) {
142
+ const failure = error instanceof Error ? error : new Error(String(error));
143
+ failures.push(failure);
144
+ try {
145
+ failExecutionEnvironmentCleanup({
146
+ projectId: scope.projectId,
147
+ environmentId: environment.id,
148
+ claimId,
149
+ failure: {
150
+ code: error instanceof DockerSandboxCollisionFailure ? 'identity_mismatch' : 'cleanup_failed',
151
+ message: failure.message,
152
+ },
153
+ });
154
+ }
155
+ catch (recordingError) {
156
+ failures.push(recordingError instanceof Error ? recordingError : new Error(String(recordingError)));
157
+ }
158
+ }
159
+ }
160
+ if (failures.length > 0) {
161
+ throw new ExecutionEnvironmentCleanupError(`Failed to clean ${failures.length} execution environment(s): ${failures[0]?.message ?? 'Unknown cleanup failure'}`, { cause: new AggregateError(failures) });
162
+ }
163
+ cleaned += claimed.length;
164
+ }
165
+ const query = getCleanupScopeQuery(scope, 'environment');
166
+ const remaining = db.prepare(`
167
+ SELECT id FROM execution_environments environment
168
+ WHERE ${query.where} AND lifecycle_state <> 'retired'
169
+ LIMIT 1
170
+ `).get(...query.params);
171
+ if (remaining) {
172
+ throw new ExecutionEnvironmentCleanupError(`Execution environment ${remaining.id} could not be claimed for verified cleanup.`);
173
+ }
174
+ return { cleaned };
175
+ };
176
+ export const cleanupExecutionEnvironmentsForTarget = async (input) => cleanupExecutionEnvironments({
177
+ projectId: input.projectId,
178
+ targetKind: input.targetKind,
179
+ targetKey: input.targetKey,
180
+ }, input.claimId ?? randomUUID(), input.adapter, {
181
+ startedEventType: 'environment_target_deletion_started',
182
+ startedMessage: 'Environment cleanup started because its execution target is being deleted.',
183
+ commandOptions: input.commandOptions,
184
+ });
185
+ export const cleanupProjectExecutionEnvironments = async (projectId, claimId, adapter = createDefaultDockerSandboxAdapter()) => cleanupExecutionEnvironments({ projectId }, claimId, adapter, {
186
+ startedEventType: 'environment_project_deletion_started',
187
+ startedMessage: 'Environment cleanup started for claimed project deletion.',
188
+ });
189
+ const snapshotContainsEnvironment = (snapshot, environment) => {
190
+ if (Array.isArray(snapshot)) {
191
+ return snapshot.some(entry => snapshotContainsEnvironment(entry, environment));
192
+ }
193
+ if (!snapshot || typeof snapshot !== 'object') {
194
+ return false;
195
+ }
196
+ const record = snapshot;
197
+ if (Object.entries(environment).every(([key, value]) => record[key] === value)) {
198
+ return true;
199
+ }
200
+ return Object.values(record).some(value => snapshotContainsEnvironment(value, environment));
201
+ };
202
+ // Called inside project deletion's final transaction, after run graph cleanup.
203
+ export const deleteArchivedAbandonedProjectEnvironments = (projectId) => {
204
+ const environments = db.prepare(`
205
+ SELECT environment.*, job.environment_snapshot_json
206
+ FROM execution_environments environment
207
+ JOIN bundle_deletion_jobs job ON job.project_id = environment.project_id AND job.target_key = environment.target_key
208
+ WHERE environment.project_id = ? AND job.status = 'abandoned'
209
+ `).all(projectId);
210
+ for (const row of environments) {
211
+ const { environment_snapshot_json: snapshotJson, ...environment } = row;
212
+ const activeBinding = db.prepare(`
213
+ SELECT 1 FROM execution_environment_run_bindings
214
+ WHERE project_id = ? AND environment_id = ? AND released_at IS NULL LIMIT 1
215
+ `).get(projectId, row.id);
216
+ if (activeBinding || row.operation_claim_id !== null || row.cleanup_claim_id !== null) {
217
+ throw new ExecutionEnvironmentCleanupError(`Abandoned execution environment ${row.id} still has an active binding or claim.`);
218
+ }
219
+ let snapshot;
220
+ try {
221
+ snapshot = JSON.parse(snapshotJson);
222
+ }
223
+ catch {
224
+ throw new ExecutionEnvironmentCleanupError(`Abandoned execution environment ${row.id} has no valid persisted ownership archive.`);
225
+ }
226
+ if (!snapshotContainsEnvironment(snapshot, environment)) {
227
+ throw new ExecutionEnvironmentCleanupError(`Abandoned execution environment ${row.id} has no matching persisted ownership archive.`);
228
+ }
229
+ db.prepare('DELETE FROM execution_environments WHERE project_id = ? AND id = ?').run(projectId, row.id);
230
+ }
231
+ };
232
+ //# sourceMappingURL=executionEnvironmentTargetCleanup.js.map