@eldrforge/kodrdriv 1.2.26 → 1.2.28

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 (79) hide show
  1. package/AI-FRIENDLY-LOGGING-GUIDE.md +237 -0
  2. package/AI-LOGGING-MIGRATION-COMPLETE.md +371 -0
  3. package/ALREADY-PUBLISHED-PACKAGES-FIX.md +264 -0
  4. package/AUDIT-BRANCHES-PROGRESS-FIX.md +90 -0
  5. package/AUDIT-EXAMPLE-OUTPUT.md +113 -0
  6. package/CHECKPOINT-RECOVERY-FIX.md +450 -0
  7. package/LOGGING-MIGRATION-STATUS.md +186 -0
  8. package/PARALLEL-PUBLISH-FIXES-IMPLEMENTED.md +405 -0
  9. package/PARALLEL-PUBLISH-IMPROVEMENTS-IMPLEMENTED.md +439 -0
  10. package/PARALLEL-PUBLISH-QUICK-REFERENCE.md +375 -0
  11. package/PARALLEL_EXECUTION_FIX.md +2 -2
  12. package/PUBLISH_IMPROVEMENTS_IMPLEMENTED.md +294 -0
  13. package/VERSION-AUDIT-FIX.md +333 -0
  14. package/dist/application.js +6 -6
  15. package/dist/application.js.map +1 -1
  16. package/dist/arguments.js +43 -13
  17. package/dist/arguments.js.map +1 -1
  18. package/dist/commands/audio-commit.js +18 -18
  19. package/dist/commands/audio-commit.js.map +1 -1
  20. package/dist/commands/audio-review.js +32 -32
  21. package/dist/commands/audio-review.js.map +1 -1
  22. package/dist/commands/clean.js +9 -9
  23. package/dist/commands/clean.js.map +1 -1
  24. package/dist/commands/commit.js +20 -20
  25. package/dist/commands/commit.js.map +1 -1
  26. package/dist/commands/development.js +91 -90
  27. package/dist/commands/development.js.map +1 -1
  28. package/dist/commands/link.js +36 -36
  29. package/dist/commands/link.js.map +1 -1
  30. package/dist/commands/publish.js +345 -225
  31. package/dist/commands/publish.js.map +1 -1
  32. package/dist/commands/release.js +14 -14
  33. package/dist/commands/release.js.map +1 -1
  34. package/dist/commands/review.js +15 -17
  35. package/dist/commands/review.js.map +1 -1
  36. package/dist/commands/select-audio.js +5 -5
  37. package/dist/commands/select-audio.js.map +1 -1
  38. package/dist/commands/tree.js +75 -34
  39. package/dist/commands/tree.js.map +1 -1
  40. package/dist/commands/unlink.js +39 -39
  41. package/dist/commands/unlink.js.map +1 -1
  42. package/dist/commands/updates.js +150 -14
  43. package/dist/commands/updates.js.map +1 -1
  44. package/dist/commands/versions.js +14 -13
  45. package/dist/commands/versions.js.map +1 -1
  46. package/dist/constants.js +1 -1
  47. package/dist/content/diff.js +5 -5
  48. package/dist/content/diff.js.map +1 -1
  49. package/dist/content/files.js +2 -2
  50. package/dist/content/files.js.map +1 -1
  51. package/dist/content/log.js +3 -3
  52. package/dist/content/log.js.map +1 -1
  53. package/dist/execution/CommandValidator.js +6 -6
  54. package/dist/execution/CommandValidator.js.map +1 -1
  55. package/dist/execution/DynamicTaskPool.js +33 -10
  56. package/dist/execution/DynamicTaskPool.js.map +1 -1
  57. package/dist/execution/RecoveryManager.js +99 -21
  58. package/dist/execution/RecoveryManager.js.map +1 -1
  59. package/dist/execution/TreeExecutionAdapter.js +65 -48
  60. package/dist/execution/TreeExecutionAdapter.js.map +1 -1
  61. package/dist/main.js +2 -2
  62. package/dist/main.js.map +1 -1
  63. package/dist/util/checkpointManager.js +4 -4
  64. package/dist/util/checkpointManager.js.map +1 -1
  65. package/dist/util/dependencyGraph.js +2 -2
  66. package/dist/util/dependencyGraph.js.map +1 -1
  67. package/dist/util/fileLock.js +1 -1
  68. package/dist/util/fileLock.js.map +1 -1
  69. package/dist/util/general.js +148 -15
  70. package/dist/util/general.js.map +1 -1
  71. package/dist/util/interactive.js +2 -2
  72. package/dist/util/interactive.js.map +1 -1
  73. package/dist/util/performance.js.map +1 -1
  74. package/dist/util/safety.js +13 -13
  75. package/dist/util/safety.js.map +1 -1
  76. package/dist/utils/branchState.js +567 -0
  77. package/dist/utils/branchState.js.map +1 -0
  78. package/package.json +1 -1
  79. package/scripts/update-test-log-assertions.js +73 -0
@@ -1 +1 @@
1
- {"version":3,"file":"log.js","sources":["../../src/content/log.ts"],"sourcesContent":["#!/usr/bin/env node\nimport { ExitError } from '../error/ExitError';\nimport { getLogger } from '../logging';\nimport { run } from '@eldrforge/git-tools';\nimport { DEFAULT_GIT_COMMAND_MAX_BUFFER } from '../constants';\n\nexport interface Instance {\n get(): Promise<string>;\n}\n\nexport const create = async (options: { from?: string, to?: string, limit?: number, currentBranchOnly?: boolean }): Promise<Instance> => {\n const logger = getLogger();\n\n async function get(): Promise<string> {\n try {\n logger.verbose('Gathering change information from Git');\n\n try {\n logger.debug('Executing git log');\n // Build git log range\n let range = '';\n let extraArgs = '';\n // If currentBranchOnly, show only commits unique to HEAD vs. to-branch (or main/master if not provided)\n if (options.currentBranchOnly) {\n const toBranch = options.to || 'main'; // Default to 'main' if not provided\n range = `${toBranch}..HEAD`;\n } else if (options.from && options.to) {\n range = `${options.from}..${options.to}`;\n } else if (options.from) {\n range = `${options.from}`;\n } else if (options.to) {\n range = `${options.to}`;\n } // else, no range: show all\n\n if (options.limit && options.limit > 0) {\n extraArgs += ` -n ${options.limit}`;\n }\n const gitLogCmd = `git log${range ? ' ' + range : ''}${extraArgs}`;\n logger.debug('Git log command: %s', gitLogCmd);\n const { stdout, stderr } = await run(gitLogCmd, { maxBuffer: DEFAULT_GIT_COMMAND_MAX_BUFFER });\n if (stderr) {\n logger.warn('Git log produced stderr: %s', stderr);\n }\n logger.debug('Git log output: %s', stdout);\n return stdout;\n } catch (error: any) {\n // Check if this is an empty repository (no commits) scenario\n const errorMessage = error.message || '';\n const isEmptyRepo = errorMessage.includes('does not have any commits yet') ||\n errorMessage.includes('bad default revision') ||\n errorMessage.includes('unknown revision or path not in the working tree') ||\n errorMessage.includes('ambiguous argument \\'HEAD\\'');\n\n if (isEmptyRepo) {\n logger.debug('Empty repository detected (no commits): %s', errorMessage);\n logger.verbose('No git history available, returning empty log context');\n return ''; // Return empty string for empty repositories\n }\n\n logger.error('Failed to execute git log: %s', error.message);\n throw error;\n }\n } catch (error: any) {\n // Check again at the outer level in case the error wasn't caught by the inner try-catch\n const errorMessage = error.message || '';\n const isEmptyRepo = errorMessage.includes('does not have any commits yet') ||\n errorMessage.includes('bad default revision') ||\n errorMessage.includes('unknown revision or path not in the working tree') ||\n errorMessage.includes('ambiguous argument \\'HEAD\\'');\n\n if (isEmptyRepo) {\n logger.debug('Empty repository detected at outer level: %s', errorMessage);\n logger.verbose('No git history available, returning empty log context');\n return ''; // Return empty string for empty repositories\n }\n\n logger.error('Error occurred during gather change phase: %s %s', error.message, error.stack);\n throw new ExitError('Error occurred during gather change phase');\n }\n }\n\n return { get };\n}\n\n"],"names":["create","options","logger","getLogger","get","verbose","debug","range","extraArgs","currentBranchOnly","toBranch","to","from","limit","gitLogCmd","stdout","stderr","run","maxBuffer","DEFAULT_GIT_COMMAND_MAX_BUFFER","warn","error","errorMessage","message","isEmptyRepo","includes","stack","ExitError"],"mappings":"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"}
1
+ {"version":3,"file":"log.js","sources":["../../src/content/log.ts"],"sourcesContent":["#!/usr/bin/env node\nimport { ExitError } from '../error/ExitError';\nimport { getLogger } from '../logging';\nimport { run } from '@eldrforge/git-tools';\nimport { DEFAULT_GIT_COMMAND_MAX_BUFFER } from '../constants';\n\nexport interface Instance {\n get(): Promise<string>;\n}\n\nexport const create = async (options: { from?: string, to?: string, limit?: number, currentBranchOnly?: boolean }): Promise<Instance> => {\n const logger = getLogger();\n\n async function get(): Promise<string> {\n try {\n logger.verbose('Gathering change information from Git');\n\n try {\n logger.debug('Executing git log');\n // Build git log range\n let range = '';\n let extraArgs = '';\n // If currentBranchOnly, show only commits unique to HEAD vs. to-branch (or main/master if not provided)\n if (options.currentBranchOnly) {\n const toBranch = options.to || 'main'; // Default to 'main' if not provided\n range = `${toBranch}..HEAD`;\n } else if (options.from && options.to) {\n range = `${options.from}..${options.to}`;\n } else if (options.from) {\n range = `${options.from}`;\n } else if (options.to) {\n range = `${options.to}`;\n } // else, no range: show all\n\n if (options.limit && options.limit > 0) {\n extraArgs += ` -n ${options.limit}`;\n }\n const gitLogCmd = `git log${range ? ' ' + range : ''}${extraArgs}`;\n logger.debug('Git log command: %s', gitLogCmd);\n const { stdout, stderr } = await run(gitLogCmd, { maxBuffer: DEFAULT_GIT_COMMAND_MAX_BUFFER });\n if (stderr) {\n logger.warn('GIT_LOG_STDERR: Git log produced stderr output | Stderr: %s | Impact: May indicate warnings', stderr);\n }\n logger.debug('Git log output: %s', stdout);\n return stdout;\n } catch (error: any) {\n // Check if this is an empty repository (no commits) scenario\n const errorMessage = error.message || '';\n const isEmptyRepo = errorMessage.includes('does not have any commits yet') ||\n errorMessage.includes('bad default revision') ||\n errorMessage.includes('unknown revision or path not in the working tree') ||\n errorMessage.includes('ambiguous argument \\'HEAD\\'');\n\n if (isEmptyRepo) {\n logger.debug('Empty repository detected (no commits): %s', errorMessage);\n logger.verbose('No git history available, returning empty log context');\n return ''; // Return empty string for empty repositories\n }\n\n logger.error('GIT_LOG_FAILED: Failed to execute git log command | Error: %s | Impact: Cannot gather commit history', error.message);\n throw error;\n }\n } catch (error: any) {\n // Check again at the outer level in case the error wasn't caught by the inner try-catch\n const errorMessage = error.message || '';\n const isEmptyRepo = errorMessage.includes('does not have any commits yet') ||\n errorMessage.includes('bad default revision') ||\n errorMessage.includes('unknown revision or path not in the working tree') ||\n errorMessage.includes('ambiguous argument \\'HEAD\\'');\n\n if (isEmptyRepo) {\n logger.debug('Empty repository detected at outer level: %s', errorMessage);\n logger.verbose('No git history available, returning empty log context');\n return ''; // Return empty string for empty repositories\n }\n\n logger.error('LOG_GATHER_ERROR: Error during change gathering phase | Error: %s | Stack: %s | Impact: Cannot collect log', error.message, error.stack);\n throw new ExitError('Error occurred during gather change phase');\n }\n }\n\n return { get };\n}\n\n"],"names":["create","options","logger","getLogger","get","verbose","debug","range","extraArgs","currentBranchOnly","toBranch","to","from","limit","gitLogCmd","stdout","stderr","run","maxBuffer","DEFAULT_GIT_COMMAND_MAX_BUFFER","warn","error","errorMessage","message","isEmptyRepo","includes","stack","ExitError"],"mappings":"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"}
@@ -116,21 +116,21 @@ function _define_property(obj, key, value) {
116
116
  * Log validation results
117
117
  */ static logValidation(result) {
118
118
  if (!result.valid) {
119
- this.logger.error(' Command validation failed for parallel execution:');
119
+ this.logger.error('VALIDATOR_FAILED: Command validation failed for parallel execution | Error Count: ' + result.issues.length + ' | Impact: Cannot proceed safely');
120
120
  for (const issue of result.issues){
121
- this.logger.error(` ${issue}`);
121
+ this.logger.error(`VALIDATOR_ERROR_DETAIL: Validation issue | Issue: ${issue}`);
122
122
  }
123
123
  }
124
124
  if (result.warnings.length > 0) {
125
- this.logger.warn('⚠️ Parallel execution warnings:');
125
+ this.logger.warn('VALIDATOR_WARNINGS: Command validation warnings for parallel execution | Warning Count: ' + result.warnings.length + ' | Impact: May cause issues');
126
126
  for (const warning of result.warnings){
127
- this.logger.warn(` ${warning}`);
127
+ this.logger.warn(`VALIDATOR_WARNING_DETAIL: Validation warning | Warning: ${warning}`);
128
128
  }
129
129
  }
130
130
  if (result.recommendations.length > 0 && this.logger.verbose) {
131
- this.logger.info('💡 Recommendations:');
131
+ this.logger.info('VALIDATOR_RECOMMENDATIONS: Command validation recommendations | Count: ' + result.recommendations.length + ' | Purpose: Improve parallel execution');
132
132
  for (const rec of result.recommendations){
133
- this.logger.info(` ${rec}`);
133
+ this.logger.info(`VALIDATOR_RECOMMENDATION_DETAIL: ${rec}`);
134
134
  }
135
135
  }
136
136
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CommandValidator.js","sources":["../../src/execution/CommandValidator.ts"],"sourcesContent":["import { getLogger } from '../logging';\n\nexport interface ValidationResult {\n valid: boolean;\n issues: string[];\n warnings: string[];\n recommendations: string[];\n}\n\n/**\n * CommandValidator checks if commands are safe for parallel execution\n */\nexport class CommandValidator {\n private static logger = getLogger();\n\n /**\n * Validate a command for parallel execution\n */\n static validateForParallel(command: string, builtInCommand?: string): ValidationResult {\n const issues: string[] = [];\n const warnings: string[] = [];\n const recommendations: string[] = [];\n\n // Check for inherently unsafe operations\n const unsafePatterns = [\n { pattern: /git\\s+checkout/, message: 'Branch switching is not safe for parallel execution' },\n { pattern: /git\\s+switch/, message: 'Branch switching is not safe for parallel execution' },\n { pattern: /git\\s+rebase/, message: 'Rebase operations should not run in parallel' },\n { pattern: /git\\s+merge/, message: 'Merge operations should not run in parallel' },\n { pattern: /rm\\s+-rf\\s+\\//, message: 'Dangerous deletion commands detected' },\n { pattern: /sudo/, message: 'Sudo commands should not run in parallel' },\n { pattern: /format/, message: 'Format commands may be destructive' }\n ];\n\n for (const { pattern, message } of unsafePatterns) {\n if (pattern.test(command)) {\n issues.push(message);\n }\n }\n\n // Check for potentially problematic operations\n const warningPatterns = [\n { pattern: /npm\\s+(link|unlink)/, message: 'npm link/unlink may conflict in parallel execution' },\n { pattern: /npm\\s+install/, message: 'npm install in parallel may cause lock file conflicts' },\n { pattern: /npm\\s+ci/, message: 'npm ci in parallel may cause lock file conflicts' },\n { pattern: /package-lock\\.json/, message: 'Operations modifying package-lock.json may conflict' },\n { pattern: /node_modules/, message: 'Operations in node_modules may conflict' }\n ];\n\n for (const { pattern, message } of warningPatterns) {\n if (pattern.test(command)) {\n warnings.push(message);\n }\n }\n\n // Built-in command specific checks\n if (builtInCommand === 'commit') {\n warnings.push('Parallel commits: Recommend max concurrency of 2 to avoid conflicts');\n recommendations.push('Use: --max-concurrency 2');\n }\n\n if (builtInCommand === 'publish') {\n warnings.push('Parallel publish: PR checks may take significant time');\n warnings.push('Version propagation happens automatically between dependency levels');\n recommendations.push('Use: --max-concurrency 2-3 for publish operations');\n recommendations.push('Monitor with: kodrdriv tree --status-parallel');\n }\n\n if (builtInCommand === 'link' || builtInCommand === 'unlink') {\n warnings.push('Link operations may have filesystem race conditions');\n recommendations.push('Consider sequential execution for link/unlink');\n }\n\n // Check for output redirection\n if (command.includes('>') || command.includes('>>')) {\n warnings.push('Output redirection in parallel may interleave output');\n }\n\n return {\n valid: issues.length === 0,\n issues,\n warnings,\n recommendations\n };\n }\n\n /**\n * Log validation results\n */\n static logValidation(result: ValidationResult): void {\n if (!result.valid) {\n this.logger.error(' Command validation failed for parallel execution:');\n for (const issue of result.issues) {\n this.logger.error(` ${issue}`);\n }\n }\n\n if (result.warnings.length > 0) {\n this.logger.warn('⚠️ Parallel execution warnings:');\n for (const warning of result.warnings) {\n this.logger.warn(` ${warning}`);\n }\n }\n\n if (result.recommendations.length > 0 && (this.logger as any).verbose) {\n this.logger.info('💡 Recommendations:');\n for (const rec of result.recommendations) {\n this.logger.info(` ${rec}`);\n }\n }\n }\n\n /**\n * Get recommended concurrency for a command type\n */\n static getRecommendedConcurrency(builtInCommand?: string, cpuCount: number = 4): number {\n switch (builtInCommand) {\n case 'commit':\n // Lower concurrency for commit to reduce conflicts\n return Math.min(2, cpuCount);\n\n case 'publish':\n // Moderate concurrency for publish (long-running)\n return Math.max(2, Math.floor(cpuCount / 2));\n\n case 'link':\n case 'unlink':\n // Very conservative for link operations\n return 1; // Sequential recommended\n\n default:\n // Full concurrency for general commands\n return cpuCount;\n }\n }\n}\n"],"names":["CommandValidator","validateForParallel","command","builtInCommand","issues","warnings","recommendations","unsafePatterns","pattern","message","test","push","warningPatterns","includes","valid","length","logValidation","result","logger","error","issue","warn","warning","verbose","info","rec","getRecommendedConcurrency","cpuCount","Math","min","max","floor","getLogger"],"mappings":";;;;;;;;;;;;;;;AASA;;AAEC,IACM,MAAMA,gBAAAA,CAAAA;AAGT;;AAEC,QACD,OAAOC,mBAAAA,CAAoBC,OAAe,EAAEC,cAAuB,EAAoB;AACnF,QAAA,MAAMC,SAAmB,EAAE;AAC3B,QAAA,MAAMC,WAAqB,EAAE;AAC7B,QAAA,MAAMC,kBAA4B,EAAE;;AAGpC,QAAA,MAAMC,cAAAA,GAAiB;AACnB,YAAA;gBAAEC,OAAAA,EAAS,gBAAA;gBAAkBC,OAAAA,EAAS;AAAsD,aAAA;AAC5F,YAAA;gBAAED,OAAAA,EAAS,cAAA;gBAAgBC,OAAAA,EAAS;AAAsD,aAAA;AAC1F,YAAA;gBAAED,OAAAA,EAAS,cAAA;gBAAgBC,OAAAA,EAAS;AAA+C,aAAA;AACnF,YAAA;gBAAED,OAAAA,EAAS,aAAA;gBAAeC,OAAAA,EAAS;AAA8C,aAAA;AACjF,YAAA;gBAAED,OAAAA,EAAS,eAAA;gBAAiBC,OAAAA,EAAS;AAAuC,aAAA;AAC5E,YAAA;gBAAED,OAAAA,EAAS,MAAA;gBAAQC,OAAAA,EAAS;AAA2C,aAAA;AACvE,YAAA;gBAAED,OAAAA,EAAS,QAAA;gBAAUC,OAAAA,EAAS;AAAqC;AACtE,SAAA;AAED,QAAA,KAAK,MAAM,EAAED,OAAO,EAAEC,OAAO,EAAE,IAAIF,cAAAA,CAAgB;YAC/C,IAAIC,OAAAA,CAAQE,IAAI,CAACR,OAAAA,CAAAA,EAAU;AACvBE,gBAAAA,MAAAA,CAAOO,IAAI,CAACF,OAAAA,CAAAA;AAChB,YAAA;AACJ,QAAA;;AAGA,QAAA,MAAMG,eAAAA,GAAkB;AACpB,YAAA;gBAAEJ,OAAAA,EAAS,qBAAA;gBAAuBC,OAAAA,EAAS;AAAqD,aAAA;AAChG,YAAA;gBAAED,OAAAA,EAAS,eAAA;gBAAiBC,OAAAA,EAAS;AAAwD,aAAA;AAC7F,YAAA;gBAAED,OAAAA,EAAS,UAAA;gBAAYC,OAAAA,EAAS;AAAmD,aAAA;AACnF,YAAA;gBAAED,OAAAA,EAAS,oBAAA;gBAAsBC,OAAAA,EAAS;AAAsD,aAAA;AAChG,YAAA;gBAAED,OAAAA,EAAS,cAAA;gBAAgBC,OAAAA,EAAS;AAA0C;AACjF,SAAA;AAED,QAAA,KAAK,MAAM,EAAED,OAAO,EAAEC,OAAO,EAAE,IAAIG,eAAAA,CAAiB;YAChD,IAAIJ,OAAAA,CAAQE,IAAI,CAACR,OAAAA,CAAAA,EAAU;AACvBG,gBAAAA,QAAAA,CAASM,IAAI,CAACF,OAAAA,CAAAA;AAClB,YAAA;AACJ,QAAA;;AAGA,QAAA,IAAIN,mBAAmB,QAAA,EAAU;AAC7BE,YAAAA,QAAAA,CAASM,IAAI,CAAC,qEAAA,CAAA;AACdL,YAAAA,eAAAA,CAAgBK,IAAI,CAAC,0BAAA,CAAA;AACzB,QAAA;AAEA,QAAA,IAAIR,mBAAmB,SAAA,EAAW;AAC9BE,YAAAA,QAAAA,CAASM,IAAI,CAAC,uDAAA,CAAA;AACdN,YAAAA,QAAAA,CAASM,IAAI,CAAC,qEAAA,CAAA;AACdL,YAAAA,eAAAA,CAAgBK,IAAI,CAAC,mDAAA,CAAA;AACrBL,YAAAA,eAAAA,CAAgBK,IAAI,CAAC,+CAAA,CAAA;AACzB,QAAA;QAEA,IAAIR,cAAAA,KAAmB,MAAA,IAAUA,cAAAA,KAAmB,QAAA,EAAU;AAC1DE,YAAAA,QAAAA,CAASM,IAAI,CAAC,qDAAA,CAAA;AACdL,YAAAA,eAAAA,CAAgBK,IAAI,CAAC,+CAAA,CAAA;AACzB,QAAA;;AAGA,QAAA,IAAIT,QAAQW,QAAQ,CAAC,QAAQX,OAAAA,CAAQW,QAAQ,CAAC,IAAA,CAAA,EAAO;AACjDR,YAAAA,QAAAA,CAASM,IAAI,CAAC,sDAAA,CAAA;AAClB,QAAA;QAEA,OAAO;YACHG,KAAAA,EAAOV,MAAAA,CAAOW,MAAM,KAAK,CAAA;AACzBX,YAAAA,MAAAA;AACAC,YAAAA,QAAAA;AACAC,YAAAA;AACJ,SAAA;AACJ,IAAA;AAEA;;QAGA,OAAOU,aAAAA,CAAcC,MAAwB,EAAQ;QACjD,IAAI,CAACA,MAAAA,CAAOH,KAAK,EAAE;AACf,YAAA,IAAI,CAACI,MAAM,CAACC,KAAK,CAAC,qDAAA,CAAA;AAClB,YAAA,KAAK,MAAMC,KAAAA,IAASH,MAAAA,CAAOb,MAAM,CAAE;gBAC/B,IAAI,CAACc,MAAM,CAACC,KAAK,CAAC,CAAC,KAAK,EAAEC,KAAAA,CAAAA,CAAO,CAAA;AACrC,YAAA;AACJ,QAAA;AAEA,QAAA,IAAIH,MAAAA,CAAOZ,QAAQ,CAACU,MAAM,GAAG,CAAA,EAAG;AAC5B,YAAA,IAAI,CAACG,MAAM,CAACG,IAAI,CAAC,kCAAA,CAAA;AACjB,YAAA,KAAK,MAAMC,OAAAA,IAAWL,MAAAA,CAAOZ,QAAQ,CAAE;gBACnC,IAAI,CAACa,MAAM,CAACG,IAAI,CAAC,CAAC,KAAK,EAAEC,OAAAA,CAAAA,CAAS,CAAA;AACtC,YAAA;AACJ,QAAA;AAEA,QAAA,IAAIL,MAAAA,CAAOX,eAAe,CAACS,MAAM,GAAG,CAAA,IAAK,IAAK,CAACG,MAAM,CAASK,OAAO,EAAE;AACnE,YAAA,IAAI,CAACL,MAAM,CAACM,IAAI,CAAC,qBAAA,CAAA;AACjB,YAAA,KAAK,MAAMC,GAAAA,IAAOR,MAAAA,CAAOX,eAAe,CAAE;gBACtC,IAAI,CAACY,MAAM,CAACM,IAAI,CAAC,CAAC,KAAK,EAAEC,GAAAA,CAAAA,CAAK,CAAA;AAClC,YAAA;AACJ,QAAA;AACJ,IAAA;AAEA;;AAEC,QACD,OAAOC,yBAAAA,CAA0BvB,cAAuB,EAAEwB,QAAAA,GAAmB,CAAC,EAAU;QACpF,OAAQxB,cAAAA;YACJ,KAAK,QAAA;;gBAED,OAAOyB,IAAAA,CAAKC,GAAG,CAAC,CAAA,EAAGF,QAAAA,CAAAA;YAEvB,KAAK,SAAA;;AAED,gBAAA,OAAOC,KAAKE,GAAG,CAAC,GAAGF,IAAAA,CAAKG,KAAK,CAACJ,QAAAA,GAAW,CAAA,CAAA,CAAA;YAE7C,KAAK,MAAA;YACL,KAAK,QAAA;;AAED,gBAAA,OAAO;AAEX,YAAA;;gBAEI,OAAOA,QAAAA;AACf;AACJ,IAAA;AACJ;AA1HI,gBAAA,CADS3B,kBACMkB,QAAAA,EAASc,SAAAA,EAAAA,CAAAA;;;;"}
1
+ {"version":3,"file":"CommandValidator.js","sources":["../../src/execution/CommandValidator.ts"],"sourcesContent":["import { getLogger } from '../logging';\n\nexport interface ValidationResult {\n valid: boolean;\n issues: string[];\n warnings: string[];\n recommendations: string[];\n}\n\n/**\n * CommandValidator checks if commands are safe for parallel execution\n */\nexport class CommandValidator {\n private static logger = getLogger();\n\n /**\n * Validate a command for parallel execution\n */\n static validateForParallel(command: string, builtInCommand?: string): ValidationResult {\n const issues: string[] = [];\n const warnings: string[] = [];\n const recommendations: string[] = [];\n\n // Check for inherently unsafe operations\n const unsafePatterns = [\n { pattern: /git\\s+checkout/, message: 'Branch switching is not safe for parallel execution' },\n { pattern: /git\\s+switch/, message: 'Branch switching is not safe for parallel execution' },\n { pattern: /git\\s+rebase/, message: 'Rebase operations should not run in parallel' },\n { pattern: /git\\s+merge/, message: 'Merge operations should not run in parallel' },\n { pattern: /rm\\s+-rf\\s+\\//, message: 'Dangerous deletion commands detected' },\n { pattern: /sudo/, message: 'Sudo commands should not run in parallel' },\n { pattern: /format/, message: 'Format commands may be destructive' }\n ];\n\n for (const { pattern, message } of unsafePatterns) {\n if (pattern.test(command)) {\n issues.push(message);\n }\n }\n\n // Check for potentially problematic operations\n const warningPatterns = [\n { pattern: /npm\\s+(link|unlink)/, message: 'npm link/unlink may conflict in parallel execution' },\n { pattern: /npm\\s+install/, message: 'npm install in parallel may cause lock file conflicts' },\n { pattern: /npm\\s+ci/, message: 'npm ci in parallel may cause lock file conflicts' },\n { pattern: /package-lock\\.json/, message: 'Operations modifying package-lock.json may conflict' },\n { pattern: /node_modules/, message: 'Operations in node_modules may conflict' }\n ];\n\n for (const { pattern, message } of warningPatterns) {\n if (pattern.test(command)) {\n warnings.push(message);\n }\n }\n\n // Built-in command specific checks\n if (builtInCommand === 'commit') {\n warnings.push('Parallel commits: Recommend max concurrency of 2 to avoid conflicts');\n recommendations.push('Use: --max-concurrency 2');\n }\n\n if (builtInCommand === 'publish') {\n warnings.push('Parallel publish: PR checks may take significant time');\n warnings.push('Version propagation happens automatically between dependency levels');\n recommendations.push('Use: --max-concurrency 2-3 for publish operations');\n recommendations.push('Monitor with: kodrdriv tree --status-parallel');\n }\n\n if (builtInCommand === 'link' || builtInCommand === 'unlink') {\n warnings.push('Link operations may have filesystem race conditions');\n recommendations.push('Consider sequential execution for link/unlink');\n }\n\n // Check for output redirection\n if (command.includes('>') || command.includes('>>')) {\n warnings.push('Output redirection in parallel may interleave output');\n }\n\n return {\n valid: issues.length === 0,\n issues,\n warnings,\n recommendations\n };\n }\n\n /**\n * Log validation results\n */\n static logValidation(result: ValidationResult): void {\n if (!result.valid) {\n this.logger.error('VALIDATOR_FAILED: Command validation failed for parallel execution | Error Count: ' + result.issues.length + ' | Impact: Cannot proceed safely');\n for (const issue of result.issues) {\n this.logger.error(`VALIDATOR_ERROR_DETAIL: Validation issue | Issue: ${issue}`);\n }\n }\n\n if (result.warnings.length > 0) {\n this.logger.warn('VALIDATOR_WARNINGS: Command validation warnings for parallel execution | Warning Count: ' + result.warnings.length + ' | Impact: May cause issues');\n for (const warning of result.warnings) {\n this.logger.warn(`VALIDATOR_WARNING_DETAIL: Validation warning | Warning: ${warning}`);\n }\n }\n\n if (result.recommendations.length > 0 && (this.logger as any).verbose) {\n this.logger.info('VALIDATOR_RECOMMENDATIONS: Command validation recommendations | Count: ' + result.recommendations.length + ' | Purpose: Improve parallel execution');\n for (const rec of result.recommendations) {\n this.logger.info(`VALIDATOR_RECOMMENDATION_DETAIL: ${rec}`);\n }\n }\n }\n\n /**\n * Get recommended concurrency for a command type\n */\n static getRecommendedConcurrency(builtInCommand?: string, cpuCount: number = 4): number {\n switch (builtInCommand) {\n case 'commit':\n // Lower concurrency for commit to reduce conflicts\n return Math.min(2, cpuCount);\n\n case 'publish':\n // Moderate concurrency for publish (long-running)\n return Math.max(2, Math.floor(cpuCount / 2));\n\n case 'link':\n case 'unlink':\n // Very conservative for link operations\n return 1; // Sequential recommended\n\n default:\n // Full concurrency for general commands\n return cpuCount;\n }\n }\n}\n"],"names":["CommandValidator","validateForParallel","command","builtInCommand","issues","warnings","recommendations","unsafePatterns","pattern","message","test","push","warningPatterns","includes","valid","length","logValidation","result","logger","error","issue","warn","warning","verbose","info","rec","getRecommendedConcurrency","cpuCount","Math","min","max","floor","getLogger"],"mappings":"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"}
@@ -26,7 +26,7 @@ function _define_property(obj, key, value) {
26
26
  /**
27
27
  * Main execution entry point
28
28
  */ async execute() {
29
- this.logger.info(`Starting parallel execution with max concurrency: ${this.config.maxConcurrency}`);
29
+ this.logger.info(`EXECUTION_STARTING: Starting parallel execution | Max Concurrency: ${this.config.maxConcurrency} | Mode: parallel | Purpose: Execute packages with dependency awareness`);
30
30
  this.emit('execution:started', {
31
31
  totalPackages: this.graph.packages.size
32
32
  });
@@ -185,7 +185,7 @@ function _define_property(obj, key, value) {
185
185
  if (result.skippedNoChanges) {
186
186
  this.state.skippedNoChanges.push(packageName);
187
187
  const duration = this.packageDurations.get(packageName);
188
- this.logger.info(`⊘ ${packageName} skipped - no code changes (${this.formatDuration(duration)})`);
188
+ this.logger.info(`PACKAGE_SKIPPED_NO_CHANGES: Package skipped due to no code changes | Package: ${packageName} | Duration: ${this.formatDuration(duration)} | Reason: no-changes`);
189
189
  this.emit('package:skipped-no-changes', {
190
190
  packageName,
191
191
  result
@@ -193,7 +193,7 @@ function _define_property(obj, key, value) {
193
193
  } else {
194
194
  this.state.completed.push(packageName);
195
195
  const duration = this.packageDurations.get(packageName);
196
- this.logger.info(`✓ ${packageName} completed successfully (${this.formatDuration(duration)})`);
196
+ this.logger.info(`PACKAGE_EXECUTION_COMPLETE: Package execution finished successfully | Package: ${packageName} | Duration: ${this.formatDuration(duration)} | Status: success`);
197
197
  this.emit('package:completed', {
198
198
  packageName,
199
199
  result
@@ -245,7 +245,7 @@ function _define_property(obj, key, value) {
245
245
  errorDetails
246
246
  };
247
247
  this.state.failed.push(failureInfo);
248
- this.logger.error(`✗ ${packageName} failed permanently: ${error.message}`);
248
+ this.logger.error(`PACKAGE_FAILED_PERMANENT: Package failed permanently | Package: ${packageName} | Error: ${error.message} | Status: failed | Retriable: false`);
249
249
  this.emit('package:failed', {
250
250
  packageName,
251
251
  error
@@ -265,7 +265,7 @@ function _define_property(obj, key, value) {
265
265
  // Add to skipped
266
266
  if (!this.state.skipped.includes(dependent)) {
267
267
  this.state.skipped.push(dependent);
268
- this.logger.warn(`⊘ Skipping ${dependent} (depends on failed ${failedPackage})`);
268
+ this.logger.warn(`PACKAGE_SKIPPED_DEPENDENCY: Package skipped due to failed dependency | Package: ${dependent} | Failed Dependency: ${failedPackage} | Reason: dependency-failed`);
269
269
  this.emit('package:skipped', {
270
270
  packageName: dependent,
271
271
  reason: `Depends on failed ${failedPackage}`
@@ -362,13 +362,13 @@ function _define_property(obj, key, value) {
362
362
  */ async loadCheckpoint() {
363
363
  const checkpoint = await this.checkpointManager.load();
364
364
  if (!checkpoint) {
365
- this.logger.warn('No checkpoint found, starting fresh');
365
+ this.logger.warn('CHECKPOINT_NOT_FOUND: No checkpoint file found | Action: Starting fresh execution | Path: ' + this.config.checkpointPath);
366
366
  return;
367
367
  }
368
- this.logger.info('Loading checkpoint...');
369
- this.logger.info(`Execution ID: ${checkpoint.executionId}`);
370
- this.logger.info(`Completed: ${checkpoint.state.completed.length} packages`);
371
- this.logger.info(`Failed: ${checkpoint.state.failed.length} packages`);
368
+ this.logger.info('CHECKPOINT_LOADING: Loading execution checkpoint | Purpose: Resume previous execution | Path: ' + this.config.checkpointPath);
369
+ this.logger.info(`CHECKPOINT_EXECUTION_ID: Checkpoint execution identifier | ID: ${checkpoint.executionId}`);
370
+ this.logger.info(`CHECKPOINT_STATE_COMPLETED: Completed packages from checkpoint | Count: ${checkpoint.state.completed.length} packages`);
371
+ this.logger.info(`CHECKPOINT_STATE_FAILED: Failed packages from checkpoint | Count: ${checkpoint.state.failed.length} packages`);
372
372
  // Restore state
373
373
  this.executionId = checkpoint.executionId;
374
374
  this.startTime = new Date(checkpoint.totalStartTime);
@@ -392,6 +392,29 @@ function _define_property(obj, key, value) {
392
392
  this.state.pending.push(running.name);
393
393
  }
394
394
  this.state.running = [];
395
+ // CRITICAL FIX: Re-evaluate skipped packages
396
+ // After loading checkpoint (especially with --mark-completed), packages that were
397
+ // skipped due to failed dependencies might now be eligible to run if those
398
+ // dependencies are now completed. Move them back to pending for reassessment.
399
+ const unblocked = [];
400
+ for (const packageName of this.state.skipped){
401
+ // Check if all dependencies are now completed
402
+ const dependencies = this.graph.edges.get(packageName) || new Set();
403
+ const allDepsCompleted = Array.from(dependencies).every((dep)=>this.state.completed.includes(dep) || this.state.skippedNoChanges.includes(dep));
404
+ // Check if any dependencies are still failed
405
+ const anyDepsFailed = Array.from(dependencies).some((dep)=>this.state.failed.some((f)=>f.name === dep));
406
+ if (allDepsCompleted && !anyDepsFailed) {
407
+ unblocked.push(packageName);
408
+ }
409
+ }
410
+ // Move unblocked packages back to pending
411
+ if (unblocked.length > 0) {
412
+ this.logger.info(`PACKAGES_UNBLOCKED: Dependencies satisfied, packages now ready | Count: ${unblocked.length} | Packages: ${unblocked.join(', ')} | Status: ready-to-execute`);
413
+ for (const packageName of unblocked){
414
+ this.state.skipped = this.state.skipped.filter((p)=>p !== packageName);
415
+ this.state.pending.push(packageName);
416
+ }
417
+ }
395
418
  }
396
419
  /**
397
420
  * Build execution result
@@ -1 +1 @@
1
- {"version":3,"file":"DynamicTaskPool.js","sources":["../../src/execution/DynamicTaskPool.ts"],"sourcesContent":["import { EventEmitter } from 'events';\nimport { randomUUID } from 'crypto';\nimport { getLogger } from '../logging';\nimport { Config } from '../types';\nimport {\n DependencyGraph,\n findAllDependents\n} from '../util/dependencyGraph';\nimport {\n ParallelExecutionCheckpoint,\n ExecutionState,\n ExecutionResult,\n PackageResult,\n ExecutionMetrics,\n FailedPackageSnapshot\n} from '../types/parallelExecution';\nimport { CheckpointManager } from '../util/checkpointManager';\nimport { DependencyChecker } from './DependencyChecker';\nimport { ResourceMonitor } from './ResourceMonitor';\nimport { Scheduler } from './Scheduler';\n\nexport interface PoolConfig {\n graph: DependencyGraph;\n maxConcurrency: number;\n command: string;\n config: Config;\n checkpointPath?: string;\n continue?: boolean;\n maxRetries?: number;\n initialRetryDelay?: number;\n maxRetryDelay?: number;\n backoffMultiplier?: number;\n}\n\ninterface CompletedTask {\n packageName: string;\n result: PackageResult | null;\n error: Error | null;\n}\n\ninterface RunningTask {\n packageName: string;\n startTime: Date;\n promise: Promise<PackageResult>;\n controller: AbortController;\n}\n\n/**\n * DynamicTaskPool manages parallel execution of packages with dependency awareness\n */\nexport class DynamicTaskPool extends EventEmitter {\n private config: PoolConfig;\n private graph: DependencyGraph;\n private state: ExecutionState;\n private dependencyChecker: DependencyChecker;\n private resourceMonitor: ResourceMonitor;\n private scheduler: Scheduler;\n private checkpointManager: CheckpointManager;\n private logger = getLogger();\n\n // Execution tracking\n private executionId: string;\n private startTime: Date;\n private runningTasks = new Map<string, RunningTask>();\n private packageStartTimes = new Map<string, Date>();\n private packageEndTimes = new Map<string, Date>();\n private packageDurations = new Map<string, number>();\n private retryAttempts = new Map<string, number>();\n private publishedVersions: Array<{name: string, version: string, time: Date}> = [];\n\n constructor(config: PoolConfig) {\n super();\n this.config = config;\n this.graph = config.graph;\n this.executionId = randomUUID();\n this.startTime = new Date();\n\n // Initialize components\n this.dependencyChecker = new DependencyChecker(this.graph);\n this.resourceMonitor = new ResourceMonitor(config.maxConcurrency);\n this.scheduler = new Scheduler(this.graph, this.dependencyChecker);\n this.checkpointManager = new CheckpointManager(\n config.checkpointPath || process.cwd()\n );\n\n // Initialize state\n this.state = this.initializeState();\n }\n\n /**\n * Main execution entry point\n */\n async execute(): Promise<ExecutionResult> {\n this.logger.info(`Starting parallel execution with max concurrency: ${this.config.maxConcurrency}`);\n this.emit('execution:started', { totalPackages: this.graph.packages.size });\n\n try {\n // Load checkpoint if continuing\n if (this.config.continue) {\n await this.loadCheckpoint();\n }\n\n // Initialize ready queue\n this.updateReadyQueue();\n\n // Main execution loop\n while (!this.isComplete()) {\n // Schedule as many packages as we can\n const availableSlots = this.resourceMonitor.getAvailableSlots();\n if (availableSlots > 0 && this.state.ready.length > 0) {\n const toSchedule = this.scheduler.getNext(availableSlots, this.state);\n\n for (const packageName of toSchedule) {\n await this.schedulePackage(packageName);\n }\n }\n\n // Check if we're stuck\n if (this.runningTasks.size === 0) {\n if (this.state.ready.length > 0) {\n throw new Error('Deadlock detected: packages ready but cannot execute');\n }\n break; // No more work to do\n }\n\n // Wait for next package to complete\n const completedTask = await this.waitForNext();\n await this.handleTaskCompletion(completedTask);\n\n // Update ready queue\n this.updateReadyQueue();\n\n // Save checkpoint periodically\n if (this.shouldCheckpoint()) {\n await this.saveCheckpoint();\n }\n }\n\n // Final checkpoint and cleanup\n // Only cleanup if everything completed (no failures, no skipped packages due to dependencies)\n // Note: skippedNoChanges is OK - those packages successfully ran but had nothing to do\n const allCompleted = this.state.failed.length === 0 && this.state.skipped.length === 0;\n if (allCompleted) {\n await this.checkpointManager.cleanup();\n } else {\n await this.saveCheckpoint();\n }\n\n // Build and return result\n const result = this.buildExecutionResult();\n this.emit('execution:completed', { result });\n\n return result;\n } catch (error) {\n // Save checkpoint on error\n await this.saveCheckpoint();\n throw error;\n }\n }\n\n /**\n * Initialize execution state\n */\n private initializeState(): ExecutionState {\n const buildOrder = Array.from(this.graph.packages.keys());\n\n return {\n pending: [...buildOrder],\n ready: [],\n running: [],\n completed: [],\n failed: [],\n skipped: [],\n skippedNoChanges: []\n };\n }\n\n /**\n * Schedule a package for execution\n */\n private async schedulePackage(packageName: string): Promise<void> {\n // Move from ready to running\n this.state.ready = this.state.ready.filter(p => p !== packageName);\n\n // Allocate resource\n if (!this.resourceMonitor.allocate()) {\n throw new Error(`Failed to allocate resource for ${packageName}`);\n }\n\n // Record start time\n this.packageStartTimes.set(packageName, new Date());\n\n // Create abort controller\n const controller = new AbortController();\n\n // Start execution\n const promise = this.executePackage(packageName, controller.signal);\n\n // Track running task\n const task: RunningTask = {\n packageName,\n startTime: new Date(),\n promise,\n controller\n };\n\n this.runningTasks.set(packageName, task);\n\n // Update state\n this.state.running.push({\n name: packageName,\n startTime: task.startTime.toISOString(),\n elapsedTime: 0\n });\n\n // Emit event\n this.emit('package:started', { packageName });\n\n this.logger.verbose(\n `Scheduled ${packageName} (${this.runningTasks.size}/${this.config.maxConcurrency} slots used)`\n );\n }\n\n /**\n * Execute a single package (placeholder - will be overridden or use callback)\n */\n private async executePackage(\n _packageName: string,\n _signal: AbortSignal\n ): Promise<PackageResult> {\n // This is a placeholder that will be replaced with actual execution logic\n // In the real implementation, this would call the tree.ts executePackage function\n throw new Error('executePackage must be implemented');\n }\n\n /**\n * Wait for next task to complete\n */\n private async waitForNext(): Promise<CompletedTask> {\n const runningTasks = Array.from(this.runningTasks.entries());\n\n const promises = runningTasks.map(([name, task]) =>\n task.promise\n .then(result => ({ packageName: name, result, error: null }))\n .catch(error => ({ packageName: name, result: null, error }))\n );\n\n return await Promise.race(promises);\n }\n\n /**\n * Handle task completion\n */\n private async handleTaskCompletion(task: CompletedTask): Promise<void> {\n const { packageName, result, error } = task;\n\n // Remove from running\n this.runningTasks.delete(packageName);\n this.state.running = this.state.running.filter(r => r.name !== packageName);\n this.resourceMonitor.release();\n\n // Record timing\n const endTime = new Date();\n this.packageEndTimes.set(packageName, endTime);\n\n const startTime = this.packageStartTimes.get(packageName)!;\n const duration = endTime.getTime() - startTime.getTime();\n this.packageDurations.set(packageName, duration);\n\n if (error) {\n await this.handleFailure(packageName, error);\n } else {\n await this.handleSuccess(packageName, result!);\n }\n }\n\n /**\n * Handle successful package completion\n */\n private async handleSuccess(packageName: string, result: PackageResult): Promise<void> {\n // Check if this was skipped due to no changes\n if (result.skippedNoChanges) {\n this.state.skippedNoChanges.push(packageName);\n const duration = this.packageDurations.get(packageName)!;\n this.logger.info(`⊘ ${packageName} skipped - no code changes (${this.formatDuration(duration)})`);\n this.emit('package:skipped-no-changes', { packageName, result });\n } else {\n this.state.completed.push(packageName);\n const duration = this.packageDurations.get(packageName)!;\n this.logger.info(`✓ ${packageName} completed successfully (${this.formatDuration(duration)})`);\n this.emit('package:completed', { packageName, result });\n\n // Track published version if applicable\n if (result.publishedVersion) {\n this.publishedVersions.push({\n name: packageName,\n version: result.publishedVersion,\n time: new Date()\n });\n }\n }\n }\n\n /**\n * Handle package failure\n */\n private async handleFailure(packageName: string, error: Error): Promise<void> {\n const attemptNumber = (this.retryAttempts.get(packageName) || 0) + 1;\n this.retryAttempts.set(packageName, attemptNumber);\n\n const isRetriable = this.isRetriableError(error);\n const maxRetries = this.config.maxRetries || 3;\n const canRetry = isRetriable && attemptNumber < maxRetries;\n\n if (canRetry) {\n // Schedule retry\n this.logger.warn(\n `⟳ ${packageName} failed (attempt ${attemptNumber}/${maxRetries}), will retry`\n );\n\n this.state.pending.push(packageName);\n this.emit('package:retrying', { packageName, attemptNumber });\n\n // Apply backoff delay\n const delay = this.calculateRetryDelay(attemptNumber);\n await new Promise(resolve => setTimeout(resolve, delay));\n } else {\n // Permanent failure\n const dependencies = Array.from(this.graph.edges.get(packageName) || []);\n const dependents = Array.from(findAllDependents(packageName, this.graph));\n\n // Extract detailed error information\n const errorDetails = this.extractErrorDetails(error, packageName);\n\n const failureInfo: FailedPackageSnapshot = {\n name: packageName,\n error: error.message,\n stack: error.stack,\n isRetriable,\n attemptNumber,\n failedAt: new Date().toISOString(),\n dependencies,\n dependents,\n errorDetails\n };\n\n this.state.failed.push(failureInfo);\n\n this.logger.error(`✗ ${packageName} failed permanently: ${error.message}`);\n this.emit('package:failed', { packageName, error });\n\n // Cascade failure to dependents\n await this.cascadeFailure(packageName);\n }\n }\n\n /**\n * Cascade failure to dependent packages\n */\n private async cascadeFailure(failedPackage: string): Promise<void> {\n const toSkip = findAllDependents(failedPackage, this.graph);\n\n for (const dependent of toSkip) {\n // Remove from pending/ready\n this.state.pending = this.state.pending.filter(p => p !== dependent);\n this.state.ready = this.state.ready.filter(p => p !== dependent);\n\n // Add to skipped\n if (!this.state.skipped.includes(dependent)) {\n this.state.skipped.push(dependent);\n this.logger.warn(`⊘ Skipping ${dependent} (depends on failed ${failedPackage})`);\n this.emit('package:skipped', {\n packageName: dependent,\n reason: `Depends on failed ${failedPackage}`\n });\n }\n }\n }\n\n /**\n * Update ready queue\n */\n private updateReadyQueue(): void {\n const nowReady: string[] = [];\n\n for (const packageName of this.state.pending) {\n if (this.dependencyChecker.isReady(packageName, this.state)) {\n nowReady.push(packageName);\n }\n }\n\n for (const packageName of nowReady) {\n this.state.pending = this.state.pending.filter(p => p !== packageName);\n this.state.ready.push(packageName);\n }\n }\n\n /**\n * Check if execution is complete\n */\n private isComplete(): boolean {\n return (\n this.state.pending.length === 0 &&\n this.state.ready.length === 0 &&\n this.runningTasks.size === 0\n );\n }\n\n /**\n * Determine if should save checkpoint\n */\n private shouldCheckpoint(): boolean {\n // Checkpoint after each completion for now\n // Could be optimized to checkpoint less frequently\n return true;\n }\n\n /**\n * Save checkpoint\n */\n private async saveCheckpoint(): Promise<void> {\n const checkpoint: ParallelExecutionCheckpoint = {\n version: '1.0.0',\n executionId: this.executionId,\n createdAt: this.startTime.toISOString(),\n lastUpdated: new Date().toISOString(),\n command: this.config.command,\n originalConfig: this.config.config,\n dependencyGraph: {\n packages: Array.from(this.graph.packages.values()).map(pkg => ({\n name: pkg.name,\n version: pkg.version,\n path: pkg.path,\n dependencies: Array.from(pkg.dependencies)\n })),\n edges: Array.from(this.graph.edges.entries()).map(([pkg, deps]) => [\n pkg,\n Array.from(deps)\n ])\n },\n buildOrder: [\n ...this.state.pending,\n ...this.state.ready,\n ...this.state.running.map(r => r.name),\n ...this.state.completed,\n ...this.state.failed.map(f => f.name),\n ...this.state.skipped\n ],\n executionMode: 'parallel',\n maxConcurrency: this.config.maxConcurrency,\n state: this.state,\n publishedVersions: this.publishedVersions.map(pv => ({\n packageName: pv.name,\n version: pv.version,\n publishTime: pv.time.toISOString()\n })),\n retryAttempts: Object.fromEntries(this.retryAttempts),\n lastRetryTime: {},\n packageStartTimes: Object.fromEntries(\n Array.from(this.packageStartTimes.entries()).map(([k, v]) => [k, v.toISOString()])\n ),\n packageEndTimes: Object.fromEntries(\n Array.from(this.packageEndTimes.entries()).map(([k, v]) => [k, v.toISOString()])\n ),\n packageDurations: Object.fromEntries(this.packageDurations),\n totalStartTime: this.startTime.toISOString(),\n recoveryHints: [],\n canRecover: true\n };\n\n await this.checkpointManager.save(checkpoint);\n this.emit('checkpoint:saved', { timestamp: new Date() });\n }\n\n /**\n * Load checkpoint\n */\n private async loadCheckpoint(): Promise<void> {\n const checkpoint = await this.checkpointManager.load();\n\n if (!checkpoint) {\n this.logger.warn('No checkpoint found, starting fresh');\n return;\n }\n\n this.logger.info('Loading checkpoint...');\n this.logger.info(`Execution ID: ${checkpoint.executionId}`);\n this.logger.info(`Completed: ${checkpoint.state.completed.length} packages`);\n this.logger.info(`Failed: ${checkpoint.state.failed.length} packages`);\n\n // Restore state\n this.executionId = checkpoint.executionId;\n this.startTime = new Date(checkpoint.totalStartTime);\n this.state = checkpoint.state;\n\n // Restore timing data\n for (const [pkg, time] of Object.entries(checkpoint.packageStartTimes)) {\n this.packageStartTimes.set(pkg, new Date(time));\n }\n for (const [pkg, time] of Object.entries(checkpoint.packageEndTimes)) {\n this.packageEndTimes.set(pkg, new Date(time));\n }\n for (const [pkg, duration] of Object.entries(checkpoint.packageDurations)) {\n this.packageDurations.set(pkg, duration);\n }\n\n // Restore retry attempts\n for (const [pkg, attempts] of Object.entries(checkpoint.retryAttempts)) {\n this.retryAttempts.set(pkg, attempts);\n }\n\n // Clear running state (cannot resume mid-execution)\n for (const running of this.state.running) {\n this.state.pending.push(running.name);\n }\n this.state.running = [];\n }\n\n /**\n * Build execution result\n */\n private buildExecutionResult(): ExecutionResult {\n const totalDuration = Date.now() - this.startTime.getTime();\n const completedDurations = Array.from(this.packageDurations.values());\n const averageDuration = completedDurations.length > 0\n ? completedDurations.reduce((a, b) => a + b, 0) / completedDurations.length\n : 0;\n\n const metrics: ExecutionMetrics = {\n totalDuration,\n averagePackageDuration: averageDuration,\n peakConcurrency: this.resourceMonitor.getMetrics().peakConcurrency,\n averageConcurrency: this.resourceMonitor.getMetrics().averageConcurrency\n };\n\n return {\n success: this.state.failed.length === 0,\n totalPackages: this.graph.packages.size,\n completed: this.state.completed,\n failed: this.state.failed,\n skipped: this.state.skipped,\n skippedNoChanges: this.state.skippedNoChanges,\n metrics\n };\n }\n\n /**\n * Check if error is retriable\n */\n private isRetriableError(error: Error): boolean {\n const retriablePatterns = [\n /ETIMEDOUT/i,\n /ECONNRESET/i,\n /ENOTFOUND/i,\n /rate limit/i,\n /temporary failure/i,\n /try again/i,\n /gateway timeout/i,\n /service unavailable/i\n ];\n\n return retriablePatterns.some(pattern =>\n pattern.test(error.message || String(error))\n );\n }\n\n /**\n * Calculate retry delay with exponential backoff\n */\n private calculateRetryDelay(attemptNumber: number): number {\n const initialDelay = this.config.initialRetryDelay || 5000;\n const maxDelay = this.config.maxRetryDelay || 60000;\n const multiplier = this.config.backoffMultiplier || 2;\n\n const delay = Math.min(\n initialDelay * Math.pow(multiplier, attemptNumber - 1),\n maxDelay\n );\n\n // Add jitter\n const jitter = Math.random() * 0.1 * delay;\n\n return delay + jitter;\n }\n\n /**\n * Format duration in human-readable format\n */\n private formatDuration(ms: number): string {\n const seconds = Math.floor(ms / 1000);\n const minutes = Math.floor(seconds / 60);\n\n if (minutes > 0) {\n return `${minutes}m ${seconds % 60}s`;\n }\n return `${seconds}s`;\n }\n\n /**\n * Extract detailed error information from error message and stack\n */\n private extractErrorDetails(error: Error, packageName: string): { type?: string; context?: string; logFile?: string; suggestion?: string } | undefined {\n const errorMsg = error.message || '';\n const errorStack = error.stack || '';\n const fullText = `${errorMsg}\\n${errorStack}`;\n\n // Test coverage failure\n if (fullText.match(/coverage.*below.*threshold|coverage.*insufficient/i)) {\n const coverageMatch = fullText.match(/(\\w+):\\s*(\\d+\\.?\\d*)%.*threshold:\\s*(\\d+\\.?\\d*)%/i);\n return {\n type: 'test_coverage',\n context: coverageMatch\n ? `${coverageMatch[1]}: ${coverageMatch[2]}% (threshold: ${coverageMatch[3]}%)`\n : 'Coverage below threshold',\n logFile: this.getLogFilePath(packageName),\n suggestion: `cd ${this.getPackagePath(packageName)} && npm test -- --coverage`\n };\n }\n\n // Build/compile errors\n if (fullText.match(/compilation.*failed|build.*failed|tsc.*error/i)) {\n return {\n type: 'build_error',\n context: this.extractFirstErrorLine(fullText),\n logFile: this.getLogFilePath(packageName),\n suggestion: `cd ${this.getPackagePath(packageName)} && npm run build`\n };\n }\n\n // Merge conflicts\n if (fullText.match(/merge.*conflict|conflict.*marker|<<<<<<<|>>>>>>>/i)) {\n return {\n type: 'merge_conflict',\n context: 'Unresolved merge conflicts detected',\n logFile: this.getLogFilePath(packageName),\n suggestion: `cd ${this.getPackagePath(packageName)} && git status`\n };\n }\n\n // Test failures\n if (fullText.match(/test.*failed|tests.*failed|\\d+\\s+failing/i)) {\n const failMatch = fullText.match(/(\\d+)\\s+failing/i);\n return {\n type: 'test_failure',\n context: failMatch ? `${failMatch[1]} test(s) failing` : 'Tests failed',\n logFile: this.getLogFilePath(packageName),\n suggestion: `cd ${this.getPackagePath(packageName)} && npm test`\n };\n }\n\n // Timeout errors\n if (fullText.match(/timeout|timed.*out/i)) {\n return {\n type: 'timeout',\n context: this.extractFirstErrorLine(fullText),\n logFile: this.getLogFilePath(packageName),\n suggestion: 'Consider increasing timeout or checking for stuck processes'\n };\n }\n\n // Generic error with log file\n return {\n type: 'unknown',\n context: errorMsg.split('\\n')[0].substring(0, 200),\n logFile: this.getLogFilePath(packageName)\n };\n }\n\n private extractFirstErrorLine(text: string): string {\n const lines = text.split('\\n');\n for (const line of lines) {\n if (line.match(/error|failed|exception/i) && line.trim().length > 10) {\n return line.trim().substring(0, 200);\n }\n }\n return text.split('\\n')[0].substring(0, 200);\n }\n\n private getPackagePath(packageName: string): string {\n const pkgInfo = this.graph.packages.get(packageName);\n return pkgInfo?.path || '.';\n }\n\n private getLogFilePath(packageName: string): string {\n const pkgPath = this.getPackagePath(packageName);\n const outputDir = this.config.config.outputDirectory || 'output/kodrdriv';\n // Try to find the most recent log file\n return `${pkgPath}/${outputDir}/publish_*.log`;\n }\n}\n"],"names":["DynamicTaskPool","EventEmitter","execute","logger","info","config","maxConcurrency","emit","totalPackages","graph","packages","size","continue","loadCheckpoint","updateReadyQueue","isComplete","availableSlots","resourceMonitor","getAvailableSlots","state","ready","length","toSchedule","scheduler","getNext","packageName","schedulePackage","runningTasks","Error","completedTask","waitForNext","handleTaskCompletion","shouldCheckpoint","saveCheckpoint","allCompleted","failed","skipped","checkpointManager","cleanup","result","buildExecutionResult","error","initializeState","buildOrder","Array","from","keys","pending","running","completed","skippedNoChanges","filter","p","allocate","packageStartTimes","set","Date","controller","AbortController","promise","executePackage","signal","task","startTime","push","name","toISOString","elapsedTime","verbose","_packageName","_signal","entries","promises","map","then","catch","Promise","race","delete","r","release","endTime","packageEndTimes","get","duration","getTime","packageDurations","handleFailure","handleSuccess","formatDuration","publishedVersion","publishedVersions","version","time","attemptNumber","retryAttempts","isRetriable","isRetriableError","maxRetries","canRetry","warn","delay","calculateRetryDelay","resolve","setTimeout","dependencies","edges","dependents","findAllDependents","errorDetails","extractErrorDetails","failureInfo","message","stack","failedAt","cascadeFailure","failedPackage","toSkip","dependent","includes","reason","nowReady","dependencyChecker","isReady","checkpoint","executionId","createdAt","lastUpdated","command","originalConfig","dependencyGraph","values","pkg","path","deps","f","executionMode","pv","publishTime","Object","fromEntries","lastRetryTime","k","v","totalStartTime","recoveryHints","canRecover","save","timestamp","load","attempts","totalDuration","now","completedDurations","averageDuration","reduce","a","b","metrics","averagePackageDuration","peakConcurrency","getMetrics","averageConcurrency","success","retriablePatterns","some","pattern","test","String","initialDelay","initialRetryDelay","maxDelay","maxRetryDelay","multiplier","backoffMultiplier","Math","min","pow","jitter","random","ms","seconds","floor","minutes","errorMsg","errorStack","fullText","match","coverageMatch","type","context","logFile","getLogFilePath","suggestion","getPackagePath","extractFirstErrorLine","failMatch","split","substring","text","lines","line","trim","pkgInfo","pkgPath","outputDir","outputDirectory","getLogger","Map","randomUUID","DependencyChecker","ResourceMonitor","Scheduler","CheckpointManager","checkpointPath","process","cwd"],"mappings":"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"}
1
+ {"version":3,"file":"DynamicTaskPool.js","sources":["../../src/execution/DynamicTaskPool.ts"],"sourcesContent":["import { EventEmitter } from 'events';\nimport { randomUUID } from 'crypto';\nimport { getLogger } from '../logging';\nimport { Config } from '../types';\nimport {\n DependencyGraph,\n findAllDependents\n} from '../util/dependencyGraph';\nimport {\n ParallelExecutionCheckpoint,\n ExecutionState,\n ExecutionResult,\n PackageResult,\n ExecutionMetrics,\n FailedPackageSnapshot\n} from '../types/parallelExecution';\nimport { CheckpointManager } from '../util/checkpointManager';\nimport { DependencyChecker } from './DependencyChecker';\nimport { ResourceMonitor } from './ResourceMonitor';\nimport { Scheduler } from './Scheduler';\n\nexport interface PoolConfig {\n graph: DependencyGraph;\n maxConcurrency: number;\n command: string;\n config: Config;\n checkpointPath?: string;\n continue?: boolean;\n maxRetries?: number;\n initialRetryDelay?: number;\n maxRetryDelay?: number;\n backoffMultiplier?: number;\n}\n\ninterface CompletedTask {\n packageName: string;\n result: PackageResult | null;\n error: Error | null;\n}\n\ninterface RunningTask {\n packageName: string;\n startTime: Date;\n promise: Promise<PackageResult>;\n controller: AbortController;\n}\n\n/**\n * DynamicTaskPool manages parallel execution of packages with dependency awareness\n */\nexport class DynamicTaskPool extends EventEmitter {\n private config: PoolConfig;\n private graph: DependencyGraph;\n private state: ExecutionState;\n private dependencyChecker: DependencyChecker;\n private resourceMonitor: ResourceMonitor;\n private scheduler: Scheduler;\n private checkpointManager: CheckpointManager;\n private logger = getLogger();\n\n // Execution tracking\n private executionId: string;\n private startTime: Date;\n private runningTasks = new Map<string, RunningTask>();\n private packageStartTimes = new Map<string, Date>();\n private packageEndTimes = new Map<string, Date>();\n private packageDurations = new Map<string, number>();\n private retryAttempts = new Map<string, number>();\n private publishedVersions: Array<{name: string, version: string, time: Date}> = [];\n\n constructor(config: PoolConfig) {\n super();\n this.config = config;\n this.graph = config.graph;\n this.executionId = randomUUID();\n this.startTime = new Date();\n\n // Initialize components\n this.dependencyChecker = new DependencyChecker(this.graph);\n this.resourceMonitor = new ResourceMonitor(config.maxConcurrency);\n this.scheduler = new Scheduler(this.graph, this.dependencyChecker);\n this.checkpointManager = new CheckpointManager(\n config.checkpointPath || process.cwd()\n );\n\n // Initialize state\n this.state = this.initializeState();\n }\n\n /**\n * Main execution entry point\n */\n async execute(): Promise<ExecutionResult> {\n this.logger.info(`EXECUTION_STARTING: Starting parallel execution | Max Concurrency: ${this.config.maxConcurrency} | Mode: parallel | Purpose: Execute packages with dependency awareness`);\n this.emit('execution:started', { totalPackages: this.graph.packages.size });\n\n try {\n // Load checkpoint if continuing\n if (this.config.continue) {\n await this.loadCheckpoint();\n }\n\n // Initialize ready queue\n this.updateReadyQueue();\n\n // Main execution loop\n while (!this.isComplete()) {\n // Schedule as many packages as we can\n const availableSlots = this.resourceMonitor.getAvailableSlots();\n if (availableSlots > 0 && this.state.ready.length > 0) {\n const toSchedule = this.scheduler.getNext(availableSlots, this.state);\n\n for (const packageName of toSchedule) {\n await this.schedulePackage(packageName);\n }\n }\n\n // Check if we're stuck\n if (this.runningTasks.size === 0) {\n if (this.state.ready.length > 0) {\n throw new Error('Deadlock detected: packages ready but cannot execute');\n }\n break; // No more work to do\n }\n\n // Wait for next package to complete\n const completedTask = await this.waitForNext();\n await this.handleTaskCompletion(completedTask);\n\n // Update ready queue\n this.updateReadyQueue();\n\n // Save checkpoint periodically\n if (this.shouldCheckpoint()) {\n await this.saveCheckpoint();\n }\n }\n\n // Final checkpoint and cleanup\n // Only cleanup if everything completed (no failures, no skipped packages due to dependencies)\n // Note: skippedNoChanges is OK - those packages successfully ran but had nothing to do\n const allCompleted = this.state.failed.length === 0 && this.state.skipped.length === 0;\n if (allCompleted) {\n await this.checkpointManager.cleanup();\n } else {\n await this.saveCheckpoint();\n }\n\n // Build and return result\n const result = this.buildExecutionResult();\n this.emit('execution:completed', { result });\n\n return result;\n } catch (error) {\n // Save checkpoint on error\n await this.saveCheckpoint();\n throw error;\n }\n }\n\n /**\n * Initialize execution state\n */\n private initializeState(): ExecutionState {\n const buildOrder = Array.from(this.graph.packages.keys());\n\n return {\n pending: [...buildOrder],\n ready: [],\n running: [],\n completed: [],\n failed: [],\n skipped: [],\n skippedNoChanges: []\n };\n }\n\n /**\n * Schedule a package for execution\n */\n private async schedulePackage(packageName: string): Promise<void> {\n // Move from ready to running\n this.state.ready = this.state.ready.filter(p => p !== packageName);\n\n // Allocate resource\n if (!this.resourceMonitor.allocate()) {\n throw new Error(`Failed to allocate resource for ${packageName}`);\n }\n\n // Record start time\n this.packageStartTimes.set(packageName, new Date());\n\n // Create abort controller\n const controller = new AbortController();\n\n // Start execution\n const promise = this.executePackage(packageName, controller.signal);\n\n // Track running task\n const task: RunningTask = {\n packageName,\n startTime: new Date(),\n promise,\n controller\n };\n\n this.runningTasks.set(packageName, task);\n\n // Update state\n this.state.running.push({\n name: packageName,\n startTime: task.startTime.toISOString(),\n elapsedTime: 0\n });\n\n // Emit event\n this.emit('package:started', { packageName });\n\n this.logger.verbose(\n `Scheduled ${packageName} (${this.runningTasks.size}/${this.config.maxConcurrency} slots used)`\n );\n }\n\n /**\n * Execute a single package (placeholder - will be overridden or use callback)\n */\n private async executePackage(\n _packageName: string,\n _signal: AbortSignal\n ): Promise<PackageResult> {\n // This is a placeholder that will be replaced with actual execution logic\n // In the real implementation, this would call the tree.ts executePackage function\n throw new Error('executePackage must be implemented');\n }\n\n /**\n * Wait for next task to complete\n */\n private async waitForNext(): Promise<CompletedTask> {\n const runningTasks = Array.from(this.runningTasks.entries());\n\n const promises = runningTasks.map(([name, task]) =>\n task.promise\n .then(result => ({ packageName: name, result, error: null }))\n .catch(error => ({ packageName: name, result: null, error }))\n );\n\n return await Promise.race(promises);\n }\n\n /**\n * Handle task completion\n */\n private async handleTaskCompletion(task: CompletedTask): Promise<void> {\n const { packageName, result, error } = task;\n\n // Remove from running\n this.runningTasks.delete(packageName);\n this.state.running = this.state.running.filter(r => r.name !== packageName);\n this.resourceMonitor.release();\n\n // Record timing\n const endTime = new Date();\n this.packageEndTimes.set(packageName, endTime);\n\n const startTime = this.packageStartTimes.get(packageName)!;\n const duration = endTime.getTime() - startTime.getTime();\n this.packageDurations.set(packageName, duration);\n\n if (error) {\n await this.handleFailure(packageName, error);\n } else {\n await this.handleSuccess(packageName, result!);\n }\n }\n\n /**\n * Handle successful package completion\n */\n private async handleSuccess(packageName: string, result: PackageResult): Promise<void> {\n // Check if this was skipped due to no changes\n if (result.skippedNoChanges) {\n this.state.skippedNoChanges.push(packageName);\n const duration = this.packageDurations.get(packageName)!;\n this.logger.info(`PACKAGE_SKIPPED_NO_CHANGES: Package skipped due to no code changes | Package: ${packageName} | Duration: ${this.formatDuration(duration)} | Reason: no-changes`);\n this.emit('package:skipped-no-changes', { packageName, result });\n } else {\n this.state.completed.push(packageName);\n const duration = this.packageDurations.get(packageName)!;\n this.logger.info(`PACKAGE_EXECUTION_COMPLETE: Package execution finished successfully | Package: ${packageName} | Duration: ${this.formatDuration(duration)} | Status: success`);\n this.emit('package:completed', { packageName, result });\n\n // Track published version if applicable\n if (result.publishedVersion) {\n this.publishedVersions.push({\n name: packageName,\n version: result.publishedVersion,\n time: new Date()\n });\n }\n }\n }\n\n /**\n * Handle package failure\n */\n private async handleFailure(packageName: string, error: Error): Promise<void> {\n const attemptNumber = (this.retryAttempts.get(packageName) || 0) + 1;\n this.retryAttempts.set(packageName, attemptNumber);\n\n const isRetriable = this.isRetriableError(error);\n const maxRetries = this.config.maxRetries || 3;\n const canRetry = isRetriable && attemptNumber < maxRetries;\n\n if (canRetry) {\n // Schedule retry\n this.logger.warn(\n `⟳ ${packageName} failed (attempt ${attemptNumber}/${maxRetries}), will retry`\n );\n\n this.state.pending.push(packageName);\n this.emit('package:retrying', { packageName, attemptNumber });\n\n // Apply backoff delay\n const delay = this.calculateRetryDelay(attemptNumber);\n await new Promise(resolve => setTimeout(resolve, delay));\n } else {\n // Permanent failure\n const dependencies = Array.from(this.graph.edges.get(packageName) || []);\n const dependents = Array.from(findAllDependents(packageName, this.graph));\n\n // Extract detailed error information\n const errorDetails = this.extractErrorDetails(error, packageName);\n\n const failureInfo: FailedPackageSnapshot = {\n name: packageName,\n error: error.message,\n stack: error.stack,\n isRetriable,\n attemptNumber,\n failedAt: new Date().toISOString(),\n dependencies,\n dependents,\n errorDetails\n };\n\n this.state.failed.push(failureInfo);\n\n this.logger.error(`PACKAGE_FAILED_PERMANENT: Package failed permanently | Package: ${packageName} | Error: ${error.message} | Status: failed | Retriable: false`);\n this.emit('package:failed', { packageName, error });\n\n // Cascade failure to dependents\n await this.cascadeFailure(packageName);\n }\n }\n\n /**\n * Cascade failure to dependent packages\n */\n private async cascadeFailure(failedPackage: string): Promise<void> {\n const toSkip = findAllDependents(failedPackage, this.graph);\n\n for (const dependent of toSkip) {\n // Remove from pending/ready\n this.state.pending = this.state.pending.filter(p => p !== dependent);\n this.state.ready = this.state.ready.filter(p => p !== dependent);\n\n // Add to skipped\n if (!this.state.skipped.includes(dependent)) {\n this.state.skipped.push(dependent);\n this.logger.warn(`PACKAGE_SKIPPED_DEPENDENCY: Package skipped due to failed dependency | Package: ${dependent} | Failed Dependency: ${failedPackage} | Reason: dependency-failed`);\n this.emit('package:skipped', {\n packageName: dependent,\n reason: `Depends on failed ${failedPackage}`\n });\n }\n }\n }\n\n /**\n * Update ready queue\n */\n private updateReadyQueue(): void {\n const nowReady: string[] = [];\n\n for (const packageName of this.state.pending) {\n if (this.dependencyChecker.isReady(packageName, this.state)) {\n nowReady.push(packageName);\n }\n }\n\n for (const packageName of nowReady) {\n this.state.pending = this.state.pending.filter(p => p !== packageName);\n this.state.ready.push(packageName);\n }\n }\n\n /**\n * Check if execution is complete\n */\n private isComplete(): boolean {\n return (\n this.state.pending.length === 0 &&\n this.state.ready.length === 0 &&\n this.runningTasks.size === 0\n );\n }\n\n /**\n * Determine if should save checkpoint\n */\n private shouldCheckpoint(): boolean {\n // Checkpoint after each completion for now\n // Could be optimized to checkpoint less frequently\n return true;\n }\n\n /**\n * Save checkpoint\n */\n private async saveCheckpoint(): Promise<void> {\n const checkpoint: ParallelExecutionCheckpoint = {\n version: '1.0.0',\n executionId: this.executionId,\n createdAt: this.startTime.toISOString(),\n lastUpdated: new Date().toISOString(),\n command: this.config.command,\n originalConfig: this.config.config,\n dependencyGraph: {\n packages: Array.from(this.graph.packages.values()).map(pkg => ({\n name: pkg.name,\n version: pkg.version,\n path: pkg.path,\n dependencies: Array.from(pkg.dependencies)\n })),\n edges: Array.from(this.graph.edges.entries()).map(([pkg, deps]) => [\n pkg,\n Array.from(deps)\n ])\n },\n buildOrder: [\n ...this.state.pending,\n ...this.state.ready,\n ...this.state.running.map(r => r.name),\n ...this.state.completed,\n ...this.state.failed.map(f => f.name),\n ...this.state.skipped\n ],\n executionMode: 'parallel',\n maxConcurrency: this.config.maxConcurrency,\n state: this.state,\n publishedVersions: this.publishedVersions.map(pv => ({\n packageName: pv.name,\n version: pv.version,\n publishTime: pv.time.toISOString()\n })),\n retryAttempts: Object.fromEntries(this.retryAttempts),\n lastRetryTime: {},\n packageStartTimes: Object.fromEntries(\n Array.from(this.packageStartTimes.entries()).map(([k, v]) => [k, v.toISOString()])\n ),\n packageEndTimes: Object.fromEntries(\n Array.from(this.packageEndTimes.entries()).map(([k, v]) => [k, v.toISOString()])\n ),\n packageDurations: Object.fromEntries(this.packageDurations),\n totalStartTime: this.startTime.toISOString(),\n recoveryHints: [],\n canRecover: true\n };\n\n await this.checkpointManager.save(checkpoint);\n this.emit('checkpoint:saved', { timestamp: new Date() });\n }\n\n /**\n * Load checkpoint\n */\n private async loadCheckpoint(): Promise<void> {\n const checkpoint = await this.checkpointManager.load();\n\n if (!checkpoint) {\n this.logger.warn('CHECKPOINT_NOT_FOUND: No checkpoint file found | Action: Starting fresh execution | Path: ' + this.config.checkpointPath);\n return;\n }\n\n this.logger.info('CHECKPOINT_LOADING: Loading execution checkpoint | Purpose: Resume previous execution | Path: ' + this.config.checkpointPath);\n this.logger.info(`CHECKPOINT_EXECUTION_ID: Checkpoint execution identifier | ID: ${checkpoint.executionId}`);\n this.logger.info(`CHECKPOINT_STATE_COMPLETED: Completed packages from checkpoint | Count: ${checkpoint.state.completed.length} packages`);\n this.logger.info(`CHECKPOINT_STATE_FAILED: Failed packages from checkpoint | Count: ${checkpoint.state.failed.length} packages`);\n\n // Restore state\n this.executionId = checkpoint.executionId;\n this.startTime = new Date(checkpoint.totalStartTime);\n this.state = checkpoint.state;\n\n // Restore timing data\n for (const [pkg, time] of Object.entries(checkpoint.packageStartTimes)) {\n this.packageStartTimes.set(pkg, new Date(time));\n }\n for (const [pkg, time] of Object.entries(checkpoint.packageEndTimes)) {\n this.packageEndTimes.set(pkg, new Date(time));\n }\n for (const [pkg, duration] of Object.entries(checkpoint.packageDurations)) {\n this.packageDurations.set(pkg, duration);\n }\n\n // Restore retry attempts\n for (const [pkg, attempts] of Object.entries(checkpoint.retryAttempts)) {\n this.retryAttempts.set(pkg, attempts);\n }\n\n // Clear running state (cannot resume mid-execution)\n for (const running of this.state.running) {\n this.state.pending.push(running.name);\n }\n this.state.running = [];\n\n // CRITICAL FIX: Re-evaluate skipped packages\n // After loading checkpoint (especially with --mark-completed), packages that were\n // skipped due to failed dependencies might now be eligible to run if those\n // dependencies are now completed. Move them back to pending for reassessment.\n const unblocked: string[] = [];\n for (const packageName of this.state.skipped) {\n // Check if all dependencies are now completed\n const dependencies = this.graph.edges.get(packageName) || new Set();\n const allDepsCompleted = Array.from(dependencies).every(dep =>\n this.state.completed.includes(dep) || this.state.skippedNoChanges.includes(dep)\n );\n\n // Check if any dependencies are still failed\n const anyDepsFailed = Array.from(dependencies).some(dep =>\n this.state.failed.some(f => f.name === dep)\n );\n\n if (allDepsCompleted && !anyDepsFailed) {\n unblocked.push(packageName);\n }\n }\n\n // Move unblocked packages back to pending\n if (unblocked.length > 0) {\n this.logger.info(`PACKAGES_UNBLOCKED: Dependencies satisfied, packages now ready | Count: ${unblocked.length} | Packages: ${unblocked.join(', ')} | Status: ready-to-execute`);\n for (const packageName of unblocked) {\n this.state.skipped = this.state.skipped.filter(p => p !== packageName);\n this.state.pending.push(packageName);\n }\n }\n }\n\n /**\n * Build execution result\n */\n private buildExecutionResult(): ExecutionResult {\n const totalDuration = Date.now() - this.startTime.getTime();\n const completedDurations = Array.from(this.packageDurations.values());\n const averageDuration = completedDurations.length > 0\n ? completedDurations.reduce((a, b) => a + b, 0) / completedDurations.length\n : 0;\n\n const metrics: ExecutionMetrics = {\n totalDuration,\n averagePackageDuration: averageDuration,\n peakConcurrency: this.resourceMonitor.getMetrics().peakConcurrency,\n averageConcurrency: this.resourceMonitor.getMetrics().averageConcurrency\n };\n\n return {\n success: this.state.failed.length === 0,\n totalPackages: this.graph.packages.size,\n completed: this.state.completed,\n failed: this.state.failed,\n skipped: this.state.skipped,\n skippedNoChanges: this.state.skippedNoChanges,\n metrics\n };\n }\n\n /**\n * Check if error is retriable\n */\n private isRetriableError(error: Error): boolean {\n const retriablePatterns = [\n /ETIMEDOUT/i,\n /ECONNRESET/i,\n /ENOTFOUND/i,\n /rate limit/i,\n /temporary failure/i,\n /try again/i,\n /gateway timeout/i,\n /service unavailable/i\n ];\n\n return retriablePatterns.some(pattern =>\n pattern.test(error.message || String(error))\n );\n }\n\n /**\n * Calculate retry delay with exponential backoff\n */\n private calculateRetryDelay(attemptNumber: number): number {\n const initialDelay = this.config.initialRetryDelay || 5000;\n const maxDelay = this.config.maxRetryDelay || 60000;\n const multiplier = this.config.backoffMultiplier || 2;\n\n const delay = Math.min(\n initialDelay * Math.pow(multiplier, attemptNumber - 1),\n maxDelay\n );\n\n // Add jitter\n const jitter = Math.random() * 0.1 * delay;\n\n return delay + jitter;\n }\n\n /**\n * Format duration in human-readable format\n */\n private formatDuration(ms: number): string {\n const seconds = Math.floor(ms / 1000);\n const minutes = Math.floor(seconds / 60);\n\n if (minutes > 0) {\n return `${minutes}m ${seconds % 60}s`;\n }\n return `${seconds}s`;\n }\n\n /**\n * Extract detailed error information from error message and stack\n */\n private extractErrorDetails(error: Error, packageName: string): { type?: string; context?: string; logFile?: string; suggestion?: string } | undefined {\n const errorMsg = error.message || '';\n const errorStack = error.stack || '';\n const fullText = `${errorMsg}\\n${errorStack}`;\n\n // Test coverage failure\n if (fullText.match(/coverage.*below.*threshold|coverage.*insufficient/i)) {\n const coverageMatch = fullText.match(/(\\w+):\\s*(\\d+\\.?\\d*)%.*threshold:\\s*(\\d+\\.?\\d*)%/i);\n return {\n type: 'test_coverage',\n context: coverageMatch\n ? `${coverageMatch[1]}: ${coverageMatch[2]}% (threshold: ${coverageMatch[3]}%)`\n : 'Coverage below threshold',\n logFile: this.getLogFilePath(packageName),\n suggestion: `cd ${this.getPackagePath(packageName)} && npm test -- --coverage`\n };\n }\n\n // Build/compile errors\n if (fullText.match(/compilation.*failed|build.*failed|tsc.*error/i)) {\n return {\n type: 'build_error',\n context: this.extractFirstErrorLine(fullText),\n logFile: this.getLogFilePath(packageName),\n suggestion: `cd ${this.getPackagePath(packageName)} && npm run build`\n };\n }\n\n // Merge conflicts\n if (fullText.match(/merge.*conflict|conflict.*marker|<<<<<<<|>>>>>>>/i)) {\n return {\n type: 'merge_conflict',\n context: 'Unresolved merge conflicts detected',\n logFile: this.getLogFilePath(packageName),\n suggestion: `cd ${this.getPackagePath(packageName)} && git status`\n };\n }\n\n // Test failures\n if (fullText.match(/test.*failed|tests.*failed|\\d+\\s+failing/i)) {\n const failMatch = fullText.match(/(\\d+)\\s+failing/i);\n return {\n type: 'test_failure',\n context: failMatch ? `${failMatch[1]} test(s) failing` : 'Tests failed',\n logFile: this.getLogFilePath(packageName),\n suggestion: `cd ${this.getPackagePath(packageName)} && npm test`\n };\n }\n\n // Timeout errors\n if (fullText.match(/timeout|timed.*out/i)) {\n return {\n type: 'timeout',\n context: this.extractFirstErrorLine(fullText),\n logFile: this.getLogFilePath(packageName),\n suggestion: 'Consider increasing timeout or checking for stuck processes'\n };\n }\n\n // Generic error with log file\n return {\n type: 'unknown',\n context: errorMsg.split('\\n')[0].substring(0, 200),\n logFile: this.getLogFilePath(packageName)\n };\n }\n\n private extractFirstErrorLine(text: string): string {\n const lines = text.split('\\n');\n for (const line of lines) {\n if (line.match(/error|failed|exception/i) && line.trim().length > 10) {\n return line.trim().substring(0, 200);\n }\n }\n return text.split('\\n')[0].substring(0, 200);\n }\n\n private getPackagePath(packageName: string): string {\n const pkgInfo = this.graph.packages.get(packageName);\n return pkgInfo?.path || '.';\n }\n\n private getLogFilePath(packageName: string): string {\n const pkgPath = this.getPackagePath(packageName);\n const outputDir = this.config.config.outputDirectory || 'output/kodrdriv';\n // Try to find the most recent log file\n return `${pkgPath}/${outputDir}/publish_*.log`;\n }\n}\n"],"names":["DynamicTaskPool","EventEmitter","execute","logger","info","config","maxConcurrency","emit","totalPackages","graph","packages","size","continue","loadCheckpoint","updateReadyQueue","isComplete","availableSlots","resourceMonitor","getAvailableSlots","state","ready","length","toSchedule","scheduler","getNext","packageName","schedulePackage","runningTasks","Error","completedTask","waitForNext","handleTaskCompletion","shouldCheckpoint","saveCheckpoint","allCompleted","failed","skipped","checkpointManager","cleanup","result","buildExecutionResult","error","initializeState","buildOrder","Array","from","keys","pending","running","completed","skippedNoChanges","filter","p","allocate","packageStartTimes","set","Date","controller","AbortController","promise","executePackage","signal","task","startTime","push","name","toISOString","elapsedTime","verbose","_packageName","_signal","entries","promises","map","then","catch","Promise","race","delete","r","release","endTime","packageEndTimes","get","duration","getTime","packageDurations","handleFailure","handleSuccess","formatDuration","publishedVersion","publishedVersions","version","time","attemptNumber","retryAttempts","isRetriable","isRetriableError","maxRetries","canRetry","warn","delay","calculateRetryDelay","resolve","setTimeout","dependencies","edges","dependents","findAllDependents","errorDetails","extractErrorDetails","failureInfo","message","stack","failedAt","cascadeFailure","failedPackage","toSkip","dependent","includes","reason","nowReady","dependencyChecker","isReady","checkpoint","executionId","createdAt","lastUpdated","command","originalConfig","dependencyGraph","values","pkg","path","deps","f","executionMode","pv","publishTime","Object","fromEntries","lastRetryTime","k","v","totalStartTime","recoveryHints","canRecover","save","timestamp","load","checkpointPath","attempts","unblocked","Set","allDepsCompleted","every","dep","anyDepsFailed","some","join","totalDuration","now","completedDurations","averageDuration","reduce","a","b","metrics","averagePackageDuration","peakConcurrency","getMetrics","averageConcurrency","success","retriablePatterns","pattern","test","String","initialDelay","initialRetryDelay","maxDelay","maxRetryDelay","multiplier","backoffMultiplier","Math","min","pow","jitter","random","ms","seconds","floor","minutes","errorMsg","errorStack","fullText","match","coverageMatch","type","context","logFile","getLogFilePath","suggestion","getPackagePath","extractFirstErrorLine","failMatch","split","substring","text","lines","line","trim","pkgInfo","pkgPath","outputDir","outputDirectory","getLogger","Map","randomUUID","DependencyChecker","ResourceMonitor","Scheduler","CheckpointManager","process","cwd"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AA+CA;;IAGO,MAAMA,eAAAA,SAAwBC,YAAAA,CAAAA;AAuCjC;;AAEC,QACD,MAAMC,OAAAA,GAAoC;AACtC,QAAA,IAAI,CAACC,MAAM,CAACC,IAAI,CAAC,CAAC,mEAAmE,EAAE,IAAI,CAACC,MAAM,CAACC,cAAc,CAAC,uEAAuE,CAAC,CAAA;QAC1L,IAAI,CAACC,IAAI,CAAC,mBAAA,EAAqB;AAAEC,YAAAA,aAAAA,EAAe,IAAI,CAACC,KAAK,CAACC,QAAQ,CAACC;AAAK,SAAA,CAAA;QAEzE,IAAI;;AAEA,YAAA,IAAI,IAAI,CAACN,MAAM,CAACO,QAAQ,EAAE;gBACtB,MAAM,IAAI,CAACC,cAAc,EAAA;AAC7B,YAAA;;AAGA,YAAA,IAAI,CAACC,gBAAgB,EAAA;;AAGrB,YAAA,MAAO,CAAC,IAAI,CAACC,UAAU,EAAA,CAAI;;AAEvB,gBAAA,MAAMC,cAAAA,GAAiB,IAAI,CAACC,eAAe,CAACC,iBAAiB,EAAA;gBAC7D,IAAIF,cAAAA,GAAiB,CAAA,IAAK,IAAI,CAACG,KAAK,CAACC,KAAK,CAACC,MAAM,GAAG,CAAA,EAAG;oBACnD,MAAMC,UAAAA,GAAa,IAAI,CAACC,SAAS,CAACC,OAAO,CAACR,cAAAA,EAAgB,IAAI,CAACG,KAAK,CAAA;oBAEpE,KAAK,MAAMM,eAAeH,UAAAA,CAAY;wBAClC,MAAM,IAAI,CAACI,eAAe,CAACD,WAAAA,CAAAA;AAC/B,oBAAA;AACJ,gBAAA;;AAGA,gBAAA,IAAI,IAAI,CAACE,YAAY,CAAChB,IAAI,KAAK,CAAA,EAAG;oBAC9B,IAAI,IAAI,CAACQ,KAAK,CAACC,KAAK,CAACC,MAAM,GAAG,CAAA,EAAG;AAC7B,wBAAA,MAAM,IAAIO,KAAAA,CAAM,sDAAA,CAAA;AACpB,oBAAA;AACA,oBAAA,MAAA;AACJ,gBAAA;;AAGA,gBAAA,MAAMC,aAAAA,GAAgB,MAAM,IAAI,CAACC,WAAW,EAAA;gBAC5C,MAAM,IAAI,CAACC,oBAAoB,CAACF,aAAAA,CAAAA;;AAGhC,gBAAA,IAAI,CAACf,gBAAgB,EAAA;;gBAGrB,IAAI,IAAI,CAACkB,gBAAgB,EAAA,EAAI;oBACzB,MAAM,IAAI,CAACC,cAAc,EAAA;AAC7B,gBAAA;AACJ,YAAA;;;;AAKA,YAAA,MAAMC,eAAe,IAAI,CAACf,KAAK,CAACgB,MAAM,CAACd,MAAM,KAAK,CAAA,IAAK,IAAI,CAACF,KAAK,CAACiB,OAAO,CAACf,MAAM,KAAK,CAAA;AACrF,YAAA,IAAIa,YAAAA,EAAc;AACd,gBAAA,MAAM,IAAI,CAACG,iBAAiB,CAACC,OAAO,EAAA;YACxC,CAAA,MAAO;gBACH,MAAM,IAAI,CAACL,cAAc,EAAA;AAC7B,YAAA;;YAGA,MAAMM,MAAAA,GAAS,IAAI,CAACC,oBAAoB,EAAA;YACxC,IAAI,CAACjC,IAAI,CAAC,qBAAA,EAAuB;AAAEgC,gBAAAA;AAAO,aAAA,CAAA;YAE1C,OAAOA,MAAAA;AACX,QAAA,CAAA,CAAE,OAAOE,KAAAA,EAAO;;YAEZ,MAAM,IAAI,CAACR,cAAc,EAAA;YACzB,MAAMQ,KAAAA;AACV,QAAA;AACJ,IAAA;AAEA;;AAEC,QACD,eAAQC,GAAkC;QACtC,MAAMC,UAAAA,GAAaC,KAAAA,CAAMC,IAAI,CAAC,IAAI,CAACpC,KAAK,CAACC,QAAQ,CAACoC,IAAI,EAAA,CAAA;QAEtD,OAAO;YACHC,OAAAA,EAAS;AAAIJ,gBAAAA,GAAAA;AAAW,aAAA;AACxBvB,YAAAA,KAAAA,EAAO,EAAE;AACT4B,YAAAA,OAAAA,EAAS,EAAE;AACXC,YAAAA,SAAAA,EAAW,EAAE;AACbd,YAAAA,MAAAA,EAAQ,EAAE;AACVC,YAAAA,OAAAA,EAAS,EAAE;AACXc,YAAAA,gBAAAA,EAAkB;AACtB,SAAA;AACJ,IAAA;AAEA;;QAGA,MAAcxB,eAAAA,CAAgBD,WAAmB,EAAiB;;AAE9D,QAAA,IAAI,CAACN,KAAK,CAACC,KAAK,GAAG,IAAI,CAACD,KAAK,CAACC,KAAK,CAAC+B,MAAM,CAACC,CAAAA,IAAKA,CAAAA,KAAM3B,WAAAA,CAAAA;;AAGtD,QAAA,IAAI,CAAC,IAAI,CAACR,eAAe,CAACoC,QAAQ,EAAA,EAAI;AAClC,YAAA,MAAM,IAAIzB,KAAAA,CAAM,CAAC,gCAAgC,EAAEH,WAAAA,CAAAA,CAAa,CAAA;AACpE,QAAA;;AAGA,QAAA,IAAI,CAAC6B,iBAAiB,CAACC,GAAG,CAAC9B,aAAa,IAAI+B,IAAAA,EAAAA,CAAAA;;AAG5C,QAAA,MAAMC,aAAa,IAAIC,eAAAA,EAAAA;;AAGvB,QAAA,MAAMC,UAAU,IAAI,CAACC,cAAc,CAACnC,WAAAA,EAAagC,WAAWI,MAAM,CAAA;;AAGlE,QAAA,MAAMC,IAAAA,GAAoB;AACtBrC,YAAAA,WAAAA;AACAsC,YAAAA,SAAAA,EAAW,IAAIP,IAAAA,EAAAA;AACfG,YAAAA,OAAAA;AACAF,YAAAA;AACJ,SAAA;AAEA,QAAA,IAAI,CAAC9B,YAAY,CAAC4B,GAAG,CAAC9B,WAAAA,EAAaqC,IAAAA,CAAAA;;AAGnC,QAAA,IAAI,CAAC3C,KAAK,CAAC6B,OAAO,CAACgB,IAAI,CAAC;YACpBC,IAAAA,EAAMxC,WAAAA;YACNsC,SAAAA,EAAWD,IAAAA,CAAKC,SAAS,CAACG,WAAW,EAAA;YACrCC,WAAAA,EAAa;AACjB,SAAA,CAAA;;QAGA,IAAI,CAAC5D,IAAI,CAAC,iBAAA,EAAmB;AAAEkB,YAAAA;AAAY,SAAA,CAAA;QAE3C,IAAI,CAACtB,MAAM,CAACiE,OAAO,CACf,CAAC,UAAU,EAAE3C,WAAAA,CAAY,EAAE,EAAE,IAAI,CAACE,YAAY,CAAChB,IAAI,CAAC,CAAC,EAAE,IAAI,CAACN,MAAM,CAACC,cAAc,CAAC,YAAY,CAAC,CAAA;AAEvG,IAAA;AAEA;;AAEC,QACD,MAAcsD,cAAAA,CACVS,YAAoB,EACpBC,OAAoB,EACE;;;AAGtB,QAAA,MAAM,IAAI1C,KAAAA,CAAM,oCAAA,CAAA;AACpB,IAAA;AAEA;;AAEC,QACD,MAAcE,WAAAA,GAAsC;QAChD,MAAMH,YAAAA,GAAeiB,MAAMC,IAAI,CAAC,IAAI,CAAClB,YAAY,CAAC4C,OAAO,EAAA,CAAA;AAEzD,QAAA,MAAMC,WAAW7C,YAAAA,CAAa8C,GAAG,CAAC,CAAC,CAACR,IAAAA,EAAMH,IAAAA,CAAK,GAC3CA,IAAAA,CAAKH,OAAO,CACPe,IAAI,CAACnC,CAAAA,UAAW;oBAAEd,WAAAA,EAAawC,IAAAA;AAAM1B,oBAAAA,MAAAA;oBAAQE,KAAAA,EAAO;AAAK,iBAAA,CAAA,CAAA,CACzDkC,KAAK,CAAClC,CAAAA,SAAU;oBAAEhB,WAAAA,EAAawC,IAAAA;oBAAM1B,MAAAA,EAAQ,IAAA;AAAME,oBAAAA;iBAAM,CAAA,CAAA,CAAA;QAGlE,OAAO,MAAMmC,OAAAA,CAAQC,IAAI,CAACL,QAAAA,CAAAA;AAC9B,IAAA;AAEA;;QAGA,MAAczC,oBAAAA,CAAqB+B,IAAmB,EAAiB;AACnE,QAAA,MAAM,EAAErC,WAAW,EAAEc,MAAM,EAAEE,KAAK,EAAE,GAAGqB,IAAAA;;AAGvC,QAAA,IAAI,CAACnC,YAAY,CAACmD,MAAM,CAACrD,WAAAA,CAAAA;AACzB,QAAA,IAAI,CAACN,KAAK,CAAC6B,OAAO,GAAG,IAAI,CAAC7B,KAAK,CAAC6B,OAAO,CAACG,MAAM,CAAC4B,CAAAA,CAAAA,GAAKA,CAAAA,CAAEd,IAAI,KAAKxC,WAAAA,CAAAA;QAC/D,IAAI,CAACR,eAAe,CAAC+D,OAAO,EAAA;;AAG5B,QAAA,MAAMC,UAAU,IAAIzB,IAAAA,EAAAA;AACpB,QAAA,IAAI,CAAC0B,eAAe,CAAC3B,GAAG,CAAC9B,WAAAA,EAAawD,OAAAA,CAAAA;AAEtC,QAAA,MAAMlB,YAAY,IAAI,CAACT,iBAAiB,CAAC6B,GAAG,CAAC1D,WAAAA,CAAAA;AAC7C,QAAA,MAAM2D,QAAAA,GAAWH,OAAAA,CAAQI,OAAO,EAAA,GAAKtB,UAAUsB,OAAO,EAAA;AACtD,QAAA,IAAI,CAACC,gBAAgB,CAAC/B,GAAG,CAAC9B,WAAAA,EAAa2D,QAAAA,CAAAA;AAEvC,QAAA,IAAI3C,KAAAA,EAAO;AACP,YAAA,MAAM,IAAI,CAAC8C,aAAa,CAAC9D,WAAAA,EAAagB,KAAAA,CAAAA;QAC1C,CAAA,MAAO;AACH,YAAA,MAAM,IAAI,CAAC+C,aAAa,CAAC/D,WAAAA,EAAac,MAAAA,CAAAA;AAC1C,QAAA;AACJ,IAAA;AAEA;;AAEC,QACD,MAAciD,aAAAA,CAAc/D,WAAmB,EAAEc,MAAqB,EAAiB;;QAEnF,IAAIA,MAAAA,CAAOW,gBAAgB,EAAE;AACzB,YAAA,IAAI,CAAC/B,KAAK,CAAC+B,gBAAgB,CAACc,IAAI,CAACvC,WAAAA,CAAAA;AACjC,YAAA,MAAM2D,WAAW,IAAI,CAACE,gBAAgB,CAACH,GAAG,CAAC1D,WAAAA,CAAAA;AAC3C,YAAA,IAAI,CAACtB,MAAM,CAACC,IAAI,CAAC,CAAC,8EAA8E,EAAEqB,WAAAA,CAAY,aAAa,EAAE,IAAI,CAACgE,cAAc,CAACL,QAAAA,CAAAA,CAAU,qBAAqB,CAAC,CAAA;YACjL,IAAI,CAAC7E,IAAI,CAAC,4BAAA,EAA8B;AAAEkB,gBAAAA,WAAAA;AAAac,gBAAAA;AAAO,aAAA,CAAA;QAClE,CAAA,MAAO;AACH,YAAA,IAAI,CAACpB,KAAK,CAAC8B,SAAS,CAACe,IAAI,CAACvC,WAAAA,CAAAA;AAC1B,YAAA,MAAM2D,WAAW,IAAI,CAACE,gBAAgB,CAACH,GAAG,CAAC1D,WAAAA,CAAAA;AAC3C,YAAA,IAAI,CAACtB,MAAM,CAACC,IAAI,CAAC,CAAC,+EAA+E,EAAEqB,WAAAA,CAAY,aAAa,EAAE,IAAI,CAACgE,cAAc,CAACL,QAAAA,CAAAA,CAAU,kBAAkB,CAAC,CAAA;YAC/K,IAAI,CAAC7E,IAAI,CAAC,mBAAA,EAAqB;AAAEkB,gBAAAA,WAAAA;AAAac,gBAAAA;AAAO,aAAA,CAAA;;YAGrD,IAAIA,MAAAA,CAAOmD,gBAAgB,EAAE;AACzB,gBAAA,IAAI,CAACC,iBAAiB,CAAC3B,IAAI,CAAC;oBACxBC,IAAAA,EAAMxC,WAAAA;AACNmE,oBAAAA,OAAAA,EAASrD,OAAOmD,gBAAgB;AAChCG,oBAAAA,IAAAA,EAAM,IAAIrC,IAAAA;AACd,iBAAA,CAAA;AACJ,YAAA;AACJ,QAAA;AACJ,IAAA;AAEA;;AAEC,QACD,MAAc+B,aAAAA,CAAc9D,WAAmB,EAAEgB,KAAY,EAAiB;QAC1E,MAAMqD,aAAAA,GAAgB,CAAC,IAAI,CAACC,aAAa,CAACZ,GAAG,CAAC1D,WAAAA,CAAAA,IAAgB,CAAA,IAAK,CAAA;AACnE,QAAA,IAAI,CAACsE,aAAa,CAACxC,GAAG,CAAC9B,WAAAA,EAAaqE,aAAAA,CAAAA;AAEpC,QAAA,MAAME,WAAAA,GAAc,IAAI,CAACC,gBAAgB,CAACxD,KAAAA,CAAAA;AAC1C,QAAA,MAAMyD,aAAa,IAAI,CAAC7F,MAAM,CAAC6F,UAAU,IAAI,CAAA;QAC7C,MAAMC,QAAAA,GAAWH,eAAeF,aAAAA,GAAgBI,UAAAA;AAEhD,QAAA,IAAIC,QAAAA,EAAU;;AAEV,YAAA,IAAI,CAAChG,MAAM,CAACiG,IAAI,CACZ,CAAC,EAAE,EAAE3E,WAAAA,CAAY,iBAAiB,EAAEqE,aAAAA,CAAc,CAAC,EAAEI,UAAAA,CAAW,aAAa,CAAC,CAAA;AAGlF,YAAA,IAAI,CAAC/E,KAAK,CAAC4B,OAAO,CAACiB,IAAI,CAACvC,WAAAA,CAAAA;YACxB,IAAI,CAAClB,IAAI,CAAC,kBAAA,EAAoB;AAAEkB,gBAAAA,WAAAA;AAAaqE,gBAAAA;AAAc,aAAA,CAAA;;AAG3D,YAAA,MAAMO,KAAAA,GAAQ,IAAI,CAACC,mBAAmB,CAACR,aAAAA,CAAAA;AACvC,YAAA,MAAM,IAAIlB,OAAAA,CAAQ2B,CAAAA,OAAAA,GAAWC,WAAWD,OAAAA,EAASF,KAAAA,CAAAA,CAAAA;QACrD,CAAA,MAAO;;AAEH,YAAA,MAAMI,YAAAA,GAAe7D,KAAAA,CAAMC,IAAI,CAAC,IAAI,CAACpC,KAAK,CAACiG,KAAK,CAACvB,GAAG,CAAC1D,gBAAgB,EAAE,CAAA;YACvE,MAAMkF,UAAAA,GAAa/D,MAAMC,IAAI,CAAC+D,kBAAkBnF,WAAAA,EAAa,IAAI,CAAChB,KAAK,CAAA,CAAA;;AAGvE,YAAA,MAAMoG,YAAAA,GAAe,IAAI,CAACC,mBAAmB,CAACrE,KAAAA,EAAOhB,WAAAA,CAAAA;AAErD,YAAA,MAAMsF,WAAAA,GAAqC;gBACvC9C,IAAAA,EAAMxC,WAAAA;AACNgB,gBAAAA,KAAAA,EAAOA,MAAMuE,OAAO;AACpBC,gBAAAA,KAAAA,EAAOxE,MAAMwE,KAAK;AAClBjB,gBAAAA,WAAAA;AACAF,gBAAAA,aAAAA;gBACAoB,QAAAA,EAAU,IAAI1D,OAAOU,WAAW,EAAA;AAChCuC,gBAAAA,YAAAA;AACAE,gBAAAA,UAAAA;AACAE,gBAAAA;AACJ,aAAA;AAEA,YAAA,IAAI,CAAC1F,KAAK,CAACgB,MAAM,CAAC6B,IAAI,CAAC+C,WAAAA,CAAAA;AAEvB,YAAA,IAAI,CAAC5G,MAAM,CAACsC,KAAK,CAAC,CAAC,gEAAgE,EAAEhB,WAAAA,CAAY,UAAU,EAAEgB,KAAAA,CAAMuE,OAAO,CAAC,oCAAoC,CAAC,CAAA;YAChK,IAAI,CAACzG,IAAI,CAAC,gBAAA,EAAkB;AAAEkB,gBAAAA,WAAAA;AAAagB,gBAAAA;AAAM,aAAA,CAAA;;YAGjD,MAAM,IAAI,CAAC0E,cAAc,CAAC1F,WAAAA,CAAAA;AAC9B,QAAA;AACJ,IAAA;AAEA;;QAGA,MAAc0F,cAAAA,CAAeC,aAAqB,EAAiB;AAC/D,QAAA,MAAMC,MAAAA,GAAST,iBAAAA,CAAkBQ,aAAAA,EAAe,IAAI,CAAC3G,KAAK,CAAA;QAE1D,KAAK,MAAM6G,aAAaD,MAAAA,CAAQ;;AAE5B,YAAA,IAAI,CAAClG,KAAK,CAAC4B,OAAO,GAAG,IAAI,CAAC5B,KAAK,CAAC4B,OAAO,CAACI,MAAM,CAACC,CAAAA,IAAKA,CAAAA,KAAMkE,SAAAA,CAAAA;AAC1D,YAAA,IAAI,CAACnG,KAAK,CAACC,KAAK,GAAG,IAAI,CAACD,KAAK,CAACC,KAAK,CAAC+B,MAAM,CAACC,CAAAA,IAAKA,CAAAA,KAAMkE,SAAAA,CAAAA;;YAGtD,IAAI,CAAC,IAAI,CAACnG,KAAK,CAACiB,OAAO,CAACmF,QAAQ,CAACD,SAAAA,CAAAA,EAAY;AACzC,gBAAA,IAAI,CAACnG,KAAK,CAACiB,OAAO,CAAC4B,IAAI,CAACsD,SAAAA,CAAAA;AACxB,gBAAA,IAAI,CAACnH,MAAM,CAACiG,IAAI,CAAC,CAAC,gFAAgF,EAAEkB,SAAAA,CAAU,sBAAsB,EAAEF,aAAAA,CAAc,4BAA4B,CAAC,CAAA;gBACjL,IAAI,CAAC7G,IAAI,CAAC,iBAAA,EAAmB;oBACzBkB,WAAAA,EAAa6F,SAAAA;oBACbE,MAAAA,EAAQ,CAAC,kBAAkB,EAAEJ,aAAAA,CAAAA;AACjC,iBAAA,CAAA;AACJ,YAAA;AACJ,QAAA;AACJ,IAAA;AAEA;;AAEC,QACD,gBAAQtG,GAAyB;AAC7B,QAAA,MAAM2G,WAAqB,EAAE;AAE7B,QAAA,KAAK,MAAMhG,WAAAA,IAAe,IAAI,CAACN,KAAK,CAAC4B,OAAO,CAAE;YAC1C,IAAI,IAAI,CAAC2E,iBAAiB,CAACC,OAAO,CAAClG,WAAAA,EAAa,IAAI,CAACN,KAAK,CAAA,EAAG;AACzDsG,gBAAAA,QAAAA,CAASzD,IAAI,CAACvC,WAAAA,CAAAA;AAClB,YAAA;AACJ,QAAA;QAEA,KAAK,MAAMA,eAAegG,QAAAA,CAAU;AAChC,YAAA,IAAI,CAACtG,KAAK,CAAC4B,OAAO,GAAG,IAAI,CAAC5B,KAAK,CAAC4B,OAAO,CAACI,MAAM,CAACC,CAAAA,IAAKA,CAAAA,KAAM3B,WAAAA,CAAAA;AAC1D,YAAA,IAAI,CAACN,KAAK,CAACC,KAAK,CAAC4C,IAAI,CAACvC,WAAAA,CAAAA;AAC1B,QAAA;AACJ,IAAA;AAEA;;AAEC,QACD,UAAQV,GAAsB;QAC1B,OACI,IAAI,CAACI,KAAK,CAAC4B,OAAO,CAAC1B,MAAM,KAAK,CAAA,IAC9B,IAAI,CAACF,KAAK,CAACC,KAAK,CAACC,MAAM,KAAK,CAAA,IAC5B,IAAI,CAACM,YAAY,CAAChB,IAAI,KAAK,CAAA;AAEnC,IAAA;AAEA;;AAEC,QACD,gBAAQqB,GAA4B;;;QAGhC,OAAO,IAAA;AACX,IAAA;AAEA;;AAEC,QACD,MAAcC,cAAAA,GAAgC;AAC1C,QAAA,MAAM2F,UAAAA,GAA0C;YAC5ChC,OAAAA,EAAS,OAAA;YACTiC,WAAAA,EAAa,IAAI,CAACA,WAAW;AAC7BC,YAAAA,SAAAA,EAAW,IAAI,CAAC/D,SAAS,CAACG,WAAW,EAAA;YACrC6D,WAAAA,EAAa,IAAIvE,OAAOU,WAAW,EAAA;AACnC8D,YAAAA,OAAAA,EAAS,IAAI,CAAC3H,MAAM,CAAC2H,OAAO;AAC5BC,YAAAA,cAAAA,EAAgB,IAAI,CAAC5H,MAAM,CAACA,MAAM;YAClC6H,eAAAA,EAAiB;AACbxH,gBAAAA,QAAAA,EAAUkC,KAAAA,CAAMC,IAAI,CAAC,IAAI,CAACpC,KAAK,CAACC,QAAQ,CAACyH,MAAM,EAAA,CAAA,CAAI1D,GAAG,CAAC2D,CAAAA,OAAQ;AAC3DnE,wBAAAA,IAAAA,EAAMmE,IAAInE,IAAI;AACd2B,wBAAAA,OAAAA,EAASwC,IAAIxC,OAAO;AACpByC,wBAAAA,IAAAA,EAAMD,IAAIC,IAAI;AACd5B,wBAAAA,YAAAA,EAAc7D,KAAAA,CAAMC,IAAI,CAACuF,GAAAA,CAAI3B,YAAY;qBAC7C,CAAA,CAAA;AACAC,gBAAAA,KAAAA,EAAO9D,MAAMC,IAAI,CAAC,IAAI,CAACpC,KAAK,CAACiG,KAAK,CAACnC,OAAO,IAAIE,GAAG,CAAC,CAAC,CAAC2D,GAAAA,EAAKE,KAAK,GAAK;AAC/DF,wBAAAA,GAAAA;AACAxF,wBAAAA,KAAAA,CAAMC,IAAI,CAACyF,IAAAA;AACd,qBAAA;AACL,aAAA;YACA3F,UAAAA,EAAY;mBACL,IAAI,CAACxB,KAAK,CAAC4B,OAAO;mBAClB,IAAI,CAAC5B,KAAK,CAACC,KAAK;mBAChB,IAAI,CAACD,KAAK,CAAC6B,OAAO,CAACyB,GAAG,CAACM,CAAAA,CAAAA,GAAKA,CAAAA,CAAEd,IAAI,CAAA;mBAClC,IAAI,CAAC9C,KAAK,CAAC8B,SAAS;mBACpB,IAAI,CAAC9B,KAAK,CAACgB,MAAM,CAACsC,GAAG,CAAC8D,CAAAA,CAAAA,GAAKA,CAAAA,CAAEtE,IAAI,CAAA;mBACjC,IAAI,CAAC9C,KAAK,CAACiB;AACjB,aAAA;YACDoG,aAAAA,EAAe,UAAA;AACflI,YAAAA,cAAAA,EAAgB,IAAI,CAACD,MAAM,CAACC,cAAc;YAC1Ca,KAAAA,EAAO,IAAI,CAACA,KAAK;YACjBwE,iBAAAA,EAAmB,IAAI,CAACA,iBAAiB,CAAClB,GAAG,CAACgE,CAAAA,MAAO;AACjDhH,oBAAAA,WAAAA,EAAagH,GAAGxE,IAAI;AACpB2B,oBAAAA,OAAAA,EAAS6C,GAAG7C,OAAO;oBACnB8C,WAAAA,EAAaD,EAAAA,CAAG5C,IAAI,CAAC3B,WAAW;iBACpC,CAAA,CAAA;AACA6B,YAAAA,aAAAA,EAAe4C,MAAAA,CAAOC,WAAW,CAAC,IAAI,CAAC7C,aAAa,CAAA;AACpD8C,YAAAA,aAAAA,EAAe,EAAC;AAChBvF,YAAAA,iBAAAA,EAAmBqF,OAAOC,WAAW,CACjChG,MAAMC,IAAI,CAAC,IAAI,CAACS,iBAAiB,CAACiB,OAAO,IAAIE,GAAG,CAAC,CAAC,CAACqE,CAAAA,EAAGC,EAAE,GAAK;AAACD,oBAAAA,CAAAA;AAAGC,oBAAAA,CAAAA,CAAE7E,WAAW;AAAG,iBAAA,CAAA,CAAA;AAErFgB,YAAAA,eAAAA,EAAiByD,OAAOC,WAAW,CAC/BhG,MAAMC,IAAI,CAAC,IAAI,CAACqC,eAAe,CAACX,OAAO,IAAIE,GAAG,CAAC,CAAC,CAACqE,CAAAA,EAAGC,EAAE,GAAK;AAACD,oBAAAA,CAAAA;AAAGC,oBAAAA,CAAAA,CAAE7E,WAAW;AAAG,iBAAA,CAAA,CAAA;AAEnFoB,YAAAA,gBAAAA,EAAkBqD,MAAAA,CAAOC,WAAW,CAAC,IAAI,CAACtD,gBAAgB,CAAA;AAC1D0D,YAAAA,cAAAA,EAAgB,IAAI,CAACjF,SAAS,CAACG,WAAW,EAAA;AAC1C+E,YAAAA,aAAAA,EAAe,EAAE;YACjBC,UAAAA,EAAY;AAChB,SAAA;AAEA,QAAA,MAAM,IAAI,CAAC7G,iBAAiB,CAAC8G,IAAI,CAACvB,UAAAA,CAAAA;QAClC,IAAI,CAACrH,IAAI,CAAC,kBAAA,EAAoB;AAAE6I,YAAAA,SAAAA,EAAW,IAAI5F,IAAAA;AAAO,SAAA,CAAA;AAC1D,IAAA;AAEA;;AAEC,QACD,MAAc3C,cAAAA,GAAgC;AAC1C,QAAA,MAAM+G,aAAa,MAAM,IAAI,CAACvF,iBAAiB,CAACgH,IAAI,EAAA;AAEpD,QAAA,IAAI,CAACzB,UAAAA,EAAY;YACb,IAAI,CAACzH,MAAM,CAACiG,IAAI,CAAC,+FAA+F,IAAI,CAAC/F,MAAM,CAACiJ,cAAc,CAAA;AAC1I,YAAA;AACJ,QAAA;QAEA,IAAI,CAACnJ,MAAM,CAACC,IAAI,CAAC,mGAAmG,IAAI,CAACC,MAAM,CAACiJ,cAAc,CAAA;QAC9I,IAAI,CAACnJ,MAAM,CAACC,IAAI,CAAC,CAAC,+DAA+D,EAAEwH,UAAAA,CAAWC,WAAW,CAAA,CAAE,CAAA;AAC3G,QAAA,IAAI,CAAC1H,MAAM,CAACC,IAAI,CAAC,CAAC,wEAAwE,EAAEwH,UAAAA,CAAWzG,KAAK,CAAC8B,SAAS,CAAC5B,MAAM,CAAC,SAAS,CAAC,CAAA;AACxI,QAAA,IAAI,CAAClB,MAAM,CAACC,IAAI,CAAC,CAAC,kEAAkE,EAAEwH,UAAAA,CAAWzG,KAAK,CAACgB,MAAM,CAACd,MAAM,CAAC,SAAS,CAAC,CAAA;;AAG/H,QAAA,IAAI,CAACwG,WAAW,GAAGD,UAAAA,CAAWC,WAAW;AACzC,QAAA,IAAI,CAAC9D,SAAS,GAAG,IAAIP,IAAAA,CAAKoE,WAAWoB,cAAc,CAAA;AACnD,QAAA,IAAI,CAAC7H,KAAK,GAAGyG,UAAAA,CAAWzG,KAAK;;QAG7B,KAAK,MAAM,CAACiH,GAAAA,EAAKvC,IAAAA,CAAK,IAAI8C,OAAOpE,OAAO,CAACqD,UAAAA,CAAWtE,iBAAiB,CAAA,CAAG;AACpE,YAAA,IAAI,CAACA,iBAAiB,CAACC,GAAG,CAAC6E,GAAAA,EAAK,IAAI5E,IAAAA,CAAKqC,IAAAA,CAAAA,CAAAA;AAC7C,QAAA;QACA,KAAK,MAAM,CAACuC,GAAAA,EAAKvC,IAAAA,CAAK,IAAI8C,OAAOpE,OAAO,CAACqD,UAAAA,CAAW1C,eAAe,CAAA,CAAG;AAClE,YAAA,IAAI,CAACA,eAAe,CAAC3B,GAAG,CAAC6E,GAAAA,EAAK,IAAI5E,IAAAA,CAAKqC,IAAAA,CAAAA,CAAAA;AAC3C,QAAA;QACA,KAAK,MAAM,CAACuC,GAAAA,EAAKhD,QAAAA,CAAS,IAAIuD,OAAOpE,OAAO,CAACqD,UAAAA,CAAWtC,gBAAgB,CAAA,CAAG;AACvE,YAAA,IAAI,CAACA,gBAAgB,CAAC/B,GAAG,CAAC6E,GAAAA,EAAKhD,QAAAA,CAAAA;AACnC,QAAA;;QAGA,KAAK,MAAM,CAACgD,GAAAA,EAAKmB,QAAAA,CAAS,IAAIZ,OAAOpE,OAAO,CAACqD,UAAAA,CAAW7B,aAAa,CAAA,CAAG;AACpE,YAAA,IAAI,CAACA,aAAa,CAACxC,GAAG,CAAC6E,GAAAA,EAAKmB,QAAAA,CAAAA;AAChC,QAAA;;AAGA,QAAA,KAAK,MAAMvG,OAAAA,IAAW,IAAI,CAAC7B,KAAK,CAAC6B,OAAO,CAAE;YACtC,IAAI,CAAC7B,KAAK,CAAC4B,OAAO,CAACiB,IAAI,CAAChB,QAAQiB,IAAI,CAAA;AACxC,QAAA;AACA,QAAA,IAAI,CAAC9C,KAAK,CAAC6B,OAAO,GAAG,EAAE;;;;;AAMvB,QAAA,MAAMwG,YAAsB,EAAE;AAC9B,QAAA,KAAK,MAAM/H,WAAAA,IAAe,IAAI,CAACN,KAAK,CAACiB,OAAO,CAAE;;YAE1C,MAAMqE,YAAAA,GAAe,IAAI,CAAChG,KAAK,CAACiG,KAAK,CAACvB,GAAG,CAAC1D,WAAAA,CAAAA,IAAgB,IAAIgI,GAAAA,EAAAA;YAC9D,MAAMC,gBAAAA,GAAmB9G,KAAAA,CAAMC,IAAI,CAAC4D,YAAAA,CAAAA,CAAckD,KAAK,CAACC,CAAAA,GAAAA,GACpD,IAAI,CAACzI,KAAK,CAAC8B,SAAS,CAACsE,QAAQ,CAACqC,GAAAA,CAAAA,IAAQ,IAAI,CAACzI,KAAK,CAAC+B,gBAAgB,CAACqE,QAAQ,CAACqC,GAAAA,CAAAA,CAAAA;;YAI/E,MAAMC,aAAAA,GAAgBjH,MAAMC,IAAI,CAAC4D,cAAcqD,IAAI,CAACF,CAAAA,GAAAA,GAChD,IAAI,CAACzI,KAAK,CAACgB,MAAM,CAAC2H,IAAI,CAACvB,CAAAA,CAAAA,GAAKA,CAAAA,CAAEtE,IAAI,KAAK2F,GAAAA,CAAAA,CAAAA;YAG3C,IAAIF,gBAAAA,IAAoB,CAACG,aAAAA,EAAe;AACpCL,gBAAAA,SAAAA,CAAUxF,IAAI,CAACvC,WAAAA,CAAAA;AACnB,YAAA;AACJ,QAAA;;QAGA,IAAI+H,SAAAA,CAAUnI,MAAM,GAAG,CAAA,EAAG;AACtB,YAAA,IAAI,CAAClB,MAAM,CAACC,IAAI,CAAC,CAAC,wEAAwE,EAAEoJ,SAAAA,CAAUnI,MAAM,CAAC,aAAa,EAAEmI,SAAAA,CAAUO,IAAI,CAAC,IAAA,CAAA,CAAM,2BAA2B,CAAC,CAAA;YAC7K,KAAK,MAAMtI,eAAe+H,SAAAA,CAAW;AACjC,gBAAA,IAAI,CAACrI,KAAK,CAACiB,OAAO,GAAG,IAAI,CAACjB,KAAK,CAACiB,OAAO,CAACe,MAAM,CAACC,CAAAA,IAAKA,CAAAA,KAAM3B,WAAAA,CAAAA;AAC1D,gBAAA,IAAI,CAACN,KAAK,CAAC4B,OAAO,CAACiB,IAAI,CAACvC,WAAAA,CAAAA;AAC5B,YAAA;AACJ,QAAA;AACJ,IAAA;AAEA;;AAEC,QACD,oBAAQe,GAAwC;QAC5C,MAAMwH,aAAAA,GAAgBxG,KAAKyG,GAAG,EAAA,GAAK,IAAI,CAAClG,SAAS,CAACsB,OAAO,EAAA;QACzD,MAAM6E,kBAAAA,GAAqBtH,MAAMC,IAAI,CAAC,IAAI,CAACyC,gBAAgB,CAAC6C,MAAM,EAAA,CAAA;AAClE,QAAA,MAAMgC,kBAAkBD,kBAAAA,CAAmB7I,MAAM,GAAG,CAAA,GAC9C6I,mBAAmBE,MAAM,CAAC,CAACC,CAAAA,EAAGC,IAAMD,CAAAA,GAAIC,CAAAA,EAAG,CAAA,CAAA,GAAKJ,kBAAAA,CAAmB7I,MAAM,GACzE,CAAA;AAEN,QAAA,MAAMkJ,OAAAA,GAA4B;AAC9BP,YAAAA,aAAAA;YACAQ,sBAAAA,EAAwBL,eAAAA;AACxBM,YAAAA,eAAAA,EAAiB,IAAI,CAACxJ,eAAe,CAACyJ,UAAU,GAAGD,eAAe;AAClEE,YAAAA,kBAAAA,EAAoB,IAAI,CAAC1J,eAAe,CAACyJ,UAAU,GAAGC;AAC1D,SAAA;QAEA,OAAO;AACHC,YAAAA,OAAAA,EAAS,IAAI,CAACzJ,KAAK,CAACgB,MAAM,CAACd,MAAM,KAAK,CAAA;AACtCb,YAAAA,aAAAA,EAAe,IAAI,CAACC,KAAK,CAACC,QAAQ,CAACC,IAAI;AACvCsC,YAAAA,SAAAA,EAAW,IAAI,CAAC9B,KAAK,CAAC8B,SAAS;AAC/Bd,YAAAA,MAAAA,EAAQ,IAAI,CAAChB,KAAK,CAACgB,MAAM;AACzBC,YAAAA,OAAAA,EAAS,IAAI,CAACjB,KAAK,CAACiB,OAAO;AAC3Bc,YAAAA,gBAAAA,EAAkB,IAAI,CAAC/B,KAAK,CAAC+B,gBAAgB;AAC7CqH,YAAAA;AACJ,SAAA;AACJ,IAAA;AAEA;;QAGQtE,gBAAAA,CAAiBxD,KAAY,EAAW;AAC5C,QAAA,MAAMoI,iBAAAA,GAAoB;AACtB,YAAA,YAAA;AACA,YAAA,aAAA;AACA,YAAA,YAAA;AACA,YAAA,aAAA;AACA,YAAA,oBAAA;AACA,YAAA,YAAA;AACA,YAAA,kBAAA;AACA,YAAA;AACH,SAAA;QAED,OAAOA,iBAAAA,CAAkBf,IAAI,CAACgB,CAAAA,OAAAA,GAC1BA,OAAAA,CAAQC,IAAI,CAACtI,KAAAA,CAAMuE,OAAO,IAAIgE,MAAAA,CAAOvI,KAAAA,CAAAA,CAAAA,CAAAA;AAE7C,IAAA;AAEA;;QAGQ6D,mBAAAA,CAAoBR,aAAqB,EAAU;AACvD,QAAA,MAAMmF,eAAe,IAAI,CAAC5K,MAAM,CAAC6K,iBAAiB,IAAI,IAAA;AACtD,QAAA,MAAMC,WAAW,IAAI,CAAC9K,MAAM,CAAC+K,aAAa,IAAI,KAAA;AAC9C,QAAA,MAAMC,aAAa,IAAI,CAAChL,MAAM,CAACiL,iBAAiB,IAAI,CAAA;QAEpD,MAAMjF,KAAAA,GAAQkF,IAAAA,CAAKC,GAAG,CAClBP,YAAAA,GAAeM,KAAKE,GAAG,CAACJ,UAAAA,EAAYvF,aAAAA,GAAgB,CAAA,CAAA,EACpDqF,QAAAA,CAAAA;;AAIJ,QAAA,MAAMO,MAAAA,GAASH,IAAAA,CAAKI,MAAM,EAAA,GAAK,GAAA,GAAMtF,KAAAA;AAErC,QAAA,OAAOA,KAAAA,GAAQqF,MAAAA;AACnB,IAAA;AAEA;;QAGQjG,cAAAA,CAAemG,EAAU,EAAU;AACvC,QAAA,MAAMC,OAAAA,GAAUN,IAAAA,CAAKO,KAAK,CAACF,EAAAA,GAAK,IAAA,CAAA;AAChC,QAAA,MAAMG,OAAAA,GAAUR,IAAAA,CAAKO,KAAK,CAACD,OAAAA,GAAU,EAAA,CAAA;AAErC,QAAA,IAAIE,UAAU,CAAA,EAAG;AACb,YAAA,OAAO,GAAGA,OAAAA,CAAQ,EAAE,EAAEF,OAAAA,GAAU,EAAA,CAAG,CAAC,CAAC;AACzC,QAAA;QACA,OAAO,CAAA,EAAGA,OAAAA,CAAQ,CAAC,CAAC;AACxB,IAAA;AAEA;;AAEC,QACD,mBAAQ/E,CAAoBrE,KAAY,EAAEhB,WAAmB,EAA0F;QACnJ,MAAMuK,QAAAA,GAAWvJ,KAAAA,CAAMuE,OAAO,IAAI,EAAA;QAClC,MAAMiF,UAAAA,GAAaxJ,KAAAA,CAAMwE,KAAK,IAAI,EAAA;AAClC,QAAA,MAAMiF,QAAAA,GAAW,CAAA,EAAGF,QAAAA,CAAS,EAAE,EAAEC,UAAAA,CAAAA,CAAY;;QAG7C,IAAIC,QAAAA,CAASC,KAAK,CAAC,oDAAA,CAAA,EAAuD;YACtE,MAAMC,aAAAA,GAAgBF,QAAAA,CAASC,KAAK,CAAC,mDAAA,CAAA;YACrC,OAAO;gBACHE,IAAAA,EAAM,eAAA;gBACNC,OAAAA,EAASF,aAAAA,GACH,GAAGA,aAAa,CAAC,EAAE,CAAC,EAAE,EAAEA,aAAa,CAAC,EAAE,CAAC,cAAc,EAAEA,aAAa,CAAC,EAAE,CAAC,EAAE,CAAC,GAC7E,0BAAA;gBACNG,OAAAA,EAAS,IAAI,CAACC,cAAc,CAAC/K,WAAAA,CAAAA;gBAC7BgL,UAAAA,EAAY,CAAC,GAAG,EAAE,IAAI,CAACC,cAAc,CAACjL,WAAAA,CAAAA,CAAa,0BAA0B;AACjF,aAAA;AACJ,QAAA;;QAGA,IAAIyK,QAAAA,CAASC,KAAK,CAAC,+CAAA,CAAA,EAAkD;YACjE,OAAO;gBACHE,IAAAA,EAAM,aAAA;gBACNC,OAAAA,EAAS,IAAI,CAACK,qBAAqB,CAACT,QAAAA,CAAAA;gBACpCK,OAAAA,EAAS,IAAI,CAACC,cAAc,CAAC/K,WAAAA,CAAAA;gBAC7BgL,UAAAA,EAAY,CAAC,GAAG,EAAE,IAAI,CAACC,cAAc,CAACjL,WAAAA,CAAAA,CAAa,iBAAiB;AACxE,aAAA;AACJ,QAAA;;QAGA,IAAIyK,QAAAA,CAASC,KAAK,CAAC,mDAAA,CAAA,EAAsD;YACrE,OAAO;gBACHE,IAAAA,EAAM,gBAAA;gBACNC,OAAAA,EAAS,qCAAA;gBACTC,OAAAA,EAAS,IAAI,CAACC,cAAc,CAAC/K,WAAAA,CAAAA;gBAC7BgL,UAAAA,EAAY,CAAC,GAAG,EAAE,IAAI,CAACC,cAAc,CAACjL,WAAAA,CAAAA,CAAa,cAAc;AACrE,aAAA;AACJ,QAAA;;QAGA,IAAIyK,QAAAA,CAASC,KAAK,CAAC,2CAAA,CAAA,EAA8C;YAC7D,MAAMS,SAAAA,GAAYV,QAAAA,CAASC,KAAK,CAAC,kBAAA,CAAA;YACjC,OAAO;gBACHE,IAAAA,EAAM,cAAA;gBACNC,OAAAA,EAASM,SAAAA,GAAY,GAAGA,SAAS,CAAC,EAAE,CAAC,gBAAgB,CAAC,GAAG,cAAA;gBACzDL,OAAAA,EAAS,IAAI,CAACC,cAAc,CAAC/K,WAAAA,CAAAA;gBAC7BgL,UAAAA,EAAY,CAAC,GAAG,EAAE,IAAI,CAACC,cAAc,CAACjL,WAAAA,CAAAA,CAAa,YAAY;AACnE,aAAA;AACJ,QAAA;;QAGA,IAAIyK,QAAAA,CAASC,KAAK,CAAC,qBAAA,CAAA,EAAwB;YACvC,OAAO;gBACHE,IAAAA,EAAM,SAAA;gBACNC,OAAAA,EAAS,IAAI,CAACK,qBAAqB,CAACT,QAAAA,CAAAA;gBACpCK,OAAAA,EAAS,IAAI,CAACC,cAAc,CAAC/K,WAAAA,CAAAA;gBAC7BgL,UAAAA,EAAY;AAChB,aAAA;AACJ,QAAA;;QAGA,OAAO;YACHJ,IAAAA,EAAM,SAAA;YACNC,OAAAA,EAASN,QAAAA,CAASa,KAAK,CAAC,IAAA,CAAK,CAAC,CAAA,CAAE,CAACC,SAAS,CAAC,CAAA,EAAG,GAAA,CAAA;YAC9CP,OAAAA,EAAS,IAAI,CAACC,cAAc,CAAC/K,WAAAA;AACjC,SAAA;AACJ,IAAA;AAEQkL,IAAAA,qBAAAA,CAAsBI,IAAY,EAAU;QAChD,MAAMC,KAAAA,GAAQD,IAAAA,CAAKF,KAAK,CAAC,IAAA,CAAA;QACzB,KAAK,MAAMI,QAAQD,KAAAA,CAAO;YACtB,IAAIC,IAAAA,CAAKd,KAAK,CAAC,yBAAA,CAAA,IAA8Bc,KAAKC,IAAI,EAAA,CAAG7L,MAAM,GAAG,EAAA,EAAI;AAClE,gBAAA,OAAO4L,IAAAA,CAAKC,IAAI,EAAA,CAAGJ,SAAS,CAAC,CAAA,EAAG,GAAA,CAAA;AACpC,YAAA;AACJ,QAAA;QACA,OAAOC,IAAAA,CAAKF,KAAK,CAAC,IAAA,CAAK,CAAC,CAAA,CAAE,CAACC,SAAS,CAAC,CAAA,EAAG,GAAA,CAAA;AAC5C,IAAA;AAEQJ,IAAAA,cAAAA,CAAejL,WAAmB,EAAU;QAChD,MAAM0L,OAAAA,GAAU,IAAI,CAAC1M,KAAK,CAACC,QAAQ,CAACyE,GAAG,CAAC1D,WAAAA,CAAAA;AACxC,QAAA,OAAO0L,CAAAA,OAAAA,KAAAA,IAAAA,IAAAA,OAAAA,KAAAA,MAAAA,GAAAA,MAAAA,GAAAA,OAAAA,CAAS9E,IAAI,KAAI,GAAA;AAC5B,IAAA;AAEQmE,IAAAA,cAAAA,CAAe/K,WAAmB,EAAU;AAChD,QAAA,MAAM2L,OAAAA,GAAU,IAAI,CAACV,cAAc,CAACjL,WAAAA,CAAAA;QACpC,MAAM4L,SAAAA,GAAY,IAAI,CAAChN,MAAM,CAACA,MAAM,CAACiN,eAAe,IAAI,iBAAA;;AAExD,QAAA,OAAO,GAAGF,OAAAA,CAAQ,CAAC,EAAEC,SAAAA,CAAU,cAAc,CAAC;AAClD,IAAA;AAzoBA,IAAA,WAAA,CAAYhN,MAAkB,CAAE;AAC5B,QAAA,KAAK,EAAA,EApBT,gBAAA,CAAA,IAAA,EAAQA,QAAAA,EAAR,SACA,gBAAA,CAAA,IAAA,EAAQI,OAAAA,EAAR,MAAA,CAAA,EACA,gBAAA,CAAA,IAAA,EAAQU,OAAAA,EAAR,MAAA,CAAA,EACA,uBAAQuG,mBAAAA,EAAR,MAAA,CAAA,EACA,gBAAA,CAAA,IAAA,EAAQzG,iBAAAA,EAAR,MAAA,CAAA,EACA,gBAAA,CAAA,IAAA,EAAQM,aAAR,MAAA,CAAA,EACA,gBAAA,CAAA,IAAA,EAAQc,mBAAAA,EAAR,MAAA,CAAA,EACA,gBAAA,CAAA,IAAA,EAAQlC,QAAAA,EAASoN;AAGjB,QAAA,gBAAA,CAAA,IAAA,EAAQ1F,aAAAA,EAAR,MAAA,CAAA,EACA,gBAAA,CAAA,IAAA,EAAQ9D,WAAAA,EAAR,MAAA,CAAA,EACA,gBAAA,CAAA,IAAA,EAAQpC,cAAAA,EAAe,IAAI6L,GAAAA,EAAAA,CAAAA,EAC3B,gBAAA,CAAA,IAAA,EAAQlK,mBAAAA,EAAoB,IAAIkK,GAAAA,EAAAA,CAAAA,EAChC,gBAAA,CAAA,IAAA,EAAQtI,iBAAAA,EAAkB,IAAIsI,GAAAA,EAAAA,CAAAA,EAC9B,gBAAA,CAAA,IAAA,EAAQlI,kBAAAA,EAAmB,IAAIkI,GAAAA,EAAAA,CAAAA,EAC/B,gBAAA,CAAA,IAAA,EAAQzH,eAAAA,EAAgB,IAAIyH,GAAAA,EAAAA,CAAAA,EAC5B,gBAAA,CAAA,IAAA,EAAQ7H,qBAAwE,EAAE,CAAA;QAI9E,IAAI,CAACtF,MAAM,GAAGA,MAAAA;AACd,QAAA,IAAI,CAACI,KAAK,GAAGJ,MAAAA,CAAOI,KAAK;QACzB,IAAI,CAACoH,WAAW,GAAG4F,UAAAA,EAAAA;QACnB,IAAI,CAAC1J,SAAS,GAAG,IAAIP,IAAAA,EAAAA;;AAGrB,QAAA,IAAI,CAACkE,iBAAiB,GAAG,IAAIgG,iBAAAA,CAAkB,IAAI,CAACjN,KAAK,CAAA;AACzD,QAAA,IAAI,CAACQ,eAAe,GAAG,IAAI0M,eAAAA,CAAgBtN,OAAOC,cAAc,CAAA;QAChE,IAAI,CAACiB,SAAS,GAAG,IAAIqM,SAAAA,CAAU,IAAI,CAACnN,KAAK,EAAE,IAAI,CAACiH,iBAAiB,CAAA;QACjE,IAAI,CAACrF,iBAAiB,GAAG,IAAIwL,kBACzBxN,MAAAA,CAAOiJ,cAAc,IAAIwE,OAAAA,CAAQC,GAAG,EAAA,CAAA;;AAIxC,QAAA,IAAI,CAAC5M,KAAK,GAAG,IAAI,CAACuB,eAAe,EAAA;AACrC,IAAA;AAynBJ;;;;"}