gl-life-claude-zen 1.3.0 → 1.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/CHANGELOG.md +64 -0
  2. package/README.md +1 -0
  3. package/bin/create-gl-life-claude.js +56 -1
  4. package/dist/hooks/auto-format.js +1 -1
  5. package/dist/hooks/complete-task.js +1 -1
  6. package/dist/hooks/enforce-migration-workflow.js +1 -1
  7. package/dist/hooks/enforce-structured-development.js +1 -1
  8. package/dist/hooks/enforce-test-pyramid.js +1 -1
  9. package/dist/hooks/init-task-tracker.js +1 -1
  10. package/dist/hooks/start-task.js +1 -1
  11. package/dist/hooks/task-status.js +1 -1
  12. package/dist/hooks/validate-database-changes.js +1 -1
  13. package/dist/hooks/validate-e2e-coverage.js +1 -1
  14. package/dist/hooks/validate-git-workflow.js +1 -1
  15. package/dist/hooks/validate-integration-site.js +1 -1
  16. package/dist/hooks/validate-migration-impact.js +1 -1
  17. package/dist/hooks/validate-task-completion.js +1 -1
  18. package/dist/hooks/validate-test-quality.js +1 -1
  19. package/dist/hooks/validate-test-results.js +1 -1
  20. package/dist/hooks/validate-ui-integration.js +1 -1
  21. package/dist/scripts/help.js +1 -1
  22. package/dist/scripts/plan-amend.js +1 -1
  23. package/dist/scripts/plan-create.js +1 -1
  24. package/dist/scripts/plan-help.js +1 -1
  25. package/dist/scripts/plan-init.js +1 -1
  26. package/dist/scripts/plan-manager.js +1 -1
  27. package/dist/scripts/setup-git-hooks.js +1 -1
  28. package/dist/scripts/task-done.js +1 -1
  29. package/dist/scripts/task-merge.js +1 -1
  30. package/dist/scripts/task-next.js +1 -1
  31. package/dist/scripts/task-start.js +1 -1
  32. package/dist/scripts/task-status.js +1 -1
  33. package/lib/init.js +6 -6
  34. package/package.json +2 -1
  35. package/templates/.claude/settings.json +9 -0
  36. package/templates/.gitignore +14 -0
  37. package/templates/README.md +4 -0
package/CHANGELOG.md CHANGED
@@ -5,6 +5,28 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [1.3.2] - 2025-12-20
9
+
10
+ ### Security
11
+ - **CRITICAL: Fixed Enforcement Bypass Vulnerability**
12
+ - Framework enforcement hooks can no longer be bypassed
13
+ - ALL tools (Read, Grep, Glob, Edit, Write, TodoWrite, Bash) now require active task
14
+ - Added universal PreToolUse hook with "*" matcher
15
+ - Updated enforce-structured-development.js to block all work tools when no task active
16
+ - Whitelisted essential commands (npm run help, task:status, task:start, plan:*)
17
+ - This ensures structured development workflow cannot be circumvented
18
+
19
+ ### Changed
20
+ - Hook enforcement now runs on PreToolUse instead of PostToolUse for work validation
21
+ - Updated settings.json template to include universal enforcement hook
22
+ - Improved error messages to show tool type and file/pattern being accessed
23
+
24
+ ### Technical Details
25
+ - Added WHITELISTED_COMMANDS array for commands that don't require active task
26
+ - Added isWhitelisted() function to check Bash commands against whitelist
27
+ - Modified RULE 3 to check workTools array ['Read', 'Grep', 'Glob', 'Edit', 'Write', 'TodoWrite']
28
+ - Enhanced tool_input parsing to capture pattern and command parameters
29
+
8
30
  ## [1.0.0] - 2025-12-19
9
31
 
10
32
  ### Added
@@ -242,6 +264,24 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
242
264
  - Visual validation: 5-15 seconds (screenshot + AI analysis)
243
265
  - Contract validation: <1 second (static analysis)
244
266
 
267
+ ## [1.3.1] - 2025-12-20
268
+
269
+ ### Fixed
270
+ - **CRITICAL: .gitignore Template Handling**
271
+ - Fixed npm renaming `.gitignore` to `.npmignore` during package extraction
272
+ - Added dynamic source resolution in lib/init.js to handle both filenames
273
+ - Added missing `existsSync` import
274
+
275
+ - **CLI Version/Help Flags on Windows**
276
+ - Fixed Windows path handling in getVersion() function
277
+ - Changed from dynamic ESM import to readFileSync for cross-platform compatibility
278
+ - Resolved ERR_UNSUPPORTED_ESM_URL_SCHEME and ERR_IMPORT_ATTRIBUTE_MISSING errors
279
+
280
+ ### Technical Details
281
+ - Package now works correctly on Windows, macOS, and Linux
282
+ - All project creation scenarios tested and verified
283
+ - Task management scripts verified working with bundled hooks
284
+
245
285
  ## [1.3.0] - 2025-12-20
246
286
 
247
287
  ### Changed
@@ -262,11 +302,35 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
262
302
  - Updated README.md with "Hard Requirements" section
263
303
  - Updated settings.json template with warning comment
264
304
 
305
+ ### Added
306
+ - **CLI Help and Version Flags**
307
+ - Added `--help` and `-h` flags to display usage information
308
+ - Added `--version` and `-v` flags to show package version
309
+ - Prevents accidental project creation with invalid names like `--help`
310
+ - Self-documenting CLI with comprehensive usage examples
311
+
312
+ ### Fixed
313
+ - **CRITICAL: Missing .gitignore Template File in Published Package**
314
+ - Fixed npm excluding `.gitignore` template during package publish
315
+ - Added explicit `templates/.gitignore` entry to package.json files array
316
+ - Without this fix, all project creation attempts fail with ENOENT error
317
+ - Impact: Package is now usable via npm install and npx
318
+
319
+ - **CRITICAL: Task Management Scripts Hook Path Resolution**
320
+ - Fixed incorrect hook paths in bundled scripts that prevented task management
321
+ - Scripts were looking for hooks at `node_modules/.gl-life-claude/.claude/hooks/` (wrong)
322
+ - Now correctly resolve to `node_modules/.gl-life-claude/hooks/` (bundled location)
323
+ - Added dynamic path resolution with fallback to dev workspace location
324
+ - Affected scripts: task-status.js, task-start.js, task-done.js, plan-init.js
325
+ - Impact: Task management commands (npm run task:*) now work correctly
326
+ - Error message now shows both attempted paths for easier debugging
327
+
265
328
  ### Technical Details
266
329
  - Updated hook: validate-ui-integration.js (16KB bundled)
267
330
  - All 10 requirements enforced in shouldBlock() function
268
331
  - No configuration options to disable requirements
269
332
  - Breaking change for projects relying on soft requirement warnings
333
+ - Fixed scripts: 4 task management scripts with dynamic hook resolution
270
334
 
271
335
  ## [Unreleased]
272
336
 
package/README.md CHANGED
@@ -233,6 +233,7 @@ The framework includes automated UI component validation with four validation st
233
233
  - [UI Verification Guide](./docs/UI-VERIFICATION-GUIDE.md) - Complete validation system guide
234
234
  - [Port Management](./docs/PORT-MANAGEMENT.md) - Fixed port allocation and auto-cleanup
235
235
  - [Component Contracts](./docs/COMPONENT-CONTRACTS.md) - Contract schema reference
236
+ - [CHANGELOG](./CHANGELOG.md) - Version history and breaking changes
236
237
 
237
238
  ### UI Testing Configuration
238
239
 
@@ -10,12 +10,54 @@
10
10
 
11
11
  import { fileURLToPath } from 'url';
12
12
  import { dirname, join } from 'path';
13
- import { existsSync } from 'fs';
13
+ import { existsSync, readFileSync } from 'fs';
14
14
  import { createInterface } from 'readline';
15
15
 
16
16
  const __filename = fileURLToPath(import.meta.url);
17
17
  const __dirname = dirname(__filename);
18
18
 
19
+ // Get package version
20
+ function getVersion() {
21
+ const pkgPath = join(__dirname, '..', 'package.json');
22
+ const pkg = JSON.parse(readFileSync(pkgPath, 'utf8'));
23
+ return pkg.version;
24
+ }
25
+
26
+ // Show help message
27
+ function showHelp() {
28
+ const version = getVersion();
29
+ console.log(`
30
+ GL.Life Claude Project Generator v${version}
31
+
32
+ Usage:
33
+ npm create gl-life-claude [project-name] [options]
34
+ npx gl-life-claude-zen [project-name] [options]
35
+
36
+ Options:
37
+ --help, -h Show this help message
38
+ --version, -v Show version number
39
+
40
+ Examples:
41
+ npm create gl-life-claude my-project Create project with defaults
42
+ npx gl-life-claude-zen Interactive mode with prompts
43
+
44
+ Interactive Mode:
45
+ When run without a project name, you will be prompted for:
46
+ - Project name (lowercase, numbers, hyphens, underscores)
47
+ - Git initialization (Y/n)
48
+ - Install dependencies (Y/n)
49
+
50
+ Project Structure:
51
+ - Structured task-based development workflow
52
+ - Git workflow enforcement with hooks
53
+ - Pre-commit validation and auto-formatting
54
+ - Task tracking with dependencies
55
+ - Project plan management
56
+
57
+ For more information: https://github.com/ajayhanda/gl-life-claude
58
+ `);
59
+ }
60
+
19
61
  // Helper: Create readline interface
20
62
  function createPrompt() {
21
63
  return createInterface({
@@ -37,6 +79,19 @@ function isValidProjectName(name) {
37
79
  // Main execution
38
80
  async function main() {
39
81
  const args = process.argv.slice(2);
82
+
83
+ // Handle --help flag
84
+ if (args.includes('--help') || args.includes('-h')) {
85
+ showHelp();
86
+ process.exit(0);
87
+ }
88
+
89
+ // Handle --version flag
90
+ if (args.includes('--version') || args.includes('-v')) {
91
+ console.log(getVersion());
92
+ process.exit(0);
93
+ }
94
+
40
95
  let projectName = args[0];
41
96
  let initGit = true;
42
97
  let installDeps = true;
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- var _0x1e448f=_0x5f4d;function _0x47be(){var _0x1bd032=['Mwshs','match','stdio','Warning:\x20Could\x20not\x20format\x20','ZaVrf','(((.+)+)+)+$','1931800hcNVwA','parse','fELwD','Formatted:\x20','MLheR','NyLcs','npx\x20prettier\x20--write\x20\x22','python\x20-m\x20black\x20--version','237885tqchVf','constructor','131684zPhEhu','XOIaf','vhlIe','WzQFD','TDHXS','log','apply','183494wVSXRf','file_path','PQvPx','taNPm','existsSync','ignore','wpOet','6qCGEfN','search','python\x20-m\x20black\x20\x22','child_process','8LEOPvQ','2764629SyZzeV','TfOQP','56553vYLgDK','WDQgB','842820yTLYLB','warn','fklKo','exit','npx\x20prettier\x20--version','NPheL','4QRvQtT','\x22\x20is\x20not\x20supported'];_0x47be=function(){return _0x1bd032;};return _0x47be();}function _0x5f4d(_0x3ba3af,_0x2d8d7e){_0x3ba3af=_0x3ba3af-0x12f;var _0x2b7ef6=_0x47be();var _0x27dac2=_0x2b7ef6[_0x3ba3af];return _0x27dac2;}(function(_0x3b4e4a,_0x2e76cf){var _0x5de888=_0x5f4d,_0x2e2a26=_0x3b4e4a();while(!![]){try{var _0x15a58c=parseInt(_0x5de888(0x143))/0x1+-parseInt(_0x5de888(0x13c))/0x2+-parseInt(_0x5de888(0x13a))/0x3*(parseInt(_0x5de888(0x159))/0x4)+parseInt(_0x5de888(0x132))/0x5*(parseInt(_0x5de888(0x14a))/0x6)+-parseInt(_0x5de888(0x151))/0x7+parseInt(_0x5de888(0x14e))/0x8*(-parseInt(_0x5de888(0x14f))/0x9)+parseInt(_0x5de888(0x153))/0xa;if(_0x15a58c===_0x2e76cf)break;else _0x2e2a26['push'](_0x2e2a26['shift']());}catch(_0x54c63c){_0x2e2a26['push'](_0x2e2a26['shift']());}}}(_0x47be,0x2f4cb));var _0x54df33=(function(){var _0x5db676=_0x5f4d,_0x579104={};_0x579104[_0x5db676(0x137)]='npx\x20prettier\x20--version',_0x579104[_0x5db676(0x13e)]=_0x5db676(0x148),_0x579104[_0x5db676(0x158)]=_0x5db676(0x145),_0x579104['WDQgB']=function(_0x4f0598,_0x33d7a9){return _0x4f0598!==_0x33d7a9;},_0x579104['MLheR']='wxndk';var _0x53e3c2=_0x579104,_0x46e6c2=!![];return function(_0x207acd,_0x1e252f){var _0xe6027=_0x5db676,_0x2dd66b={};_0x2dd66b[_0xe6027(0x134)]=_0x53e3c2[_0xe6027(0x137)],_0x2dd66b[_0xe6027(0x149)]=_0x53e3c2[_0xe6027(0x13e)],_0x2dd66b['TfOQP']=function(_0x58d375,_0x161e73){return _0x58d375!==_0x161e73;},_0x2dd66b['ZaVrf']=_0x53e3c2[_0xe6027(0x158)];var _0x459a26=_0x2dd66b;if(_0x53e3c2[_0xe6027(0x152)](_0x53e3c2['MLheR'],_0x53e3c2[_0xe6027(0x136)])){var _0xd40d78=_0x9b5412[_0xe6027(0x142)](_0x1e7f6a,arguments);return _0x18207e=null,_0xd40d78;}else{var _0x43e010=_0x46e6c2?function(){var _0xc99660=_0xe6027,_0x31b078={'WzQFD':_0x459a26['fELwD'],'Mwshs':_0x459a26['wpOet'],'taNPm':function(_0x2babe5,_0x49c8b1,_0x238cfc){return _0x2babe5(_0x49c8b1,_0x238cfc);}};if(_0x1e252f){if(_0x459a26[_0xc99660(0x150)](_0xc99660(0x145),_0x459a26[_0xc99660(0x130)]))_0x14ab71(_0x31b078[_0xc99660(0x13f)],{'stdio':_0x31b078['Mwshs']}),_0x31b078[_0xc99660(0x146)](_0xb4f8db,'npx\x20prettier\x20--write\x20\x22'+_0x3a7e05+'\x22',{'stdio':_0x31b078[_0xc99660(0x15b)]}),_0x1c8d4[_0xc99660(0x141)](_0xc99660(0x135)+_0xcc2758);else{var _0x3c6610=_0x1e252f[_0xc99660(0x142)](_0x207acd,arguments);return _0x1e252f=null,_0x3c6610;}}}:function(){};return _0x46e6c2=![],_0x43e010;}};}()),_0x27dac2=_0x54df33(this,function(){var _0x31cd9e=_0x5f4d,_0x43ba21={};_0x43ba21[_0x31cd9e(0x13d)]=_0x31cd9e(0x131);var _0x2a63c7=_0x43ba21;return _0x27dac2['toString']()[_0x31cd9e(0x14b)]('(((.+)+)+)+$')['toString']()[_0x31cd9e(0x13b)](_0x27dac2)[_0x31cd9e(0x14b)](_0x2a63c7['XOIaf']);});_0x27dac2();var r=(_0x2f17d2=>typeof require<'u'?require:typeof Proxy<'u'?new Proxy(_0x2f17d2,{'get':(_0x2167e8,_0x228e44)=>(typeof require<'u'?require:_0x2167e8)[_0x228e44]}):_0x2f17d2)(function(_0x3ba5fa){var _0x3b85ba=_0x5f4d,_0x5e4b05={};_0x5e4b05[_0x3b85ba(0x155)]=function(_0x7c9779,_0xa0643d){return _0x7c9779<_0xa0643d;},_0x5e4b05[_0x3b85ba(0x140)]=function(_0x4e1811,_0x4cdd07){return _0x4e1811+_0x4cdd07;};var _0x5c241b=_0x5e4b05;if(_0x5c241b[_0x3b85ba(0x155)](typeof require,'u'))return require[_0x3b85ba(0x142)](this,arguments);throw Error(_0x5c241b['TDHXS'](_0x5c241b[_0x3b85ba(0x140)]('Dynamic\x20require\x20of\x20\x22',_0x3ba5fa),_0x3b85ba(0x15a)));}),{execSync:e}=r(_0x1e448f(0x14d)),i=r('fs'),c=process['argv'][0x2]||'{}',a=JSON[_0x1e448f(0x133)](c),t=a['tool_input']?.[_0x1e448f(0x144)];(!t||!i[_0x1e448f(0x147)](t))&&process[_0x1e448f(0x156)](0x0);try{if(t[_0x1e448f(0x15c)](/\.(ts|tsx|js|jsx|json)$/))try{var _0x135ef9={};_0x135ef9[_0x1e448f(0x15d)]=_0x1e448f(0x148);var _0x4489d0={};_0x4489d0['stdio']=_0x1e448f(0x148),(e(_0x1e448f(0x157),_0x135ef9),e(_0x1e448f(0x138)+t+'\x22',_0x4489d0),console[_0x1e448f(0x141)](_0x1e448f(0x135)+t));}catch{}else{if(t[_0x1e448f(0x15c)](/\.py$/))try{var _0x4aa679={};_0x4aa679[_0x1e448f(0x15d)]='ignore';var _0x1e4de5={};_0x1e4de5[_0x1e448f(0x15d)]=_0x1e448f(0x148),(e(_0x1e448f(0x139),_0x4aa679),e(_0x1e448f(0x14c)+t+'\x22',_0x1e4de5),console[_0x1e448f(0x141)](_0x1e448f(0x135)+t));}catch{}}}catch{console[_0x1e448f(0x154)](_0x1e448f(0x12f)+t);}process['exit'](0x0);
2
+ var _0x572149=_0x1e9d;(function(_0x123935,_0x154abb){var _0x5d49da=_0x1e9d,_0x5b5b83=_0x123935();while(!![]){try{var _0x3cea98=parseInt(_0x5d49da(0x123))/0x1+parseInt(_0x5d49da(0x127))/0x2*(-parseInt(_0x5d49da(0x10b))/0x3)+-parseInt(_0x5d49da(0x125))/0x4+parseInt(_0x5d49da(0x117))/0x5+-parseInt(_0x5d49da(0x106))/0x6*(-parseInt(_0x5d49da(0x124))/0x7)+-parseInt(_0x5d49da(0x109))/0x8+parseInt(_0x5d49da(0x103))/0x9;if(_0x3cea98===_0x154abb)break;else _0x5b5b83['push'](_0x5b5b83['shift']());}catch(_0x4f9e96){_0x5b5b83['push'](_0x5b5b83['shift']());}}}(_0x5665,0xa98a4));function _0x5665(){var _0x4616f2=['9596400gVcvwa','XVBbB','907707NnzssX','zrrsR','match','tKvPh','ignore','warn','child_process','search','\x22\x20is\x20not\x20supported','log','jTPLs','toString','88760JnFqbZ','argv','existsSync','python\x20-m\x20black\x20\x22','Warning:\x20Could\x20not\x20format\x20','abJEY','(((.+)+)+)+$','constructor','stdio','apply','tool_input','nlTKg','1040121XIfzAY','959fxNQFE','1205904vuVNfP','npx\x20prettier\x20--write\x20\x22','2dDyvaB','ttzxS','exit','4780467uJZknP','npx\x20prettier\x20--version','Yoxvu','39810kkYZmE','file_path','Formatted:\x20'];_0x5665=function(){return _0x4616f2;};return _0x5665();}var _0x41d4f7=(function(){var _0xd9d7cf=_0x1e9d,_0x367a86={};_0x367a86[_0xd9d7cf(0x10c)]=function(_0x268b71,_0x3e935b){return _0x268b71!==_0x3e935b;},_0x367a86[_0xd9d7cf(0x122)]='jQRQN';var _0x30eaf8=_0x367a86,_0x2cae83=!![];return function(_0x38a963,_0x392612){var _0x459990=_0xd9d7cf,_0x14e929={'Yoxvu':function(_0x26a9d6,_0x2574dc){var _0x5253b5=_0x1e9d;return _0x30eaf8[_0x5253b5(0x10c)](_0x26a9d6,_0x2574dc);},'tKvPh':_0x30eaf8[_0x459990(0x122)]},_0x269395=_0x2cae83?function(){var _0x546661=_0x459990;if(_0x14e929[_0x546661(0x105)](_0x14e929[_0x546661(0x10e)],_0x14e929[_0x546661(0x10e)]))_0x578466[_0x546661(0x110)](_0x546661(0x11b)+_0x2fa7d0);else{if(_0x392612){var _0x401119=_0x392612[_0x546661(0x120)](_0x38a963,arguments);return _0x392612=null,_0x401119;}}}:function(){};return _0x2cae83=![],_0x269395;};}()),_0x45f213=_0x41d4f7(this,function(){var _0x7c0470=_0x1e9d,_0x12c42f={};_0x12c42f[_0x7c0470(0x10a)]=_0x7c0470(0x11d);var _0x6a804a=_0x12c42f;return _0x45f213['toString']()[_0x7c0470(0x112)](_0x6a804a['XVBbB'])[_0x7c0470(0x116)]()[_0x7c0470(0x11e)](_0x45f213)['search'](_0x6a804a[_0x7c0470(0x10a)]);});_0x45f213();var r=(_0x2d3a8f=>typeof require<'u'?require:typeof Proxy<'u'?new Proxy(_0x2d3a8f,{'get':(_0x38cd45,_0x456119)=>(typeof require<'u'?require:_0x38cd45)[_0x456119]}):_0x2d3a8f)(function(_0x48c123){var _0x34579c=_0x1e9d,_0x1094aa={};_0x1094aa[_0x34579c(0x115)]=function(_0xdfe7ae,_0x2709e3){return _0xdfe7ae<_0x2709e3;},_0x1094aa[_0x34579c(0x128)]=function(_0x1edb88,_0xa4f46c){return _0x1edb88+_0xa4f46c;},_0x1094aa[_0x34579c(0x11c)]='Dynamic\x20require\x20of\x20\x22';var _0x4a2754=_0x1094aa;if(_0x4a2754[_0x34579c(0x115)](typeof require,'u'))return require['apply'](this,arguments);throw Error(_0x4a2754[_0x34579c(0x128)](_0x4a2754['ttzxS'](_0x4a2754['abJEY'],_0x48c123),_0x34579c(0x113)));}),{execSync:e}=r(_0x572149(0x111)),i=r('fs'),c=process[_0x572149(0x118)][0x2]||'{}',a=JSON['parse'](c),t=a[_0x572149(0x121)]?.[_0x572149(0x107)];(!t||!i[_0x572149(0x119)](t))&&process[_0x572149(0x102)](0x0);try{if(t[_0x572149(0x10d)](/\.(ts|tsx|js|jsx|json)$/))try{var _0x301260={};_0x301260[_0x572149(0x11f)]=_0x572149(0x10f);var _0x17a8ba={};_0x17a8ba[_0x572149(0x11f)]='ignore',(e(_0x572149(0x104),_0x301260),e(_0x572149(0x126)+t+'\x22',_0x17a8ba),console[_0x572149(0x114)](_0x572149(0x108)+t));}catch{}else{if(t[_0x572149(0x10d)](/\.py$/))try{var _0x775442={};_0x775442[_0x572149(0x11f)]=_0x572149(0x10f);var _0x399a09={};_0x399a09['stdio']=_0x572149(0x10f),(e('python\x20-m\x20black\x20--version',_0x775442),e(_0x572149(0x11a)+t+'\x22',_0x399a09),console[_0x572149(0x114)]('Formatted:\x20'+t));}catch{}}}catch{console[_0x572149(0x110)](_0x572149(0x11b)+t);}function _0x1e9d(_0x45a1bd,_0x3b2af9){_0x45a1bd=_0x45a1bd-0x102;var _0x71d248=_0x5665();var _0x45f213=_0x71d248[_0x45a1bd];return _0x45f213;}process['exit'](0x0);
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- var _0x5e04e6=_0x4bbd;function _0x4bbd(_0x30e729,_0x29a3d6){_0x30e729=_0x30e729-0x198;var _0x23e92d=_0x34a5();var _0x55579e=_0x23e92d[_0x30e729];return _0x55579e;}(function(_0x2ba039,_0x5d2a85){var _0x15eafd=_0x4bbd,_0x591ddf=_0x2ba039();while(!![]){try{var _0x1a0979=-parseInt(_0x15eafd(0x1e0))/0x1*(parseInt(_0x15eafd(0x1c1))/0x2)+parseInt(_0x15eafd(0x1d2))/0x3+-parseInt(_0x15eafd(0x1a3))/0x4+parseInt(_0x15eafd(0x1cf))/0x5+-parseInt(_0x15eafd(0x1d4))/0x6+parseInt(_0x15eafd(0x1e9))/0x7+parseInt(_0x15eafd(0x1b3))/0x8;if(_0x1a0979===_0x5d2a85)break;else _0x591ddf['push'](_0x591ddf['shift']());}catch(_0x20b35e){_0x591ddf['push'](_0x591ddf['shift']());}}}(_0x34a5,0xd3dd6));var _0x6dbc9b=(function(){var _0x142815=_0x4bbd,_0x5ee09f={};_0x5ee09f[_0x142815(0x19e)]=_0x142815(0x1ae),_0x5ee09f[_0x142815(0x19d)]=_0x142815(0x1af),_0x5ee09f[_0x142815(0x19f)]='utf8',_0x5ee09f['FDGWZ']=_0x142815(0x1df);var _0x5bef35=_0x5ee09f,_0x37d2ad=!![];return function(_0x343246,_0x3d70fc){var _0x4be59d=_0x142815,_0x10e063={'YEqOV':function(_0x4612ae,_0xe969f4,_0x490385){return _0x4612ae(_0xe969f4,_0x490385);},'PLYVR':_0x5bef35['Cqsub'],'Vhtwv':_0x5bef35[_0x4be59d(0x19f)],'QtblS':_0x5bef35['FDGWZ']},_0x143490=_0x37d2ad?function(){var _0x5f4de3=_0x4be59d;if(_0x3d70fc){if(_0x5bef35['YtZfc']!==_0x5bef35[_0x5f4de3(0x19e)]){let _0x513613=_0x10e063['YEqOV'](_0x31cb54,_0x10e063['PLYVR'],{'encoding':_0x10e063[_0x5f4de3(0x1e1)]});_0x513613[_0x5f4de3(0x1f2)]()&&(_0x5ac9e3['error']('\x0a❌\x20ERROR:\x20You\x20have\x20uncommitted\x20changes'),_0x158c4b[_0x5f4de3(0x1bb)](_0x5f4de3(0x1ea)),_0x48cc50[_0x5f4de3(0x1bb)](_0x513613),_0x34cbca['error'](_0x5f4de3(0x1b4)),_0x214f6d[_0x5f4de3(0x1bb)](_0x10e063[_0x5f4de3(0x1db)]),_0x165349[_0x5f4de3(0x1bb)](_0x5f4de3(0x1a4)+_0x44a21e+_0x5f4de3(0x1b2)),_0x580569[_0x5f4de3(0x1bb)](''),_0x1783b9[_0x5f4de3(0x1ef)](0x1));}else{var _0x4dec73=_0x3d70fc[_0x5f4de3(0x1ec)](_0x343246,arguments);return _0x3d70fc=null,_0x4dec73;}}}:function(){};return _0x37d2ad=![],_0x143490;};}()),_0x55579e=_0x6dbc9b(this,function(){var _0x522834=_0x4bbd,_0x1eafb1={};_0x1eafb1[_0x522834(0x1c7)]=_0x522834(0x1cb);var _0x5243a1=_0x1eafb1;return _0x55579e['toString']()['search'](_0x5243a1[_0x522834(0x1c7)])[_0x522834(0x1c5)]()[_0x522834(0x1d6)](_0x55579e)[_0x522834(0x1ce)](_0x5243a1[_0x522834(0x1c7)]);});_0x55579e();var i=(_0x103d1a=>typeof require<'u'?require:typeof Proxy<'u'?new Proxy(_0x103d1a,{'get':(_0x52719b,_0x470757)=>(typeof require<'u'?require:_0x52719b)[_0x470757]}):_0x103d1a)(function(_0x2e8211){var _0x3141ae=_0x4bbd,_0x522d3b={'iQaQi':function(_0x4fde4a,_0x31a666){return _0x4fde4a<_0x31a666;},'cUMVd':function(_0x552a3a,_0x4c2d10){return _0x552a3a(_0x4c2d10);},'FdhGc':function(_0x575232,_0x425827){return _0x575232+_0x425827;},'RtMOl':_0x3141ae(0x1f0),'BRyfW':_0x3141ae(0x1ed)};if(_0x522d3b[_0x3141ae(0x1be)](typeof require,'u'))return require[_0x3141ae(0x1ec)](this,arguments);throw _0x522d3b[_0x3141ae(0x1e4)](Error,_0x522d3b[_0x3141ae(0x1a8)](_0x522d3b[_0x3141ae(0x1f3)],_0x2e8211)+_0x522d3b['BRyfW']);}),n=i('fs'),d=i(_0x5e04e6(0x19c)),a=process[_0x5e04e6(0x1a7)][0x2];a||(console[_0x5e04e6(0x1bb)](_0x5e04e6(0x1ad)),console['error'](_0x5e04e6(0x1e3)),process[_0x5e04e6(0x1ef)](0x1));var p=_0x5e04e6(0x1bf);n[_0x5e04e6(0x198)](p)||(console[_0x5e04e6(0x1bb)]('\x0a❌\x20ERROR:\x20No\x20active\x20plan\x20found'),console[_0x5e04e6(0x1bb)]('Set\x20active\x20plan\x20first:\x20npm\x20run\x20plan:manager\x0a'),process[_0x5e04e6(0x1ef)](0x1));var u=n[_0x5e04e6(0x1d7)](p,_0x5e04e6(0x1c2))['trim'](),k=d[_0x5e04e6(0x1ab)](_0x5e04e6(0x1bd),u),r=d[_0x5e04e6(0x1ab)](k,_0x5e04e6(0x1c8)),l=d[_0x5e04e6(0x1ab)](k,'tasks',a+_0x5e04e6(0x1b5));n[_0x5e04e6(0x198)](r)||(console[_0x5e04e6(0x1bb)](_0x5e04e6(0x1c4)),console[_0x5e04e6(0x1bb)](_0x5e04e6(0x1b0)+u),console[_0x5e04e6(0x1bb)](_0x5e04e6(0x19a)),process['exit'](0x1)),n[_0x5e04e6(0x198)](l)||(console[_0x5e04e6(0x1bb)]('\x0a❌\x20ERROR:\x20Task\x20file\x20not\x20found:\x20'+l+'\x0a'),process[_0x5e04e6(0x1ef)](0x1));var e=JSON[_0x5e04e6(0x1c9)](n[_0x5e04e6(0x1d7)](r,_0x5e04e6(0x1c2))),s=JSON[_0x5e04e6(0x1c9)](n[_0x5e04e6(0x1d7)](l,_0x5e04e6(0x1c2))),f=s[_0x5e04e6(0x1c3)]==='completed';if(f){console['log'](_0x5e04e6(0x1a5)+a+_0x5e04e6(0x1eb)),console[_0x5e04e6(0x1d9)]('Syncing\x20tracker\x20status...\x0a');let t=e[_0x5e04e6(0x1cc)][_0x5e04e6(0x1d0)](_0x2aeafb=>_0x2aeafb['id']===a);t&&t[_0x5e04e6(0x1c3)]!==_0x5e04e6(0x1e5)?(t[_0x5e04e6(0x1c3)]='completed',e[_0x5e04e6(0x1b8)]={'totalTasks':e[_0x5e04e6(0x1cc)]['length'],'pending':e[_0x5e04e6(0x1cc)][_0x5e04e6(0x1d3)](_0x19deec=>_0x19deec[_0x5e04e6(0x1c3)]===_0x5e04e6(0x1e2))[_0x5e04e6(0x1c0)],'inProgress':e['taskFiles'][_0x5e04e6(0x1d3)](_0x1acf1c=>_0x1acf1c['status']==='in_progress')[_0x5e04e6(0x1c0)],'completed':e[_0x5e04e6(0x1cc)][_0x5e04e6(0x1d3)](_0x129968=>_0x129968['status']===_0x5e04e6(0x1e5))[_0x5e04e6(0x1c0)],'blocked':e[_0x5e04e6(0x1cc)]['filter'](_0x55b73b=>_0x55b73b[_0x5e04e6(0x1c3)]===_0x5e04e6(0x1e8))[_0x5e04e6(0x1c0)]},e[_0x5e04e6(0x1ac)]=null,e['lastUpdated']=new Date()[_0x5e04e6(0x1e6)](),n[_0x5e04e6(0x1a0)](r,JSON['stringify'](e,null,0x2)),console[_0x5e04e6(0x1d9)](_0x5e04e6(0x1b1))):console[_0x5e04e6(0x1d9)](_0x5e04e6(0x1aa)),process[_0x5e04e6(0x1ef)](0x0);}var {execSync:S}=i('child_process');try{var _0x1f0d37={};_0x1f0d37[_0x5e04e6(0x1a2)]=_0x5e04e6(0x1c2);let t=S('git\x20status\x20--porcelain',_0x1f0d37);t[_0x5e04e6(0x1f2)]()&&(console[_0x5e04e6(0x1bb)](_0x5e04e6(0x1ee)),console[_0x5e04e6(0x1bb)]('\x0aUncommitted\x20files:'),console['error'](t),console[_0x5e04e6(0x1bb)](_0x5e04e6(0x1b4)),console[_0x5e04e6(0x1bb)](_0x5e04e6(0x1df)),console[_0x5e04e6(0x1bb)](_0x5e04e6(0x1a4)+a+_0x5e04e6(0x1b2)),console[_0x5e04e6(0x1bb)](''),process[_0x5e04e6(0x1ef)](0x1));}catch{console['warn'](_0x5e04e6(0x1a9)),console[_0x5e04e6(0x1d5)]('Make\x20sure\x20all\x20changes\x20are\x20committed!\x0a');}s[_0x5e04e6(0x1c3)]=_0x5e04e6(0x1e5),s[_0x5e04e6(0x199)]=new Date()['toISOString']();if(s['startedAt']){let t=new Date(s[_0x5e04e6(0x1b9)]),o=new Date(s[_0x5e04e6(0x199)]);s[_0x5e04e6(0x1d1)]=Math[_0x5e04e6(0x1ba)]((o-t)/(0x3e8*0x3c*0x3c)*0xa)/0xa;}n[_0x5e04e6(0x1a0)](l,JSON['stringify'](s,null,0x2)),e[_0x5e04e6(0x1ac)]=null,e['lastUpdated']=new Date()[_0x5e04e6(0x1e6)]();var g=e[_0x5e04e6(0x1cc)]['find'](_0x22a4e7=>_0x22a4e7['id']===a);g&&(g['status']=_0x5e04e6(0x1e5)),e[_0x5e04e6(0x1b8)]={'totalTasks':e['taskFiles'][_0x5e04e6(0x1c0)],'pending':e[_0x5e04e6(0x1cc)][_0x5e04e6(0x1d3)](_0x5509a7=>_0x5509a7[_0x5e04e6(0x1c3)]===_0x5e04e6(0x1e2))[_0x5e04e6(0x1c0)],'inProgress':e[_0x5e04e6(0x1cc)]['filter'](_0x4de949=>_0x4de949['status']===_0x5e04e6(0x1d8))[_0x5e04e6(0x1c0)],'completed':e['taskFiles'][_0x5e04e6(0x1d3)](_0xe8ec46=>_0xe8ec46['status']===_0x5e04e6(0x1e5))[_0x5e04e6(0x1c0)],'blocked':e[_0x5e04e6(0x1cc)]['filter'](_0x110c82=>_0x110c82['status']===_0x5e04e6(0x1e8))[_0x5e04e6(0x1c0)]},n[_0x5e04e6(0x1a0)](r,JSON[_0x5e04e6(0x1f1)](e,null,0x2)),console[_0x5e04e6(0x1d9)](_0x5e04e6(0x1b6)+a),console[_0x5e04e6(0x1d9)](_0x5e04e6(0x1ca)+u+'\x0a'),console[_0x5e04e6(0x1d9)](_0x5e04e6(0x1a1)+s[_0x5e04e6(0x1cd)]),s[_0x5e04e6(0x1d1)]&&console[_0x5e04e6(0x1d9)](_0x5e04e6(0x19b)+s['actualHours']+_0x5e04e6(0x1da));if(s[_0x5e04e6(0x1de)]&&s[_0x5e04e6(0x1d1)]){let t=((s[_0x5e04e6(0x1d1)]-s[_0x5e04e6(0x1de)])/s['estimatedHours']*0x64)[_0x5e04e6(0x1b7)](0x1);console[_0x5e04e6(0x1d9)](_0x5e04e6(0x1dc)+s['estimatedHours']+_0x5e04e6(0x1bc)+t+'%');}var h=(e[_0x5e04e6(0x1b8)]['completed']/e[_0x5e04e6(0x1b8)][_0x5e04e6(0x1dd)]*0x64)[_0x5e04e6(0x1b7)](0x1);console[_0x5e04e6(0x1d9)]('\x0a📈\x20Project\x20progress:\x20'+e[_0x5e04e6(0x1b8)][_0x5e04e6(0x1e5)]+'/'+e[_0x5e04e6(0x1b8)][_0x5e04e6(0x1dd)]+_0x5e04e6(0x1e7)+h+_0x5e04e6(0x1a6));var c=e[_0x5e04e6(0x1cc)]['find'](_0x2adfc1=>_0x2adfc1['status']===_0x5e04e6(0x1e2));function _0x34a5(){var _0x5283c7=['2251855kwdpec','find','actualHours','34809NUGpdJ','filter','9987042cOqPQN','warn','constructor','readFileSync','in_progress','log','\x20hours','QtblS','📊\x20Estimated:\x20','totalTasks','estimatedHours','\x20\x20git\x20add\x20.','14lEGdGe','Vhtwv','pending','Usage:\x20npm\x20run\x20task:done\x20TASK-001\x0a','cUMVd','completed','toISOString','\x20tasks\x20(','blocked','448980XbJbXY','\x0aUncommitted\x20files:','\x20is\x20already\x20completed','apply','\x22\x20is\x20not\x20supported','\x0a❌\x20ERROR:\x20You\x20have\x20uncommitted\x20changes','exit','Dynamic\x20require\x20of\x20\x22','stringify','trim','RtMOl','existsSync','completedAt','Initialize\x20first:\x20npm\x20run\x20plan:init\x0a','⏱️\x20\x20Time\x20taken:\x20','path','Cqsub','YtZfc','WfjJh','writeFileSync','📌\x20','encoding','6690988pMKTjZ','\x20\x20git\x20commit\x20-m\x20\x22[','\x0a✅\x20Task\x20','%)\x0a','argv','FdhGc','\x0a⚠️\x20\x20WARNING:\x20Could\x20not\x20check\x20git\x20status','✅\x20Tracker\x20already\x20synchronized\x0a','join','activeTask','\x0a❌\x20ERROR:\x20Task\x20ID\x20required','wKRID','git\x20status\x20--porcelain','Plan:\x20','✅\x20Tracker\x20synchronized\x0a',']\x20Description\x20of\x20changes\x22','30813584UZIWSx','\x0aCommit\x20all\x20changes\x20before\x20completing\x20task:','.json','\x0a✅\x20Completed\x20task:\x20','toFixed','statistics','startedAt','round','error','h\x20|\x20Variance:\x20','.claude/plans','iQaQi','.claude/ACTIVE-PLAN','length','24680GrJYgh','utf8','status','\x0a❌\x20ERROR:\x20Task\x20tracker\x20not\x20found','toString','🎉\x20ALL\x20TASKS\x20COMPLETED!\x20Project\x20finished.\x0a','iTzQS','TASK-TRACKER.json','parse','📋\x20Plan:\x20','(((.+)+)+)+$','taskFiles','title','search'];_0x34a5=function(){return _0x5283c7;};return _0x34a5();}c?(console['log']('📌\x20Next\x20task\x20available:'),console[_0x5e04e6(0x1d9)]('\x20\x20'+c['id']+':\x20'+c[_0x5e04e6(0x1cd)]),console[_0x5e04e6(0x1d9)]('\x20\x20Start:\x20npm\x20run\x20task:next\x0a')):e[_0x5e04e6(0x1b8)][_0x5e04e6(0x1e5)]===e['statistics'][_0x5e04e6(0x1dd)]&&console[_0x5e04e6(0x1d9)](_0x5e04e6(0x1c6)),process[_0x5e04e6(0x1ef)](0x0);
2
+ var _0x15d99f=_0x5a9b;function _0x5b03(){var _0xa2e6fa=['error','2228312KPCVgo','trim','tasks','estimatedHours','existsSync','log','\x20\x20git\x20commit\x20-m\x20\x22[','length','\x0a❌\x20ERROR:\x20No\x20active\x20plan\x20found','Set\x20active\x20plan\x20first:\x20npm\x20run\x20plan:manager\x0a','.json','Syncing\x20tracker\x20status...\x0a','\x0a❌\x20ERROR:\x20Task\x20tracker\x20not\x20found','\x0aCommit\x20all\x20changes\x20before\x20completing\x20task:','status','activeTask','find','PNnwd','📊\x20Estimated:\x20','stringify','\x0a📈\x20Project\x20progress:\x20','9wrpbyZ','⏱️\x20\x20Time\x20taken:\x20','\x20tasks\x20(','.claude/ACTIVE-PLAN','%)\x0a','\x20\x20Start:\x20npm\x20run\x20task:next\x0a','parse','toISOString','in_progress','encoding','158005wVmqoD','writeFileSync','3SgnYZt','txXOK','toString','Make\x20sure\x20all\x20changes\x20are\x20committed!\x0a','\x22\x20is\x20not\x20supported','taskFiles','completedAt','TCOXQ','\x0a❌\x20ERROR:\x20You\x20have\x20uncommitted\x20changes','join','VQNPq','filter','AQAnr','IWDiZ','2495283SsRsCi','startedAt','exit','BgSDR','pending','IUYwu','📌\x20Next\x20task\x20available:','15MjHnnU','1045596HwjKTT','utf8','blocked','Initialize\x20first:\x20npm\x20run\x20plan:init\x0a','constructor','\x0a⚠️\x20\x20WARNING:\x20Could\x20not\x20check\x20git\x20status','HnKdO','statistics','warn','apply','actualHours','4320280iWBoWK',']\x20Description\x20of\x20changes\x22','357522LdnALn','141050vezjgj','📌\x20','Plan:\x20','📋\x20Plan:\x20','(((.+)+)+)+$','search','tPIux','toFixed','lastUpdated','path','title','TahxQ','readFileSync','\x20is\x20already\x20completed','AsylX','completed','totalTasks','.claude/plans','\x20\x20git\x20add\x20.'];_0x5b03=function(){return _0xa2e6fa;};return _0x5b03();}(function(_0x54d050,_0x34b40b){var _0x2085b7=_0x5a9b,_0x137085=_0x54d050();while(!![]){try{var _0x28f589=-parseInt(_0x2085b7(0x16a))/0x1+parseInt(_0x2085b7(0x137))/0x2+parseInt(_0x2085b7(0x16c))/0x3*(-parseInt(_0x2085b7(0x182))/0x4)+-parseInt(_0x2085b7(0x181))/0x5*(-parseInt(_0x2085b7(0x136))/0x6)+-parseInt(_0x2085b7(0x17a))/0x7+parseInt(_0x2085b7(0x14b))/0x8+-parseInt(_0x2085b7(0x160))/0x9*(-parseInt(_0x2085b7(0x134))/0xa);if(_0x28f589===_0x34b40b)break;else _0x137085['push'](_0x137085['shift']());}catch(_0x3c594d){_0x137085['push'](_0x137085['shift']());}}}(_0x5b03,0x2ceac));var _0xc36dba=(function(){var _0x20cf24=_0x5a9b,_0x11b9dd={};_0x11b9dd['IUYwu']=function(_0x9cb63d,_0x338a93){return _0x9cb63d===_0x338a93;},_0x11b9dd[_0x20cf24(0x173)]='pIqve',_0x11b9dd[_0x20cf24(0x188)]=_0x20cf24(0x142);var _0x37e8eb=_0x11b9dd,_0x5b70cb=!![];return function(_0x10e7b5,_0x5b8b36){var _0x12aabf=_0x20cf24,_0x4ceed4={'IWDiZ':function(_0x159f10,_0x738b70){var _0x3b7232=_0x5a9b;return _0x37e8eb[_0x3b7232(0x17f)](_0x159f10,_0x738b70);},'txXOK':_0x37e8eb[_0x12aabf(0x173)],'tPIux':_0x12aabf(0x178),'UeUpB':_0x12aabf(0x176),'cAoAB':_0x37e8eb[_0x12aabf(0x188)]},_0xdbe489=_0x5b70cb?function(){var _0x489867=_0x12aabf;if(_0x4ceed4['IWDiZ'](_0x4ceed4[_0x489867(0x16d)],_0x4ceed4[_0x489867(0x13d)]))_0x2982b0[_0x489867(0x131)](_0x489867(0x187)),_0x208cfb[_0x489867(0x131)](_0x489867(0x16f));else{if(_0x5b8b36){if(_0x4ceed4[_0x489867(0x179)](_0x4ceed4['UeUpB'],_0x4ceed4['cAoAB'])){var _0x2bf43e=_0x3af423?function(){var _0x258fe9=_0x489867;if(_0x24c4b1){var _0x5ca530=_0x4c4e46[_0x258fe9(0x132)](_0x4ab30d,arguments);return _0x522f65=null,_0x5ca530;}}:function(){};return _0x20323b=![],_0x2bf43e;}else{var _0x29fa60=_0x5b8b36['apply'](_0x10e7b5,arguments);return _0x5b8b36=null,_0x29fa60;}}}}:function(){};return _0x5b70cb=![],_0xdbe489;};}()),_0x1d7c13=_0xc36dba(this,function(){var _0x2d2b34=_0x5a9b,_0x11f959={};_0x11f959[_0x2d2b34(0x15c)]=_0x2d2b34(0x13b);var _0x225b65=_0x11f959;return _0x1d7c13[_0x2d2b34(0x16e)]()['search'](_0x225b65[_0x2d2b34(0x15c)])['toString']()[_0x2d2b34(0x186)](_0x1d7c13)[_0x2d2b34(0x13c)](_0x225b65[_0x2d2b34(0x15c)]);});_0x1d7c13();var i=(_0x101aac=>typeof require<'u'?require:typeof Proxy<'u'?new Proxy(_0x101aac,{'get':(_0x182683,_0x435131)=>(typeof require<'u'?require:_0x182683)[_0x435131]}):_0x101aac)(function(_0xc9e286){var _0x43ee5e=_0x5a9b,_0x5ebf89={'AsylX':function(_0xa300ec,_0x257ed6){return _0xa300ec<_0x257ed6;},'zRdbQ':function(_0xbc5bf0,_0x5f3374){return _0xbc5bf0(_0x5f3374);},'BgSDR':function(_0x222b36,_0x1f87f1){return _0x222b36+_0x1f87f1;},'MREbz':'Dynamic\x20require\x20of\x20\x22','afCkN':_0x43ee5e(0x170)};if(_0x5ebf89[_0x43ee5e(0x145)](typeof require,'u'))return require[_0x43ee5e(0x132)](this,arguments);throw _0x5ebf89['zRdbQ'](Error,_0x5ebf89[_0x43ee5e(0x17d)](_0x5ebf89[_0x43ee5e(0x17d)](_0x5ebf89['MREbz'],_0xc9e286),_0x5ebf89['afCkN']));}),n=i('fs'),d=i(_0x15d99f(0x140)),a=process['argv'][0x2];a||(console[_0x15d99f(0x14a)]('\x0a❌\x20ERROR:\x20Task\x20ID\x20required'),console[_0x15d99f(0x14a)]('Usage:\x20npm\x20run\x20task:done\x20TASK-001\x0a'),process[_0x15d99f(0x17c)](0x1));var p=_0x15d99f(0x163);n['existsSync'](p)||(console[_0x15d99f(0x14a)](_0x15d99f(0x153)),console[_0x15d99f(0x14a)](_0x15d99f(0x154)),process['exit'](0x1));var u=n[_0x15d99f(0x143)](p,_0x15d99f(0x183))[_0x15d99f(0x14c)](),k=d['join'](_0x15d99f(0x148),u),r=d[_0x15d99f(0x175)](k,'TASK-TRACKER.json'),l=d['join'](k,_0x15d99f(0x14d),a+_0x15d99f(0x155));n['existsSync'](r)||(console[_0x15d99f(0x14a)](_0x15d99f(0x157)),console[_0x15d99f(0x14a)](_0x15d99f(0x139)+u),console['error'](_0x15d99f(0x185)),process[_0x15d99f(0x17c)](0x1)),n[_0x15d99f(0x14f)](l)||(console[_0x15d99f(0x14a)]('\x0a❌\x20ERROR:\x20Task\x20file\x20not\x20found:\x20'+l+'\x0a'),process['exit'](0x1));var e=JSON[_0x15d99f(0x166)](n[_0x15d99f(0x143)](r,_0x15d99f(0x183))),s=JSON['parse'](n[_0x15d99f(0x143)](l,'utf8')),f=s[_0x15d99f(0x159)]===_0x15d99f(0x146);if(f){console[_0x15d99f(0x150)]('\x0a✅\x20Task\x20'+a+_0x15d99f(0x144)),console[_0x15d99f(0x150)](_0x15d99f(0x156));let t=e[_0x15d99f(0x171)][_0x15d99f(0x15b)](_0x504196=>_0x504196['id']===a);t&&t[_0x15d99f(0x159)]!=='completed'?(t[_0x15d99f(0x159)]=_0x15d99f(0x146),e['statistics']={'totalTasks':e['taskFiles']['length'],'pending':e[_0x15d99f(0x171)]['filter'](_0x37bb26=>_0x37bb26['status']==='pending')[_0x15d99f(0x152)],'inProgress':e[_0x15d99f(0x171)]['filter'](_0x53191e=>_0x53191e[_0x15d99f(0x159)]===_0x15d99f(0x168))[_0x15d99f(0x152)],'completed':e[_0x15d99f(0x171)][_0x15d99f(0x177)](_0x229c96=>_0x229c96[_0x15d99f(0x159)]===_0x15d99f(0x146))[_0x15d99f(0x152)],'blocked':e[_0x15d99f(0x171)][_0x15d99f(0x177)](_0x2cec85=>_0x2cec85[_0x15d99f(0x159)]===_0x15d99f(0x184))['length']},e['activeTask']=null,e[_0x15d99f(0x13f)]=new Date()[_0x15d99f(0x167)](),n['writeFileSync'](r,JSON[_0x15d99f(0x15e)](e,null,0x2)),console[_0x15d99f(0x150)]('✅\x20Tracker\x20synchronized\x0a')):console[_0x15d99f(0x150)]('✅\x20Tracker\x20already\x20synchronized\x0a'),process['exit'](0x0);}var {execSync:S}=i('child_process');try{var _0x53c4a3={};_0x53c4a3[_0x15d99f(0x169)]='utf8';let t=S('git\x20status\x20--porcelain',_0x53c4a3);t[_0x15d99f(0x14c)]()&&(console[_0x15d99f(0x14a)](_0x15d99f(0x174)),console[_0x15d99f(0x14a)]('\x0aUncommitted\x20files:'),console[_0x15d99f(0x14a)](t),console[_0x15d99f(0x14a)](_0x15d99f(0x158)),console[_0x15d99f(0x14a)](_0x15d99f(0x149)),console[_0x15d99f(0x14a)](_0x15d99f(0x151)+a+_0x15d99f(0x135)),console['error'](''),process[_0x15d99f(0x17c)](0x1));}catch{console[_0x15d99f(0x131)]('\x0a⚠️\x20\x20WARNING:\x20Could\x20not\x20check\x20git\x20status'),console[_0x15d99f(0x131)](_0x15d99f(0x16f));}function _0x5a9b(_0x1a2a86,_0x5bfaa8){_0x1a2a86=_0x1a2a86-0x130;var _0x3e659d=_0x5b03();var _0x1d7c13=_0x3e659d[_0x1a2a86];return _0x1d7c13;}s['status']=_0x15d99f(0x146),s[_0x15d99f(0x172)]=new Date()[_0x15d99f(0x167)]();if(s[_0x15d99f(0x17b)]){let t=new Date(s[_0x15d99f(0x17b)]),o=new Date(s[_0x15d99f(0x172)]);s[_0x15d99f(0x133)]=Math['round']((o-t)/(0x3e8*0x3c*0x3c)*0xa)/0xa;}n['writeFileSync'](l,JSON['stringify'](s,null,0x2)),e[_0x15d99f(0x15a)]=null,e['lastUpdated']=new Date()[_0x15d99f(0x167)]();var g=e[_0x15d99f(0x171)][_0x15d99f(0x15b)](_0x385cc0=>_0x385cc0['id']===a);g&&(g[_0x15d99f(0x159)]=_0x15d99f(0x146)),e['statistics']={'totalTasks':e[_0x15d99f(0x171)]['length'],'pending':e[_0x15d99f(0x171)][_0x15d99f(0x177)](_0x5c7801=>_0x5c7801[_0x15d99f(0x159)]===_0x15d99f(0x17e))[_0x15d99f(0x152)],'inProgress':e[_0x15d99f(0x171)][_0x15d99f(0x177)](_0x612ba9=>_0x612ba9[_0x15d99f(0x159)]==='in_progress')[_0x15d99f(0x152)],'completed':e[_0x15d99f(0x171)][_0x15d99f(0x177)](_0x341639=>_0x341639['status']===_0x15d99f(0x146))[_0x15d99f(0x152)],'blocked':e[_0x15d99f(0x171)]['filter'](_0x2352c7=>_0x2352c7['status']==='blocked')[_0x15d99f(0x152)]},n[_0x15d99f(0x16b)](r,JSON['stringify'](e,null,0x2)),console[_0x15d99f(0x150)]('\x0a✅\x20Completed\x20task:\x20'+a),console[_0x15d99f(0x150)](_0x15d99f(0x13a)+u+'\x0a'),console[_0x15d99f(0x150)](_0x15d99f(0x138)+s['title']),s[_0x15d99f(0x133)]&&console[_0x15d99f(0x150)](_0x15d99f(0x161)+s['actualHours']+'\x20hours');if(s[_0x15d99f(0x14e)]&&s['actualHours']){let t=((s[_0x15d99f(0x133)]-s[_0x15d99f(0x14e)])/s[_0x15d99f(0x14e)]*0x64)[_0x15d99f(0x13e)](0x1);console[_0x15d99f(0x150)](_0x15d99f(0x15d)+s[_0x15d99f(0x14e)]+'h\x20|\x20Variance:\x20'+t+'%');}var h=(e[_0x15d99f(0x130)][_0x15d99f(0x146)]/e[_0x15d99f(0x130)]['totalTasks']*0x64)[_0x15d99f(0x13e)](0x1);console[_0x15d99f(0x150)](_0x15d99f(0x15f)+e[_0x15d99f(0x130)][_0x15d99f(0x146)]+'/'+e[_0x15d99f(0x130)][_0x15d99f(0x147)]+_0x15d99f(0x162)+h+_0x15d99f(0x164));var c=e[_0x15d99f(0x171)]['find'](_0x2625b6=>_0x2625b6['status']===_0x15d99f(0x17e));c?(console[_0x15d99f(0x150)](_0x15d99f(0x180)),console[_0x15d99f(0x150)]('\x20\x20'+c['id']+':\x20'+c[_0x15d99f(0x141)]),console['log'](_0x15d99f(0x165))):e[_0x15d99f(0x130)][_0x15d99f(0x146)]===e[_0x15d99f(0x130)][_0x15d99f(0x147)]&&console['log']('🎉\x20ALL\x20TASKS\x20COMPLETED!\x20Project\x20finished.\x0a'),process[_0x15d99f(0x17c)](0x0);
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- var _0x1bcf99=_0x287a;(function(_0x4ee6e1,_0x7da514){var _0x410bb9=_0x287a,_0x181bef=_0x4ee6e1();while(!![]){try{var _0x3fb984=parseInt(_0x410bb9(0x229))/0x1*(-parseInt(_0x410bb9(0x200))/0x2)+parseInt(_0x410bb9(0x1f7))/0x3*(-parseInt(_0x410bb9(0x233))/0x4)+-parseInt(_0x410bb9(0x21d))/0x5*(parseInt(_0x410bb9(0x20a))/0x6)+-parseInt(_0x410bb9(0x21c))/0x7*(parseInt(_0x410bb9(0x22b))/0x8)+parseInt(_0x410bb9(0x231))/0x9*(-parseInt(_0x410bb9(0x210))/0xa)+-parseInt(_0x410bb9(0x236))/0xb+parseInt(_0x410bb9(0x232))/0xc;if(_0x3fb984===_0x7da514)break;else _0x181bef['push'](_0x181bef['shift']());}catch(_0x116e68){_0x181bef['push'](_0x181bef['shift']());}}}(_0x278d,0xd442b));var _0x33deb4=(function(){var _0x7db972=_0x287a,_0x5c6417={'aanSK':function(_0x159343,_0x26f21c){return _0x159343<_0x26f21c;},'dgpEv':function(_0x1d1ba1,_0x1a9ea4){return _0x1d1ba1(_0x1a9ea4);},'wxHgK':function(_0x578e27,_0x5cad56){return _0x578e27+_0x5cad56;},'JyPTO':_0x7db972(0x1f0),'BwpNj':'\x22\x20is\x20not\x20supported','Lxiak':function(_0x4392f6,_0x568c6d){return _0x4392f6===_0x568c6d;},'jCBLE':_0x7db972(0x223),'wJiYE':'Migrations\x20must\x20be\x20tested\x20in\x20development/staging\x20first','JHZwu':_0x7db972(0x21a),'BMaKk':'BbELI','oKvry':_0x7db972(0x20f),'ErjOz':_0x7db972(0x1ff),'IykRH':_0x7db972(0x201)},_0xb073ba=!![];return function(_0x1661cc,_0x4f5d80){var _0x832593=_0x7db972,_0x4f0e5f={'wxMfl':function(_0x1bb361,_0x4f4358){return _0x5c6417['Lxiak'](_0x1bb361,_0x4f4358);},'TVyKX':_0x5c6417['jCBLE'],'zEePa':_0x832593(0x230),'lvRzJ':_0x5c6417['wJiYE'],'MVqYD':_0x5c6417[_0x832593(0x206)],'Wszrn':function(_0x2a796c,_0x5c1e40){return _0x2a796c===_0x5c1e40;},'IweYn':_0x5c6417[_0x832593(0x212)],'IJyVF':_0x5c6417[_0x832593(0x228)]};if(_0x5c6417['ErjOz']===_0x5c6417['IykRH']){if(_0x5c6417[_0x832593(0x20e)](typeof _0x483672,'u'))return _0x26785c['apply'](this,arguments);throw _0x5c6417[_0x832593(0x23a)](_0x5cd4a7,_0x5c6417[_0x832593(0x21f)](_0x5c6417[_0x832593(0x21f)](_0x5c6417[_0x832593(0x224)],_0x1210dd),_0x5c6417[_0x832593(0x21e)]));}else{var _0x54b973=_0xb073ba?function(){var _0x3fb457=_0x832593;if(_0x4f0e5f['wxMfl'](_0x3fb457(0x22d),_0x4f0e5f[_0x3fb457(0x1ed)])){var _0x2aefcb=_0x576c59?function(){var _0x5149f1=_0x3fb457;if(_0x3f3bf5){var _0x423e3f=_0x7418df[_0x5149f1(0x1fb)](_0x3ac63a,arguments);return _0x4a8f8f=null,_0x423e3f;}}:function(){};return _0x35fe4e=![],_0x2aefcb;}else{if(_0x4f5d80){if(_0x4f0e5f[_0x3fb457(0x1eb)](_0x4f0e5f[_0x3fb457(0x222)],_0x4f0e5f[_0x3fb457(0x203)])){let _0x41e73e=_0x2c440c[_0x3fb457(0x208)]['NODE_ENV']||_0x3fb457(0x213);_0x2369d4[_0x3fb457(0x239)]('\x20\x20Environment:\x20'+_0x41e73e),_0x4f0e5f[_0x3fb457(0x22a)](_0x41e73e,_0x4f0e5f['TVyKX'])&&(_0x5719e1['push'](_0x4f0e5f[_0x3fb457(0x1f3)]),_0xc410d0[_0x3fb457(0x214)](_0x4f0e5f[_0x3fb457(0x237)]),_0xfd1901[_0x3fb457(0x214)](_0x3fb457(0x20d)));}else{var _0x51aa4a=_0x4f5d80[_0x3fb457(0x1fb)](_0x1661cc,arguments);return _0x4f5d80=null,_0x51aa4a;}}}}:function(){};return _0xb073ba=![],_0x54b973;}};}()),_0x55206c=_0x33deb4(this,function(){var _0x24b3d3=_0x287a,_0x5a5d44={};_0x5a5d44['Alagz']=_0x24b3d3(0x1fd);var _0x53e8b9=_0x5a5d44;return _0x55206c[_0x24b3d3(0x225)]()[_0x24b3d3(0x20b)](_0x53e8b9[_0x24b3d3(0x220)])['toString']()[_0x24b3d3(0x1fe)](_0x55206c)[_0x24b3d3(0x20b)](_0x53e8b9[_0x24b3d3(0x220)]);});_0x55206c();var e=(_0x496356=>typeof require<'u'?require:typeof Proxy<'u'?new Proxy(_0x496356,{'get':(_0x2fd53a,_0x442392)=>(typeof require<'u'?require:_0x2fd53a)[_0x442392]}):_0x496356)(function(_0x2a87d6){var _0x167e6f=_0x287a,_0x526ce9={'kvPbK':function(_0x19ec8f,_0x5435e8){return _0x19ec8f<_0x5435e8;},'cISTZ':function(_0x499b07,_0x1cc35f){return _0x499b07(_0x1cc35f);},'clDSN':function(_0xbe7a22,_0x5508d0){return _0xbe7a22+_0x5508d0;},'WjJbk':_0x167e6f(0x1f1)};if(_0x526ce9[_0x167e6f(0x1fc)](typeof require,'u'))return require[_0x167e6f(0x1fb)](this,arguments);throw _0x526ce9[_0x167e6f(0x1ee)](Error,_0x526ce9['clDSN'](_0x526ce9[_0x167e6f(0x1f4)](_0x167e6f(0x1f0),_0x2a87d6),_0x526ce9[_0x167e6f(0x235)]));}),p=e('fs'),h=e(_0x1bcf99(0x1ea)),{execSync:l}=e('child_process'),u=process[_0x1bcf99(0x22c)][0x2]||'{}',s=JSON['parse'](u),i=s[_0x1bcf99(0x1f6)]?.[_0x1bcf99(0x23b)]||'';i['match'](/migrate|migration/i)||process[_0x1bcf99(0x211)](0x0);function _0x287a(_0x161874,_0x227417){_0x161874=_0x161874-0x1ea;var _0x4573d7=_0x278d();var _0x55206c=_0x4573d7[_0x161874];return _0x55206c;}var n=[],t=[],a=s[_0x1bcf99(0x238)]||'';console[_0x1bcf99(0x239)](_0x1bcf99(0x227));try{let o=process['env'][_0x1bcf99(0x226)]||'development';console[_0x1bcf99(0x239)](_0x1bcf99(0x207)+o),o==='production'&&(n[_0x1bcf99(0x214)]('BLOCKED:\x20Cannot\x20run\x20migrations\x20directly\x20in\x20production'),n[_0x1bcf99(0x214)](_0x1bcf99(0x23c)),n[_0x1bcf99(0x214)](_0x1bcf99(0x20d)));}catch{}try{var _0x2202b9={};_0x2202b9[_0x1bcf99(0x217)]='utf8',l('git\x20status\x20--short',_0x2202b9)[_0x1bcf99(0x1f9)](/migrations?\//)&&(t['push'](_0x1bcf99(0x216)),t[_0x1bcf99(0x214)](_0x1bcf99(0x20c)));}catch{}function _0x278d(){var _0x485d15=['oKSZR','\x20\x20🔙\x20Rolling\x20back\x20migration...\x0a','42SrtoIe','1146135wIWkgh','BwpNj','wxHgK','Alagz','BLOCKED:\x20Migration\x20rollback\x20failed','IweYn','production','JyPTO','toString','NODE_ENV','\x0a🔄\x20MIGRATION\x20WORKFLOW\x20VALIDATION\x0a','oKvry','187970njQLfh','wxMfl','1893352YCrQLE','argv','JyzuF','Check\x20database\x20logs\x20for\x20details','\x20\x20\x20\x20\x203.\x20Check\x20for\x20type\x20errors:\x20npm\x20run\x20build','BLOCKED:\x20Cannot\x20run\x20migrations\x20directly\x20in\x20production','106560fWdJtq','89157180LAkBwK','1431992HmqAdQ','Fix\x20migration\x20errors\x20before\x20proceeding','WjJbk','15298646jvlxDi','lvRzJ','tool_output','log','dgpEv','command','Migrations\x20must\x20be\x20tested\x20in\x20development/staging\x20first','path','Wszrn','BLOCKED:\x20Migration\x20execution\x20failed','MVqYD','cISTZ','\x20\x20⚠️\x20\x20After\x20running\x20migrations,\x20you\x20MUST:\x0a','Dynamic\x20require\x20of\x20\x22','\x22\x20is\x20not\x20supported','forEach','zEePa','clDSN','length','tool_input','3AkxlPW','\x0a⚠️\x20\x20MIGRATION\x20WORKFLOW\x20WARNINGS\x0a','match','Manual\x20intervention\x20required','apply','kvPbK','(((.+)+)+)+$','constructor','XFYVG','16JIarTI','VatfY','\x20\x20\x20\x20\x202.\x20Verify\x20all\x20tests\x20pass\x20with\x20new\x20schema','IJyVF','\x0a❌\x20MIGRATION\x20WORKFLOW\x20FAILED\x0a','error','JHZwu','\x20\x20Environment:\x20','env','\x20\x20\x20\x20\x204.\x20Test\x20rollback:\x20npm\x20run\x20migrate:down\x20(or\x20equivalent)\x0a','24nTDfxY','search','Commit\x20migrations\x20to\x20version\x20control\x20before\x20running\x20them','Use\x20deployment\x20pipeline\x20to\x20run\x20production\x20migrations','aanSK','GAvqr','820ysTJSP','exit','BMaKk','development','push','After\x20migration,\x20run\x20npm\x20test\x20to\x20verify\x20schema\x20compatibility','Uncommitted\x20migration\x20files\x20detected','encoding','test','warn'];_0x278d=function(){return _0x485d15;};return _0x278d();}var g=[/error/i,/failed/i,/exception/i,/syntax error/i,/constraint/i];for(let o of g)if(o[_0x1bcf99(0x218)](a)){n[_0x1bcf99(0x214)](_0x1bcf99(0x1ec)),n[_0x1bcf99(0x214)](_0x1bcf99(0x234)),n[_0x1bcf99(0x214)](_0x1bcf99(0x22e));break;}i[_0x1bcf99(0x1f9)](/migrate.*up|migration.*run/i)&&(console[_0x1bcf99(0x239)](_0x1bcf99(0x1ef)),console[_0x1bcf99(0x239)]('\x20\x20\x20\x20\x201.\x20Run:\x20npm\x20test'),console[_0x1bcf99(0x239)](_0x1bcf99(0x202)),console[_0x1bcf99(0x239)](_0x1bcf99(0x22f)),console[_0x1bcf99(0x239)](_0x1bcf99(0x209)),t[_0x1bcf99(0x214)](_0x1bcf99(0x215))),i['match'](/migrate.*down|migration.*rollback/i)&&(console[_0x1bcf99(0x239)](_0x1bcf99(0x21b)),a[_0x1bcf99(0x1f9)](/error|failed/i)?(n[_0x1bcf99(0x214)](_0x1bcf99(0x221)),n['push']('Database\x20may\x20be\x20in\x20inconsistent\x20state'),n[_0x1bcf99(0x214)](_0x1bcf99(0x1fa))):console['log']('\x20\x20✅\x20Migration\x20rollback\x20successful\x0a')),n['length']>0x0&&(console[_0x1bcf99(0x205)](_0x1bcf99(0x204)),n[_0x1bcf99(0x1f2)](_0x4992b0=>console['error']('\x20\x20'+_0x4992b0)),console[_0x1bcf99(0x205)]('\x0a'),process[_0x1bcf99(0x211)](0x2)),t[_0x1bcf99(0x1f5)]>0x0&&(console[_0x1bcf99(0x219)](_0x1bcf99(0x1f8)),t['forEach'](_0x2da80e=>console[_0x1bcf99(0x219)]('\x20\x20'+_0x2da80e)),console[_0x1bcf99(0x219)]('\x0a')),process['exit'](0x0);
2
+ var _0x307685=_0x2384;(function(_0x373217,_0x2a8a4a){var _0x5d6a83=_0x2384,_0x19b5f0=_0x373217();while(!![]){try{var _0x17ba8b=parseInt(_0x5d6a83(0x107))/0x1+parseInt(_0x5d6a83(0xe6))/0x2+parseInt(_0x5d6a83(0x109))/0x3+-parseInt(_0x5d6a83(0xd2))/0x4+-parseInt(_0x5d6a83(0xf0))/0x5*(-parseInt(_0x5d6a83(0xd0))/0x6)+parseInt(_0x5d6a83(0x104))/0x7*(parseInt(_0x5d6a83(0xd9))/0x8)+parseInt(_0x5d6a83(0xde))/0x9*(-parseInt(_0x5d6a83(0xe0))/0xa);if(_0x17ba8b===_0x2a8a4a)break;else _0x19b5f0['push'](_0x19b5f0['shift']());}catch(_0x3f9214){_0x19b5f0['push'](_0x19b5f0['shift']());}}}(_0x2846,0xec84d));var _0x3b2af5=(function(){var _0x510572=_0x2384,_0x283599={};_0x283599[_0x510572(0xf7)]=_0x510572(0xcf),_0x283599[_0x510572(0xe8)]='QUncJ',_0x283599[_0x510572(0xdc)]='cGdYS';var _0x2ee57b=_0x283599,_0x19d4cd=!![];return function(_0x5cb611,_0x5e7436){var _0x4d9222=_0x510572,_0x36370a={};_0x36370a['QzLGJ']=_0x2ee57b[_0x4d9222(0xf7)],_0x36370a[_0x4d9222(0xce)]=_0x2ee57b[_0x4d9222(0xe8)],_0x36370a['rAebe']=_0x2ee57b[_0x4d9222(0xdc)];var _0x3f700f=_0x36370a,_0x1d064e=_0x19d4cd?function(){var _0x45d23a=_0x4d9222;if(_0x5e7436){if(_0x3f700f[_0x45d23a(0xce)]!==_0x3f700f[_0x45d23a(0xdf)]){var _0x395e7e=_0x5e7436['apply'](_0x5cb611,arguments);return _0x5e7436=null,_0x395e7e;}else return _0x5e035d[_0x45d23a(0xda)]()[_0x45d23a(0xd5)](_0x3f700f[_0x45d23a(0xe9)])[_0x45d23a(0xda)]()['constructor'](_0xeccff4)[_0x45d23a(0xd5)](_0x3f700f[_0x45d23a(0xe9)]);}}:function(){};return _0x19d4cd=![],_0x1d064e;};}()),_0x5e32b4=_0x3b2af5(this,function(){var _0x165f24=_0x2384,_0x1f3f7a={};_0x1f3f7a[_0x165f24(0xe3)]=_0x165f24(0xcf);var _0x1076ad=_0x1f3f7a;return _0x5e32b4['toString']()[_0x165f24(0xd5)](_0x165f24(0xcf))[_0x165f24(0xda)]()['constructor'](_0x5e32b4)[_0x165f24(0xd5)](_0x1076ad['MAqQq']);});_0x5e32b4();var e=(_0x1f013b=>typeof require<'u'?require:typeof Proxy<'u'?new Proxy(_0x1f013b,{'get':(_0x5b7ff6,_0x372f35)=>(typeof require<'u'?require:_0x5b7ff6)[_0x372f35]}):_0x1f013b)(function(_0x263f92){var _0x446367=_0x2384,_0x5e9bb0={'hfNDe':function(_0x35d8fc,_0x28c4ca){return _0x35d8fc(_0x28c4ca);},'KsKcv':function(_0x3bc0be,_0x5b7974){return _0x3bc0be+_0x5b7974;},'OgOCp':function(_0xa60258,_0x4ffe7c){return _0xa60258+_0x4ffe7c;}};if(typeof require<'u')return require[_0x446367(0xe1)](this,arguments);throw _0x5e9bb0[_0x446367(0xd1)](Error,_0x5e9bb0[_0x446367(0xf3)](_0x5e9bb0[_0x446367(0xf1)]('Dynamic\x20require\x20of\x20\x22',_0x263f92),_0x446367(0xdb)));}),p=e('fs'),h=e(_0x307685(0xe4)),{execSync:l}=e(_0x307685(0xef)),u=process[_0x307685(0xee)][0x2]||'{}',s=JSON[_0x307685(0x101)](u),i=s[_0x307685(0xf5)]?.[_0x307685(0xd4)]||'';function _0x2384(_0x4b30a2,_0x35499f){_0x4b30a2=_0x4b30a2-0xcc;var _0x25b453=_0x2846();var _0x5e32b4=_0x25b453[_0x4b30a2];return _0x5e32b4;}i[_0x307685(0x103)](/migrate|migration/i)||process[_0x307685(0xf6)](0x0);function _0x2846(){var _0x21a816=['2315619qNjGoJ','warn','Database\x20may\x20be\x20in\x20inconsistent\x20state','\x0a❌\x20MIGRATION\x20WORKFLOW\x20FAILED\x0a','QtoXx','(((.+)+)+)+$','42648UDBQFW','hfNDe','1539200MiLAdM','utf8','command','search','push','forEach','\x20\x20✅\x20Migration\x20rollback\x20successful\x0a','12002192VMNwwd','toString','\x22\x20is\x20not\x20supported','Ocncw','\x20\x20\x20\x20\x202.\x20Verify\x20all\x20tests\x20pass\x20with\x20new\x20schema','15084387KqqJkQ','rAebe','30EGwoig','apply','error','MAqQq','path','After\x20migration,\x20run\x20npm\x20test\x20to\x20verify\x20schema\x20compatibility','2114542OekhVy','development','xHeKq','QzLGJ','Migrations\x20must\x20be\x20tested\x20in\x20development/staging\x20first','\x0a⚠️\x20\x20MIGRATION\x20WORKFLOW\x20WARNINGS\x0a','\x20\x20🔙\x20Rolling\x20back\x20migration...\x0a','log','argv','child_process','820EXwWqv','OgOCp','BLOCKED:\x20Migration\x20execution\x20failed','KsKcv','production','tool_input','exit','ZlyhZ','\x20\x20Environment:\x20','\x20\x20\x20\x20\x201.\x20Run:\x20npm\x20test','BLOCKED:\x20Migration\x20rollback\x20failed','\x20\x20\x20\x20\x204.\x20Test\x20rollback:\x20npm\x20run\x20migrate:down\x20(or\x20equivalent)\x0a','Commit\x20migrations\x20to\x20version\x20control\x20before\x20running\x20them','\x0a🔄\x20MIGRATION\x20WORKFLOW\x20VALIDATION\x0a','length','\x20\x20⚠️\x20\x20After\x20running\x20migrations,\x20you\x20MUST:\x0a','NODE_ENV','parse','\x20\x20\x20\x20\x203.\x20Check\x20for\x20type\x20errors:\x20npm\x20run\x20build','match','7NYRCIA','Manual\x20intervention\x20required','git\x20status\x20--short','1886580otUKoz','Use\x20deployment\x20pipeline\x20to\x20run\x20production\x20migrations'];_0x2846=function(){return _0x21a816;};return _0x2846();}var n=[],t=[],a=s['tool_output']||'';console[_0x307685(0xed)](_0x307685(0xfd));try{let o=process['env'][_0x307685(0x100)]||_0x307685(0xe7);console['log'](_0x307685(0xf8)+o),o===_0x307685(0xf4)&&(n['push']('BLOCKED:\x20Cannot\x20run\x20migrations\x20directly\x20in\x20production'),n['push'](_0x307685(0xea)),n[_0x307685(0xd6)](_0x307685(0x108)));}catch{}try{var _0xa37dca={};_0xa37dca['encoding']=_0x307685(0xd3),l(_0x307685(0x106),_0xa37dca)[_0x307685(0x103)](/migrations?\//)&&(t['push']('Uncommitted\x20migration\x20files\x20detected'),t[_0x307685(0xd6)](_0x307685(0xfc)));}catch{}var g=[/error/i,/failed/i,/exception/i,/syntax error/i,/constraint/i];for(let o of g)if(o['test'](a)){n[_0x307685(0xd6)](_0x307685(0xf2)),n[_0x307685(0xd6)]('Fix\x20migration\x20errors\x20before\x20proceeding'),n['push']('Check\x20database\x20logs\x20for\x20details');break;}i[_0x307685(0x103)](/migrate.*up|migration.*run/i)&&(console['log'](_0x307685(0xff)),console[_0x307685(0xed)](_0x307685(0xf9)),console[_0x307685(0xed)](_0x307685(0xdd)),console['log'](_0x307685(0x102)),console[_0x307685(0xed)](_0x307685(0xfb)),t[_0x307685(0xd6)](_0x307685(0xe5))),i['match'](/migrate.*down|migration.*rollback/i)&&(console[_0x307685(0xed)](_0x307685(0xec)),a[_0x307685(0x103)](/error|failed/i)?(n['push'](_0x307685(0xfa)),n[_0x307685(0xd6)](_0x307685(0xcc)),n['push'](_0x307685(0x105))):console[_0x307685(0xed)](_0x307685(0xd8))),n['length']>0x0&&(console[_0x307685(0xe2)](_0x307685(0xcd)),n[_0x307685(0xd7)](_0xb8081a=>console[_0x307685(0xe2)]('\x20\x20'+_0xb8081a)),console[_0x307685(0xe2)]('\x0a'),process[_0x307685(0xf6)](0x2)),t[_0x307685(0xfe)]>0x0&&(console['warn'](_0x307685(0xeb)),t[_0x307685(0xd7)](_0x386c99=>console[_0x307685(0x10a)]('\x20\x20'+_0x386c99)),console[_0x307685(0x10a)]('\x0a')),process[_0x307685(0xf6)](0x0);
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- const _0x125b51=_0x222a;(function(_0x5a1241,_0x52298d){const _0x203303=_0x222a,_0x1ab7b7=_0x5a1241();while(!![]){try{const _0x1f00b6=parseInt(_0x203303(0x1b3))/0x1+parseInt(_0x203303(0x1a1))/0x2*(-parseInt(_0x203303(0x187))/0x3)+parseInt(_0x203303(0x177))/0x4*(parseInt(_0x203303(0x17c))/0x5)+-parseInt(_0x203303(0x166))/0x6*(parseInt(_0x203303(0x1a6))/0x7)+-parseInt(_0x203303(0x1b1))/0x8+-parseInt(_0x203303(0x1ad))/0x9*(parseInt(_0x203303(0x1b9))/0xa)+parseInt(_0x203303(0x1a7))/0xb;if(_0x1f00b6===_0x52298d)break;else _0x1ab7b7['push'](_0x1ab7b7['shift']());}catch(_0x3d9e6d){_0x1ab7b7['push'](_0x1ab7b7['shift']());}}}(_0x3045,0xe671d));const _0x52c388=(function(){const _0x3dca38=_0x222a,_0x420e9c={};_0x420e9c[_0x3dca38(0x1b0)]=function(_0x351294,_0x1da302){return _0x351294===_0x1da302;},_0x420e9c[_0x3dca38(0x178)]=_0x3dca38(0x1ba),_0x420e9c[_0x3dca38(0x186)]=_0x3dca38(0x174),_0x420e9c[_0x3dca38(0x1a9)]=_0x3dca38(0x18b),_0x420e9c[_0x3dca38(0x183)]='utf8',_0x420e9c[_0x3dca38(0x172)]=_0x3dca38(0x181),_0x420e9c[_0x3dca38(0x194)]=function(_0x32b90e,_0x1eb524){return _0x32b90e!==_0x1eb524;},_0x420e9c[_0x3dca38(0x193)]='in_progress',_0x420e9c[_0x3dca38(0x17f)]=_0x3dca38(0x196),_0x420e9c['THDIT']=_0x3dca38(0x185);const _0x59881d=_0x420e9c;let _0x2fc7cb=!![];return function(_0x4833d3,_0x4e99e4){const _0x3dcc6b=_0x3dca38,_0x3e4c9d={'qBHYr':_0x59881d['pjKEg'],'wCXiL':_0x59881d[_0x3dcc6b(0x172)],'vjzFE':function(_0x2b7db0,_0x49c770){const _0x20e995=_0x3dcc6b;return _0x59881d[_0x20e995(0x194)](_0x2b7db0,_0x49c770);},'GNvRA':_0x59881d['AbLir'],'qfmeM':_0x59881d['zuLHv']};if(_0x59881d['THDIT']===_0x59881d[_0x3dcc6b(0x165)]){const _0x14a00e=_0x2fc7cb?function(){const _0x10a029=_0x3dcc6b;if(_0x59881d['QvenF'](_0x59881d['wKwxv'],_0x59881d[_0x10a029(0x186)])){let _0xb88cf8=_0x4e2764[_0x10a029(0x198)](_0x438b68['readFileSync'](_0x59c256,_0x3e4c9d['qBHYr']));if(!_0xb88cf8[_0x10a029(0x16f)])_0x1b9b30[_0x10a029(0x16b)](_0x3e4c9d[_0x10a029(0x169)]),_0x36df71[_0x10a029(0x16b)](_0x10a029(0x184)+_0x1f8ccb),_0x33cb30[_0x10a029(0x16b)](_0x10a029(0x191)+_0x37988e[_0x10a029(0x19f)](_0x2576df)),_0x339315[_0x10a029(0x16b)](_0x10a029(0x1aa)),_0x3f4583[_0x10a029(0x16b)](_0x10a029(0x1ac));else{let _0x4489f=_0x497071[_0x10a029(0x195)](_0x30721c,_0x10a029(0x182),_0xb88cf8[_0x10a029(0x16f)]+'.json');if(_0x562dae[_0x10a029(0x1a5)](_0x4489f)){let _0x343b76=_0x173a87[_0x10a029(0x198)](_0xd78774[_0x10a029(0x1a3)](_0x4489f,_0x3e4c9d[_0x10a029(0x1a8)]));_0x3e4c9d['vjzFE'](_0x343b76[_0x10a029(0x19d)],_0x3e4c9d['GNvRA'])&&(_0x402516[_0x10a029(0x16b)](_0x3e4c9d[_0x10a029(0x17a)]),_0x221e8d['push'](_0x10a029(0x184)+_0x2f272d),_0x15b039[_0x10a029(0x16b)](_0x10a029(0x16d)+_0xb88cf8[_0x10a029(0x16f)]+'\x20['+_0x343b76[_0x10a029(0x19d)]+']'),_0x4ec107[_0x10a029(0x16b)](_0x10a029(0x16c)),_0x19af23[_0x10a029(0x16b)](_0x10a029(0x173)+_0xb88cf8['activeTask']));}}}else{if(_0x4e99e4){const _0x48cc71=_0x4e99e4[_0x10a029(0x175)](_0x4833d3,arguments);return _0x4e99e4=null,_0x48cc71;}}}:function(){};return _0x2fc7cb=![],_0x14a00e;}else return _0x52a249[_0x3dcc6b(0x19c)]()[_0x3dcc6b(0x1b8)](_0x59881d[_0x3dcc6b(0x1a9)])['toString']()['constructor'](_0x25244d)[_0x3dcc6b(0x1b8)](_0x59881d[_0x3dcc6b(0x1a9)]);};}()),_0x100076=_0x52c388(this,function(){const _0x220f64=_0x222a,_0x572a5e={};_0x572a5e[_0x220f64(0x18c)]='(((.+)+)+)+$';const _0x38e5a1=_0x572a5e;return _0x100076[_0x220f64(0x19c)]()[_0x220f64(0x1b8)](_0x220f64(0x18b))[_0x220f64(0x19c)]()[_0x220f64(0x1a0)](_0x100076)[_0x220f64(0x1b8)](_0x38e5a1['xhGjV']);});_0x100076();var h=(_0x41297f=>typeof require<'u'?require:typeof Proxy<'u'?new Proxy(_0x41297f,{'get':(_0x353616,_0x1e5aa4)=>(typeof require<'u'?require:_0x353616)[_0x1e5aa4]}):_0x41297f)(function(_0x3035c9){const _0x497640=_0x222a,_0xf51691={};_0xf51691[_0x497640(0x170)]=function(_0x1b333c,_0x27302d){return _0x1b333c<_0x27302d;},_0xf51691[_0x497640(0x19a)]=function(_0x359ba3,_0x23e0cf){return _0x359ba3+_0x23e0cf;},_0xf51691[_0x497640(0x18f)]=function(_0x3581b0,_0x3d975d){return _0x3581b0+_0x3d975d;},_0xf51691[_0x497640(0x17d)]=_0x497640(0x1ae);const _0xf35cd=_0xf51691;if(_0xf35cd[_0x497640(0x170)](typeof require,'u'))return require[_0x497640(0x175)](this,arguments);throw Error(_0xf35cd[_0x497640(0x19a)](_0xf35cd[_0x497640(0x18f)](_0xf35cd['GKXDl'],_0x3035c9),'\x22\x20is\x20not\x20supported'));}),a=h('fs'),e=h(_0x125b51(0x1a4)),E=process[_0x125b51(0x18d)][0x2]||'{}',m=JSON[_0x125b51(0x198)](E),t=m[_0x125b51(0x1a2)]?.[_0x125b51(0x192)],i=m[_0x125b51(0x1b5)],s=[],f=[],k=_0x125b51(0x188),c=null,o=null;a[_0x125b51(0x1a5)](k)&&(c=a[_0x125b51(0x1a3)](k,'utf8')['trim'](),o=e[_0x125b51(0x195)](_0x125b51(0x19b),c)),t&&t[_0x125b51(0x18e)](_0x125b51(0x1af))&&i===_0x125b51(0x176)&&o&&a[_0x125b51(0x1a5)](e['join'](o,_0x125b51(0x171)))&&(s[_0x125b51(0x16b)]('BLOCKED:\x20Project\x20plan\x20is\x20LOCKED\x20and\x20immutable'),s[_0x125b51(0x16b)]('File:\x20'+e[_0x125b51(0x19f)](t)),s[_0x125b51(0x16b)](_0x125b51(0x167)),s[_0x125b51(0x16b)](_0x125b51(0x17e)));if(c&&o){let n=e[_0x125b51(0x195)](o,_0x125b51(0x199)),l=e['join'](o,_0x125b51(0x171));if(a['existsSync'](l)&&!a[_0x125b51(0x1a5)](n)&&(s[_0x125b51(0x16b)](_0x125b51(0x168)),s[_0x125b51(0x16b)](_0x125b51(0x184)+c),s['push'](_0x125b51(0x1b6)),s[_0x125b51(0x16b)]('\x20\x20npm\x20run\x20plan:init')),t&&(t[_0x125b51(0x16a)](/^\.\/Agent\//)||t['match'](/^Agent\//))&&(i===_0x125b51(0x1b7)||i==='Edit')&&a[_0x125b51(0x1a5)](n)){let r=JSON[_0x125b51(0x198)](a['readFileSync'](n,_0x125b51(0x1b2)));if(!r[_0x125b51(0x16f)])s[_0x125b51(0x16b)]('BLOCKED:\x20No\x20active\x20task'),s[_0x125b51(0x16b)](_0x125b51(0x184)+c),s[_0x125b51(0x16b)](_0x125b51(0x191)+e['basename'](t)),s[_0x125b51(0x16b)]('Start\x20a\x20task\x20first:'),s[_0x125b51(0x16b)]('\x20\x20npm\x20run\x20task:start\x20TASK-XXX');else{let p=e['join'](o,_0x125b51(0x182),r[_0x125b51(0x16f)]+_0x125b51(0x189));if(a['existsSync'](p)){let u=JSON[_0x125b51(0x198)](a[_0x125b51(0x1a3)](p,'utf8'));u['status']!==_0x125b51(0x1ab)&&(s['push'](_0x125b51(0x196)),s[_0x125b51(0x16b)]('Plan:\x20'+c),s[_0x125b51(0x16b)](_0x125b51(0x16d)+r[_0x125b51(0x16f)]+'\x20['+u[_0x125b51(0x19d)]+']'),s['push'](_0x125b51(0x16c)),s['push'](_0x125b51(0x173)+r[_0x125b51(0x16f)]));}}}t&&t[_0x125b51(0x16a)](/\.claude\/plans\/[^/]+\/tasks\/TASK-\d{3}\.json$/)&&(i===_0x125b51(0x176)||i===_0x125b51(0x1b7))&&(s[_0x125b51(0x16b)](_0x125b51(0x180)),s[_0x125b51(0x16b)]('File:\x20'+e[_0x125b51(0x19f)](t)),s['push'](_0x125b51(0x190)),s[_0x125b51(0x16b)](_0x125b51(0x1ac)),s[_0x125b51(0x16b)]('\x20\x20npm\x20run\x20task:done\x20TASK-XXX'));}else t&&(t[_0x125b51(0x16a)](/^\.\/Agent\//)||t[_0x125b51(0x16a)](/^Agent\//))&&(i==='Write'||i===_0x125b51(0x176))&&(s[_0x125b51(0x16b)](_0x125b51(0x16e)),s['push'](_0x125b51(0x191)+e[_0x125b51(0x19f)](t)),s['push']('Set\x20active\x20plan\x20first:'),s[_0x125b51(0x16b)](_0x125b51(0x197)));s[_0x125b51(0x179)]>0x0&&(console[_0x125b51(0x18a)]('\x0a❌\x20STRUCTURED\x20DEVELOPMENT\x20ENFORCEMENT\x20FAILED\x0a'),s[_0x125b51(0x1b4)](_0x9c6cc3=>console[_0x125b51(0x18a)]('\x20\x20'+_0x9c6cc3)),console[_0x125b51(0x18a)]('\x0a'),process[_0x125b51(0x17b)](0x2)),f[_0x125b51(0x179)]>0x0&&(console[_0x125b51(0x19e)](_0x125b51(0x1bb)),f[_0x125b51(0x1b4)](_0x35a716=>console[_0x125b51(0x19e)]('\x20\x20'+_0x35a716)),console['warn']('\x0a')),process['exit'](0x0);function _0x222a(_0x340df6,_0x35e2df){_0x340df6=_0x340df6-0x165;const _0x3ac85a=_0x3045();let _0x100076=_0x3ac85a[_0x340df6];return _0x100076;}function _0x3045(){const _0x17ea4c=['xhGjV','argv','includes','RGAFk','Use\x20task\x20management\x20commands:','Modifying:\x20','file_path','AbLir','EvYum','join','BLOCKED:\x20Active\x20task\x20is\x20not\x20in_progress\x20state','\x20\x20npm\x20run\x20plan:manager','parse','TASK-TRACKER.json','IVMcR','.claude/plans','toString','status','warn','basename','constructor','23350gjSrAj','tool_input','readFileSync','path','existsSync','14urKkjT','28286005CQisAk','qBHYr','Tckqx','Start\x20a\x20task\x20first:','in_progress','\x20\x20npm\x20run\x20task:start\x20TASK-XXX','6606jToVOK','Dynamic\x20require\x20of\x20\x22','PROJECT-PLAN.json','QvenF','5318704ssoOXj','utf8','1031090nxIRoK','forEach','tool','Initialize\x20task\x20tracker\x20first:','Write','search','1690JYKyLv','GpIat','\x0a⚠️\x20\x20STRUCTURED\x20DEVELOPMENT\x20WARNINGS\x0a','THDIT','4904748bbCWUB','To\x20make\x20changes,\x20use\x20the\x20amendment\x20tool:','BLOCKED:\x20Project\x20plan\x20is\x20locked\x20but\x20task\x20tracker\x20is\x20missing','wCXiL','match','push','Start\x20the\x20task:','Task:\x20','BLOCKED:\x20No\x20active\x20plan\x20found','activeTask','UESYb','.plan-locked','ZtNZp','\x20\x20npm\x20run\x20task:start\x20','SDfuc','apply','Edit','6065624mCTozS','wKwxv','length','qfmeM','exit','5gZVDIj','GKXDl','\x20\x20npm\x20run\x20plan:amend','zuLHv','BLOCKED:\x20Task\x20files\x20are\x20read-only','BLOCKED:\x20No\x20active\x20task','tasks','pjKEg','Plan:\x20','anZyb','cHbpB','450OkOkiT','.claude/ACTIVE-PLAN','.json','error','(((.+)+)+)+$'];_0x3045=function(){return _0x17ea4c;};return _0x3045();}
2
+ const _0x4d56cd=_0x18be;(function(_0x5d9a6d,_0xc68ccd){const _0x415756=_0x18be,_0x387726=_0x5d9a6d();while(!![]){try{const _0x1b6e45=parseInt(_0x415756(0x114))/0x1+parseInt(_0x415756(0xf0))/0x2+-parseInt(_0x415756(0xfd))/0x3*(parseInt(_0x415756(0x100))/0x4)+parseInt(_0x415756(0x12c))/0x5+-parseInt(_0x415756(0x12d))/0x6+parseInt(_0x415756(0xe7))/0x7+-parseInt(_0x415756(0x116))/0x8;if(_0x1b6e45===_0xc68ccd)break;else _0x387726['push'](_0x387726['shift']());}catch(_0x326c95){_0x387726['push'](_0x387726['shift']());}}}(_0x48af,0x77d7e));function _0x18be(_0x3c7639,_0xa087cb){_0x3c7639=_0x3c7639-0xde;const _0x5d7970=_0x48af();let _0x422826=_0x5d7970[_0x3c7639];return _0x422826;}var k=(_0x4d46c6=>typeof require<'u'?require:typeof Proxy<'u'?new Proxy(_0x4d46c6,{'get':(_0x378875,_0x5916da)=>(typeof require<'u'?require:_0x378875)[_0x5916da]}):_0x4d46c6)(function(_0x4f1c5d){const _0x1fb956=_0x18be,_0x41327a={'glyzm':function(_0x4f59a9,_0x56f3bf){return _0x4f59a9<_0x56f3bf;},'vsRYz':function(_0x40fceb,_0x14e1e0){return _0x40fceb(_0x14e1e0);},'EWDBX':function(_0x59ef7f,_0x1d3483){return _0x59ef7f+_0x1d3483;},'xUjwO':function(_0x172344,_0x115668){return _0x172344+_0x115668;},'NAWrq':_0x1fb956(0x103),'btfWe':_0x1fb956(0x11e)};if(_0x41327a[_0x1fb956(0x124)](typeof require,'u'))return require[_0x1fb956(0xe5)](this,arguments);throw _0x41327a[_0x1fb956(0x11f)](Error,_0x41327a[_0x1fb956(0xec)](_0x41327a[_0x1fb956(0x120)](_0x41327a[_0x1fb956(0xfc)],_0x4f1c5d),_0x41327a['btfWe']));}),a=k('fs'),i=k(_0x4d56cd(0x138)),P=process['argv'][0x2]||'{}',u=JSON[_0x4d56cd(0x117)](P),n=u[_0x4d56cd(0xeb)]?.[_0x4d56cd(0x133)],c=u[_0x4d56cd(0xeb)]?.[_0x4d56cd(0x135)],m=u[_0x4d56cd(0xeb)]?.['command'],e=u[_0x4d56cd(0x131)],s=[],E=[],D=[/^npm run help$/,/^npm run task:status$/,/^npm run task:start/,/^npm run plan:/,/^git status/,/^git log/,/^git diff/,/^git branch/];function T(_0x4ee68b){const _0x567b5a=_0x4d56cd,_0x14d8bc={};_0x14d8bc[_0x567b5a(0x118)]=_0x567b5a(0x11a),_0x14d8bc[_0x567b5a(0x10e)]=_0x567b5a(0x110),_0x14d8bc['fexMi']=_0x567b5a(0xdf),_0x14d8bc[_0x567b5a(0xfb)]=_0x567b5a(0x126),_0x14d8bc[_0x567b5a(0x123)]=_0x567b5a(0xf1),_0x14d8bc[_0x567b5a(0x137)]=function(_0x4481ef,_0x2d1a87){return _0x4481ef===_0x2d1a87;},_0x14d8bc[_0x567b5a(0x10f)]=_0x567b5a(0x12f),_0x14d8bc[_0x567b5a(0x129)]=_0x567b5a(0xf3);const _0x2d769c=_0x14d8bc,_0x43cec7=(function(){const _0x5f4328=_0x567b5a,_0x17e6be={'rNvDW':_0x2d769c[_0x5f4328(0x118)],'zlWeV':_0x2d769c[_0x5f4328(0x10e)],'JkIbS':_0x2d769c[_0x5f4328(0x128)],'lLHlK':_0x2d769c[_0x5f4328(0xfb)],'bsIav':_0x2d769c[_0x5f4328(0x123)],'fobeB':_0x5f4328(0x10a),'EflQq':_0x5f4328(0xef),'NxQBc':function(_0xdfa96e,_0x1a27f1){const _0x168242=_0x5f4328;return _0x2d769c[_0x168242(0x137)](_0xdfa96e,_0x1a27f1);},'Purau':_0x2d769c[_0x5f4328(0x10f)],'YoeMH':_0x2d769c[_0x5f4328(0x129)]};let _0x25c30e=!![];return function(_0x24f891,_0xca2f0f){const _0x1b17ba=_0x5f4328;if(_0x17e6be[_0x1b17ba(0x125)](_0x17e6be['Purau'],_0x17e6be[_0x1b17ba(0xff)])){let _0x55ba5a=_0x383599[_0x1b17ba(0x117)](_0x24938a[_0x1b17ba(0xf8)](_0x31da01,_0x17e6be['rNvDW']));if(!_0x55ba5a[_0x1b17ba(0x105)])_0x4bda2a[_0x1b17ba(0xf4)](_0x17e6be['zlWeV']),_0x3d0168['push'](_0x1b17ba(0x108)+_0x533cfb),_0x52a6b8['push'](_0x1b17ba(0xf7)+_0x5af27c),_0x994421&&_0x2c0e77[_0x1b17ba(0xf4)]('File:\x20'+_0x459840[_0x1b17ba(0xea)](_0x4881a3)),_0x9e11ce&&_0x4bdd68[_0x1b17ba(0xf4)](_0x1b17ba(0xe1)+_0x45e078),_0xa8793b[_0x1b17ba(0xf4)](_0x17e6be[_0x1b17ba(0x132)]),_0x649863[_0x1b17ba(0xf4)](_0x17e6be['lLHlK']);else{let _0x410d3c=_0x5cb404[_0x1b17ba(0x109)](_0x4849a0,_0x17e6be[_0x1b17ba(0xde)],_0x55ba5a[_0x1b17ba(0x105)]+_0x1b17ba(0xfa));if(_0x4239cb['existsSync'](_0x410d3c)){let _0xdfbd04=_0x229aa9['parse'](_0x352c88[_0x1b17ba(0xf8)](_0x410d3c,_0x17e6be[_0x1b17ba(0x107)]));_0xdfbd04[_0x1b17ba(0x12b)]!==_0x17e6be['fobeB']&&(_0x3a3f48[_0x1b17ba(0xf4)](_0x17e6be[_0x1b17ba(0x111)]),_0xdce1d0[_0x1b17ba(0xf4)](_0x1b17ba(0x108)+_0x5a2ce7),_0xb376f6[_0x1b17ba(0xf4)]('Task:\x20'+_0x55ba5a[_0x1b17ba(0x105)]+'\x20['+_0xdfbd04['status']+']'),_0x264e11[_0x1b17ba(0xf4)](_0x1b17ba(0xe4)),_0x34471b[_0x1b17ba(0xf4)](_0x1b17ba(0x122)+_0x55ba5a[_0x1b17ba(0x105)]));}}}else{const _0x5212b6=_0x25c30e?function(){const _0x325314=_0x1b17ba;if(_0xca2f0f){const _0x2d8f0b=_0xca2f0f[_0x325314(0xe5)](_0x24f891,arguments);return _0xca2f0f=null,_0x2d8f0b;}}:function(){};return _0x25c30e=![],_0x5212b6;}};}()),_0x2166da=_0x43cec7(this,function(){const _0x58f6e7=_0x567b5a;return _0x2166da['toString']()[_0x58f6e7(0xf6)](_0x58f6e7(0xe8))[_0x58f6e7(0x12a)]()[_0x58f6e7(0x113)](_0x2166da)[_0x58f6e7(0xf6)](_0x58f6e7(0xe8));});return _0x2166da(),_0x4ee68b?D[_0x567b5a(0x13a)](_0x29d578=>_0x29d578['test'](_0x4ee68b[_0x567b5a(0x101)]())):!0x1;}var S=_0x4d56cd(0xe6),l=null,r=null;function _0x48af(){const _0x4e202a=['\x0a❌\x20STRUCTURED\x20DEVELOPMENT\x20ENFORCEMENT\x20FAILED\x0a','\x22\x20is\x20not\x20supported','vsRYz','xUjwO','forEach','\x20\x20npm\x20run\x20task:start\x20','xEppe','glyzm','NxQBc','\x20\x20npm\x20run\x20task:start\x20TASK-XXX','File:\x20','fexMi','mgpJc','toString','status','3122715aKAvSi','5666598HKDvKh','Set\x20active\x20plan\x20first:','WePcO','Glob','tool','JkIbS','file_path','Read','pattern','\x20\x20npm\x20run\x20plan:manager','tWQpq','path','BLOCKED:\x20Project\x20plan\x20is\x20LOCKED\x20and\x20immutable','some','\x0a⚠️\x20\x20STRUCTURED\x20DEVELOPMENT\x20WARNINGS\x0a','bsIav','Start\x20a\x20task\x20first:','existsSync','Pattern:\x20','Task:\x20','Bash','Start\x20the\x20task:','apply','.claude/ACTIVE-PLAN','4521531BOsLDZ','(((.+)+)+)+$','exit','basename','tool_input','EWDBX','Grep','Write','BLOCKED:\x20Active\x20task\x20is\x20not\x20in_progress\x20state','914060IWBQFo','tasks','\x20\x20npm\x20run\x20plan:init','AzxZB','push','length','search','Tool:\x20','readFileSync','error','.json','rkhJD','NAWrq','3CRDZiZ','Edit','YoeMH','2698412uTkHVz','trim','warn','Dynamic\x20require\x20of\x20\x22','includes','activeTask','Use\x20task\x20management\x20commands:','rNvDW','Plan:\x20','join','in_progress','To\x20make\x20changes,\x20use\x20the\x20amendment\x20tool:','\x20\x20npm\x20run\x20task:done\x20TASK-XXX','TASK-TRACKER.json','oMzjb','YzkWo','BLOCKED:\x20No\x20active\x20task','EflQq','\x20\x20npm\x20run\x20plan:amend','constructor','520942XdKTlU','.claude/plans','1108272TFczRq','parse','GTMwt','BLOCKED:\x20No\x20active\x20plan\x20found','utf8','match','TodoWrite'];_0x48af=function(){return _0x4e202a;};return _0x48af();}a[_0x4d56cd(0xe0)](S)&&(l=a[_0x4d56cd(0xf8)](S,_0x4d56cd(0x11a))[_0x4d56cd(0x101)](),r=i[_0x4d56cd(0x109)](_0x4d56cd(0x115),l)),n&&n['includes']('PROJECT-PLAN.json')&&e===_0x4d56cd(0xfe)&&r&&a[_0x4d56cd(0xe0)](i['join'](r,'.plan-locked'))&&(s[_0x4d56cd(0xf4)](_0x4d56cd(0x139)),s[_0x4d56cd(0xf4)](_0x4d56cd(0x127)+i[_0x4d56cd(0xea)](n)),s[_0x4d56cd(0xf4)](_0x4d56cd(0x10b)),s[_0x4d56cd(0xf4)](_0x4d56cd(0x112)));if(l&&r){let t=i['join'](r,_0x4d56cd(0x10d)),o=i[_0x4d56cd(0x109)](r,'.plan-locked');a[_0x4d56cd(0xe0)](o)&&!a['existsSync'](t)&&(s['push']('BLOCKED:\x20Project\x20plan\x20is\x20locked\x20but\x20task\x20tracker\x20is\x20missing'),s[_0x4d56cd(0xf4)](_0x4d56cd(0x108)+l),s[_0x4d56cd(0xf4)]('Initialize\x20task\x20tracker\x20first:'),s[_0x4d56cd(0xf4)](_0x4d56cd(0xf2)));let h=['Read',_0x4d56cd(0xed),_0x4d56cd(0x130),'Edit',_0x4d56cd(0xee),_0x4d56cd(0x11c)],$=e===_0x4d56cd(0xe3)&&T(m);if(h[_0x4d56cd(0x104)](e)&&!$&&a[_0x4d56cd(0xe0)](t)){let p=JSON[_0x4d56cd(0x117)](a['readFileSync'](t,_0x4d56cd(0x11a)));if(!p['activeTask'])s[_0x4d56cd(0xf4)](_0x4d56cd(0x110)),s[_0x4d56cd(0xf4)](_0x4d56cd(0x108)+l),s[_0x4d56cd(0xf4)](_0x4d56cd(0xf7)+e),n&&s[_0x4d56cd(0xf4)]('File:\x20'+i['basename'](n)),c&&s[_0x4d56cd(0xf4)](_0x4d56cd(0xe1)+c),s[_0x4d56cd(0xf4)](_0x4d56cd(0xdf)),s[_0x4d56cd(0xf4)]('\x20\x20npm\x20run\x20task:start\x20TASK-XXX');else{let f=i['join'](r,_0x4d56cd(0xf1),p[_0x4d56cd(0x105)]+_0x4d56cd(0xfa));if(a[_0x4d56cd(0xe0)](f)){let d=JSON['parse'](a[_0x4d56cd(0xf8)](f,'utf8'));d[_0x4d56cd(0x12b)]!==_0x4d56cd(0x10a)&&(s[_0x4d56cd(0xf4)](_0x4d56cd(0xef)),s[_0x4d56cd(0xf4)]('Plan:\x20'+l),s[_0x4d56cd(0xf4)](_0x4d56cd(0xe2)+p[_0x4d56cd(0x105)]+'\x20['+d[_0x4d56cd(0x12b)]+']'),s[_0x4d56cd(0xf4)]('Start\x20the\x20task:'),s[_0x4d56cd(0xf4)](_0x4d56cd(0x122)+p[_0x4d56cd(0x105)]));}}}n&&n[_0x4d56cd(0x11b)](/\.claude\/plans\/[^/]+\/tasks\/TASK-\d{3}\.json$/)&&(e===_0x4d56cd(0xfe)||e===_0x4d56cd(0xee))&&(s['push']('BLOCKED:\x20Task\x20files\x20are\x20read-only'),s[_0x4d56cd(0xf4)]('File:\x20'+i[_0x4d56cd(0xea)](n)),s[_0x4d56cd(0xf4)](_0x4d56cd(0x106)),s[_0x4d56cd(0xf4)](_0x4d56cd(0x126)),s['push'](_0x4d56cd(0x10c)));}else{let t=[_0x4d56cd(0x134),_0x4d56cd(0xed),_0x4d56cd(0x130),_0x4d56cd(0xfe),_0x4d56cd(0xee),_0x4d56cd(0x11c)],o=e===_0x4d56cd(0xe3)&&T(m);t['includes'](e)&&!o&&(s[_0x4d56cd(0xf4)](_0x4d56cd(0x119)),s['push'](_0x4d56cd(0xf7)+e),n&&s['push'](_0x4d56cd(0x127)+i[_0x4d56cd(0xea)](n)),c&&s[_0x4d56cd(0xf4)]('Pattern:\x20'+c),s['push'](_0x4d56cd(0x12e)),s['push'](_0x4d56cd(0x136)));}s['length']>0x0&&(console[_0x4d56cd(0xf9)](_0x4d56cd(0x11d)),s[_0x4d56cd(0x121)](_0x2982b4=>console[_0x4d56cd(0xf9)]('\x20\x20'+_0x2982b4)),console[_0x4d56cd(0xf9)]('\x0a'),process[_0x4d56cd(0xe9)](0x2)),E[_0x4d56cd(0xf5)]>0x0&&(console['warn'](_0x4d56cd(0x13b)),E[_0x4d56cd(0x121)](_0x24b0dc=>console[_0x4d56cd(0x102)]('\x20\x20'+_0x24b0dc)),console['warn']('\x0a')),process[_0x4d56cd(0xe9)](0x0);
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- function _0x5b3b(_0x5c479f,_0x31219d){_0x5c479f=_0x5c479f-0x101;const _0x8a9242=_0x2bcd();let _0x5e1035=_0x8a9242[_0x5c479f];return _0x5e1035;}const _0x1a6fc0=_0x5b3b;(function(_0x5ca247,_0x527b57){const _0x474a3e=_0x5b3b,_0x1205b9=_0x5ca247();while(!![]){try{const _0x21185f=-parseInt(_0x474a3e(0x15a))/0x1*(-parseInt(_0x474a3e(0x169))/0x2)+parseInt(_0x474a3e(0x128))/0x3*(parseInt(_0x474a3e(0x112))/0x4)+parseInt(_0x474a3e(0x110))/0x5*(-parseInt(_0x474a3e(0x11c))/0x6)+parseInt(_0x474a3e(0x125))/0x7*(parseInt(_0x474a3e(0x107))/0x8)+parseInt(_0x474a3e(0x10e))/0x9+parseInt(_0x474a3e(0x159))/0xa*(parseInt(_0x474a3e(0x146))/0xb)+parseInt(_0x474a3e(0x122))/0xc*(-parseInt(_0x474a3e(0x101))/0xd);if(_0x21185f===_0x527b57)break;else _0x1205b9['push'](_0x1205b9['shift']());}catch(_0x2f79d4){_0x1205b9['push'](_0x1205b9['shift']());}}}(_0x2bcd,0xec757));const _0x1b0009=(function(){const _0x4f874b=_0x5b3b,_0x4086d2={'XaRfh':_0x4f874b(0x104),'wvmqr':function(_0x353b11,_0x36d78f){return _0x353b11*_0x36d78f;},'qszLX':function(_0x8eeee0,_0x292c7f){return _0x8eeee0/_0x292c7f;},'OZptc':function(_0x37262f,_0x134723){return _0x37262f+_0x134723;},'AzCmU':function(_0x974aba,_0x5d94d5){return _0x974aba*_0x5d94d5;},'RgfVq':_0x4f874b(0x14b),'TKsFX':_0x4f874b(0x113),'YWckZ':'WARNING:\x20Inverted\x20test\x20pyramid\x20detected','xpobH':function(_0x451f16,_0x44eefc){return _0x451f16*_0x44eefc;},'gAmQO':function(_0x52201c,_0x111d9e,_0x24c778){return _0x52201c(_0x111d9e,_0x24c778);},'oWLPr':_0x4f874b(0x114),'zRSff':_0x4f874b(0x13c),'HIxNM':'CRITICAL:\x20UI\x20bugs\x20are\x20slipping\x20through!','gtBzk':_0x4f874b(0x14c),'AkJNQ':_0x4f874b(0x136),'iiZJR':_0x4f874b(0x12b),'DCRgH':function(_0xeb6421,_0x215960){return _0xeb6421!==_0x215960;},'BgfUz':_0x4f874b(0x106),'grjDM':function(_0xf9a49c,_0x150a99){return _0xf9a49c===_0x150a99;},'FXRup':_0x4f874b(0x16a),'bzKXB':_0x4f874b(0x156)};let _0x400d94=!![];return function(_0x5bd123,_0x4e5167){const _0x53e019=_0x400d94?function(){const _0x4b83ea=_0x5b3b,_0x28267c={'HPHhO':_0x4086d2[_0x4b83ea(0x121)],'JfpVR':function(_0x2f9cd7,_0x4bcb1f){const _0x1bf61b=_0x4b83ea;return _0x4086d2[_0x1bf61b(0x105)](_0x2f9cd7,_0x4bcb1f);},'dLhXR':function(_0x46f635,_0x15919f){return _0x4086d2['qszLX'](_0x46f635,_0x15919f);},'tXrpg':function(_0x2e97f7,_0x508fae){return _0x4086d2['OZptc'](_0x2e97f7,_0x508fae);},'vlHKZ':function(_0x4841fa,_0x2985f8){return _0x4841fa*_0x2985f8;},'zjThS':function(_0x1d1f56,_0x33af1f){const _0x4a5fc0=_0x4b83ea;return _0x4086d2[_0x4a5fc0(0x168)](_0x1d1f56,_0x33af1f);},'yYONm':function(_0x21bd52,_0x285833){return _0x21bd52===_0x285833;},'VXvRy':function(_0x14fb4b,_0x123b29){return _0x14fb4b>_0x123b29;},'gdvej':_0x4086d2[_0x4b83ea(0x150)],'UDwUf':_0x4086d2[_0x4b83ea(0x141)],'canbU':_0x4086d2[_0x4b83ea(0x152)],'VmwQm':function(_0x53e68b,_0x401b18){const _0x49f243=_0x4b83ea;return _0x4086d2[_0x49f243(0x162)](_0x53e68b,_0x401b18);},'epfWf':_0x4b83ea(0x124),'MvlmB':_0x4b83ea(0x102),'BbPTm':function(_0x5091d9,_0x134fa0,_0x62beba){return _0x4086d2['gAmQO'](_0x5091d9,_0x134fa0,_0x62beba);},'YVZOo':_0x4086d2[_0x4b83ea(0x16f)],'wrFzc':_0x4086d2['zRSff'],'rFWrl':function(_0x58bc83,_0x39e38e){return _0x58bc83(_0x39e38e);},'HTRfM':function(_0x1b6454,_0x14b872){return _0x1b6454>_0x14b872;},'tMCUJ':function(_0xee448f,_0x1facc7){const _0x154427=_0x4b83ea;return _0x4086d2[_0x154427(0x132)](_0xee448f,_0x1facc7);},'dvCzV':_0x4086d2[_0x4b83ea(0x10c)],'RwsPv':_0x4086d2[_0x4b83ea(0x142)],'jBanv':function(_0x13c350,_0x41ab92){return _0x13c350===_0x41ab92;},'INVft':_0x4086d2[_0x4b83ea(0x151)],'AjTUy':_0x4086d2[_0x4b83ea(0x115)]};if(_0x4086d2[_0x4b83ea(0x163)](_0x4086d2[_0x4b83ea(0x172)],_0x4086d2[_0x4b83ea(0x172)])){let _0x1ab690=_0x590093[_0x4b83ea(0x127)](_0x2adc4e,_0x28267c[_0x4b83ea(0x166)]);_0x5f4854+=(_0x1ab690['match'](/\b(it|test)\s*\(/g)||[])[_0x4b83ea(0x155)];}else{if(_0x4e5167){if(_0x4086d2[_0x4b83ea(0x170)](_0x4086d2[_0x4b83ea(0x15c)],_0x4086d2[_0x4b83ea(0x139)])){let _0x230402=_0x28267c[_0x4b83ea(0x10b)](_0x28267c[_0x4b83ea(0x10d)](_0x28267c['tXrpg'](_0x47899a,_0x41807d),_0x49b725),0x64),_0x2d5c58=_0x28267c[_0x4b83ea(0x129)](_0x2aa17a/_0x4244bd,0x64),_0x188aaf=_0x28267c[_0x4b83ea(0x126)](_0x28267c['dLhXR'](_0x2205dc,_0xcc66f),0x64);_0x4c946d['log']('\x0a📊\x20TEST\x20PYRAMID\x20ANALYSIS\x0a'),_0x2a7567[_0x4b83ea(0x116)](_0x4b83ea(0x145)+_0x28267c['tXrpg'](_0x1d2d1c,_0x4e0fc2)+'\x20('+_0x230402[_0x4b83ea(0x108)](0x1)+'%)'),_0x3a3ee1['log'](_0x4b83ea(0x14e)+_0x7c0880+'\x20('+_0x2d5c58[_0x4b83ea(0x108)](0x1)+'%)'),_0x10fb45[_0x4b83ea(0x116)](_0x4b83ea(0x12e)+_0x4bb1f2+'\x20('+_0x188aaf[_0x4b83ea(0x108)](0x1)+'%)'),_0x9f948[_0x4b83ea(0x116)](_0x4b83ea(0x12c)+_0x51020b+'\x0a'),_0x28267c[_0x4b83ea(0x15e)](_0x539f20,0x0)&&_0x28267c['VXvRy'](_0x16996e,0x0)&&(_0x38736c[_0x4b83ea(0x13e)](_0x28267c['gdvej']),_0x26939b['push'](_0x28267c[_0x4b83ea(0x16c)]),_0x413026[_0x4b83ea(0x13e)](_0x4b83ea(0x123))),_0x28267c[_0x4b83ea(0x154)](_0x3f685c,_0x366458)<_0x28267c[_0x4b83ea(0x10b)](_0x235dc3,0.5)&&(_0xb603e4[_0x4b83ea(0x13e)](_0x28267c[_0x4b83ea(0x138)]),_0x1876d2[_0x4b83ea(0x13e)](_0x4b83ea(0x171)+_0x230402[_0x4b83ea(0x108)](0x1)+'%'),_0x460a9c[_0x4b83ea(0x13e)](_0x4b83ea(0x11d))),_0x28267c[_0x4b83ea(0x11a)](_0x5235ca,_0x28267c['VmwQm'](_0x203184,0.3))&&(_0x4c1014[_0x4b83ea(0x13e)](_0x28267c[_0x4b83ea(0x164)]),_0x3af128[_0x4b83ea(0x13e)](_0x28267c['MvlmB']));try{let _0x185cf8=_0x28267c['BbPTm'](_0x587423,_0x28267c[_0x4b83ea(0x161)],{'encoding':_0x28267c['HPHhO'],'stdio':[_0x28267c[_0x4b83ea(0x15b)],_0x4b83ea(0x13c),_0x4b83ea(0x103)]})[_0x4b83ea(0x165)](),_0xf969d7=_0x28267c[_0x4b83ea(0x119)](_0x722c69,_0x185cf8)||0x0;if(_0x28267c[_0x4b83ea(0x131)](_0xf969d7,0x0)){let _0x1d03f5=_0x28267c[_0x4b83ea(0x137)](_0x32973d,_0xf969d7);_0x1d03f5<0.5&&(_0x4a6542[_0x4b83ea(0x13e)]('WARNING:\x20'+_0xf969d7+_0x4b83ea(0x157)+_0x29dd66+'\x20component\x20tests'),_0xf8a5fe['push'](_0x4b83ea(0x14f)+_0x28267c['JfpVR'](_0x1d03f5,0x64)[_0x4b83ea(0x108)](0x1)+'%'),_0xa169f8[_0x4b83ea(0x13e)](_0x28267c[_0x4b83ea(0x144)]),_0x7e249a[_0x4b83ea(0x13e)](_0x28267c['RwsPv'])),_0x28267c[_0x4b83ea(0x158)](_0x4c67e9,0x0)&&_0x28267c[_0x4b83ea(0x131)](_0xf969d7,0x5)&&(_0x55433d[_0x4b83ea(0x13e)](_0x28267c[_0x4b83ea(0x14a)]),_0x12c6eb['push'](_0x28267c[_0x4b83ea(0x11b)]));}}catch{}}else{const _0x37a5a7=_0x4e5167[_0x4b83ea(0x149)](_0x5bd123,arguments);return _0x4e5167=null,_0x37a5a7;}}}}:function(){};return _0x400d94=![],_0x53e019;};}()),_0x5e1035=_0x1b0009(this,function(){const _0x456175=_0x5b3b,_0x48728c={};_0x48728c[_0x456175(0x130)]='(((.+)+)+)+$';const _0x1db732=_0x48728c;return _0x5e1035[_0x456175(0x143)]()[_0x456175(0x109)](_0x1db732[_0x456175(0x130)])[_0x456175(0x143)]()[_0x456175(0x120)](_0x5e1035)[_0x456175(0x109)](_0x456175(0x140));});_0x5e1035();var g=(_0x2f8bc9=>typeof require<'u'?require:typeof Proxy<'u'?new Proxy(_0x2f8bc9,{'get':(_0x1f76a9,_0x502afd)=>(typeof require<'u'?require:_0x1f76a9)[_0x502afd]}):_0x2f8bc9)(function(_0x5b40b1){const _0x4034da=_0x5b3b,_0xdfcc1f={'nkJAr':function(_0x39e0fb,_0x1f70af){return _0x39e0fb<_0x1f70af;},'ciWKX':function(_0x3593c8,_0x22808c){return _0x3593c8(_0x22808c);},'eRAZx':function(_0x4a732d,_0x1fe11d){return _0x4a732d+_0x1fe11d;},'GNkTP':_0x4034da(0x15d),'BAHJg':'\x22\x20is\x20not\x20supported'};if(_0xdfcc1f[_0x4034da(0x16e)](typeof require,'u'))return require['apply'](this,arguments);throw _0xdfcc1f['ciWKX'](Error,_0xdfcc1f[_0x4034da(0x12a)](_0xdfcc1f['GNkTP'],_0x5b40b1)+_0xdfcc1f['BAHJg']);}),c=g('fs'),E=g('path'),{execSync:f}=g(_0x1a6fc0(0x13f)),h=process['argv'][0x2]||'{}',I=JSON[_0x1a6fc0(0x15f)](h),T=I[_0x1a6fc0(0x111)]?.[_0x1a6fc0(0x11f)]||'';T[_0x1a6fc0(0x11e)](/npm\s+(run\s+)?test|jest|vitest/)||process[_0x1a6fc0(0x13a)](0x0);var d=[],t=[],r=0x0,m=0x0,p=0x0,i=0x0;try{const _0x53a0c6={};_0x53a0c6[_0x1a6fc0(0x135)]=_0x1a6fc0(0x104),_0x53a0c6[_0x1a6fc0(0x13b)]=[_0x1a6fc0(0x13c),_0x1a6fc0(0x13c),_0x1a6fc0(0x103)];let e=f(_0x1a6fc0(0x10a),_0x53a0c6)['trim']()[_0x1a6fc0(0x16b)]('\x0a')[_0x1a6fc0(0x148)](Boolean);for(let n of e)if(c[_0x1a6fc0(0x153)](n)){let o=c['readFileSync'](n,_0x1a6fc0(0x104)),u=(o[_0x1a6fc0(0x11e)](/\b(it|test)\s*\(/g)||[])['length'];o[_0x1a6fc0(0x11e)](/render\(|mount\(|screen\.|fireEvent\./)?i+=u:r+=u;}const _0x3131d1={};_0x3131d1[_0x1a6fc0(0x135)]=_0x1a6fc0(0x104),_0x3131d1[_0x1a6fc0(0x13b)]=['pipe',_0x1a6fc0(0x13c),_0x1a6fc0(0x103)];let l=f(_0x1a6fc0(0x16d),_0x3131d1)['trim']()[_0x1a6fc0(0x16b)]('\x0a')[_0x1a6fc0(0x148)](Boolean);for(let n of l)if(c[_0x1a6fc0(0x153)](n)){let o=c[_0x1a6fc0(0x127)](n,_0x1a6fc0(0x104));m+=(o[_0x1a6fc0(0x11e)](/\b(it|test)\s*\(/g)||[])[_0x1a6fc0(0x155)];}const _0x5c65bf={};_0x5c65bf[_0x1a6fc0(0x135)]='utf8',_0x5c65bf['stdio']=[_0x1a6fc0(0x13c),_0x1a6fc0(0x13c),_0x1a6fc0(0x103)];let a=f(_0x1a6fc0(0x13d),_0x5c65bf)[_0x1a6fc0(0x165)]()[_0x1a6fc0(0x16b)]('\x0a')[_0x1a6fc0(0x148)](Boolean);for(let n of a)if(c[_0x1a6fc0(0x153)](n)){let o=c[_0x1a6fc0(0x127)](n,_0x1a6fc0(0x104));p+=(o['match'](/\b(it|test)\s*\(/g)||[])['length'];}}catch{process[_0x1a6fc0(0x13a)](0x0);}function _0x2bcd(){const _0x150e25=['Dynamic\x20require\x20of\x20\x22','yYONm','parse','WARNING:\x20','YVZOo','xpobH','DCRgH','epfWf','trim','HPHhO','error','AzCmU','160vhzuIK','bxYqw','split','UDwUf','find\x20./tests\x20-path\x20\x22*/integration/*\x22\x20-name\x20\x22*.test.*\x22\x20-o\x20-path\x20\x22*/integration/*\x22\x20-name\x20\x22*.spec.*\x22\x202>/dev/null\x20||\x20echo\x20\x22\x22','nkJAr','oWLPr','grjDM','Unit/Component\x20tests\x20should\x20be\x2060-80%\x20of\x20total,\x20currently\x20','BgfUz','13elLpAW','E2E\x20tests\x20are\x20slow\x20and\x20brittle,\x20use\x20integration\x20tests\x20instead','ignore','utf8','wvmqr','mdAJN','14865512UFjIIc','toFixed','search','find\x20./tests\x20-name\x20\x22*.test.*\x22\x20-o\x20-name\x20\x22*.spec.*\x22\x202>/dev/null\x20|\x20grep\x20-v\x20-E\x20\x22(integration|e2e|component)\x22\x20||\x20echo\x20\x22\x22','JfpVR','HIxNM','dLhXR','17254584EKwHKu','\x20component\x20tests','2793415vQyEFu','tool_input','6095236IsAdDG','Add\x20component\x20tests\x20for\x20React/Vue/etc.\x20components','find\x20./src\x20-name\x20\x22*.tsx\x22\x20-o\x20-name\x20\x22*.jsx\x22\x202>/dev/null\x20|\x20wc\x20-l','iiZJR','log','forEach','\x0a❌\x20TEST\x20PYRAMID\x20VALIDATION\x20FAILED\x0a','rFWrl','VXvRy','AjTUy','6EFLDZi','Add\x20more\x20unit\x20and\x20component\x20tests','match','command','constructor','XaRfh','70566972mzYtES','UI\x20bugs\x20are\x20not\x20caught\x20by\x20API-only\x20tests!','WARNING:\x20Too\x20many\x20E2E\x20tests\x20(>30%\x20of\x20total)','7hGcfbm','zjThS','readFileSync','3BoNZzy','vlHKZ','eRAZx','Add\x20E2E\x20tests\x20to\x20validate\x20complete\x20user\x20flows','\x20\x20Total:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','\x0a📊\x20TEST\x20PYRAMID\x20ANALYSIS\x0a','\x20\x20E2E\x20Tests:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','warn','XvkwD','HTRfM','qszLX','CRITICAL:\x20UI\x20bugs\x20are\x20slipping\x20through!','\x0a⚠️\x20\x20TEST\x20PYRAMID\x20WARNINGS\x0a','encoding','WARNING:\x20Multiple\x20UI\x20components\x20but\x20NO\x20E2E\x20integration\x20tests','tMCUJ','canbU','bzKXB','exit','stdio','pipe','find\x20./e2e\x20-name\x20\x22*.spec.*\x22\x20-o\x20find\x20./cypress\x20-name\x20\x22*.cy.*\x22\x202>/dev/null\x20||\x20echo\x20\x22\x22','push','child_process','(((.+)+)+)+$','TKsFX','gtBzk','toString','dvCzV','\x20\x20Unit/Component\x20Tests:\x20','32263qoEphz','Create\x20tests\x20before\x20claiming\x20functionality\x20works','filter','apply','INVft','WARNING:\x20Only\x20backend\x20unit\x20tests\x20found,\x20NO\x20UI\x20component\x20tests','Every\x20UI\x20component\x20should\x20have\x20component\x20tests','WARNING:\x20Inverted\x20test\x20pyramid\x20detected','\x20\x20Integration\x20Tests:\x20\x20\x20\x20','Component\x20test\x20coverage:\x20','RgfVq','AkJNQ','YWckZ','existsSync','tXrpg','length','PcUkz','\x20UI\x20components\x20but\x20only\x20','jBanv','2050bRNppn','18842kaodgQ','wrFzc','FXRup'];_0x2bcd=function(){return _0x150e25;};return _0x2bcd();}var s=r+m+p+i;s===0x0&&(d['push']('BLOCKED:\x20No\x20tests\x20found\x20in\x20the\x20project'),d[_0x1a6fc0(0x13e)](_0x1a6fc0(0x147)));if(s>0x0){let e=(r+i)/s*0x64,l=m/s*0x64,a=p/s*0x64;console['log'](_0x1a6fc0(0x12d)),console[_0x1a6fc0(0x116)](_0x1a6fc0(0x145)+(r+i)+'\x20('+e[_0x1a6fc0(0x108)](0x1)+'%)'),console[_0x1a6fc0(0x116)]('\x20\x20Integration\x20Tests:\x20\x20\x20\x20'+m+'\x20('+l[_0x1a6fc0(0x108)](0x1)+'%)'),console['log'](_0x1a6fc0(0x12e)+p+'\x20('+a[_0x1a6fc0(0x108)](0x1)+'%)'),console['log']('\x20\x20Total:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+s+'\x0a'),i===0x0&&r>0x0&&(t[_0x1a6fc0(0x13e)]('WARNING:\x20Only\x20backend\x20unit\x20tests\x20found,\x20NO\x20UI\x20component\x20tests'),t[_0x1a6fc0(0x13e)](_0x1a6fc0(0x113)),t['push'](_0x1a6fc0(0x123))),r+i<s*0.5&&(t['push'](_0x1a6fc0(0x14d)),t[_0x1a6fc0(0x13e)]('Unit/Component\x20tests\x20should\x20be\x2060-80%\x20of\x20total,\x20currently\x20'+e['toFixed'](0x1)+'%'),t[_0x1a6fc0(0x13e)](_0x1a6fc0(0x11d))),p>s*0.3&&(t[_0x1a6fc0(0x13e)](_0x1a6fc0(0x124)),t[_0x1a6fc0(0x13e)](_0x1a6fc0(0x102)));try{const _0x30a6fe={};_0x30a6fe['encoding']='utf8',_0x30a6fe[_0x1a6fc0(0x13b)]=[_0x1a6fc0(0x13c),'pipe',_0x1a6fc0(0x103)];let n=f(_0x1a6fc0(0x114),_0x30a6fe)['trim'](),o=parseInt(n)||0x0;if(o>0x0){let u=i/o;u<0.5&&(t[_0x1a6fc0(0x13e)](_0x1a6fc0(0x160)+o+_0x1a6fc0(0x157)+i+_0x1a6fc0(0x10f)),t['push']('Component\x20test\x20coverage:\x20'+(u*0x64)[_0x1a6fc0(0x108)](0x1)+'%'),t[_0x1a6fc0(0x13e)](_0x1a6fc0(0x133)),t[_0x1a6fc0(0x13e)](_0x1a6fc0(0x14c))),p===0x0&&o>0x5&&(t[_0x1a6fc0(0x13e)]('WARNING:\x20Multiple\x20UI\x20components\x20but\x20NO\x20E2E\x20integration\x20tests'),t[_0x1a6fc0(0x13e)](_0x1a6fc0(0x12b)));}}catch{}}d[_0x1a6fc0(0x155)]>0x0&&(console[_0x1a6fc0(0x167)](_0x1a6fc0(0x118)),d[_0x1a6fc0(0x117)](_0x52e80f=>console[_0x1a6fc0(0x167)]('\x20\x20'+_0x52e80f)),console['error']('\x0a'),process[_0x1a6fc0(0x13a)](0x2)),t[_0x1a6fc0(0x155)]>0x0&&(console[_0x1a6fc0(0x12f)](_0x1a6fc0(0x134)),t[_0x1a6fc0(0x117)](_0x3b1f77=>console[_0x1a6fc0(0x12f)]('\x20\x20'+_0x3b1f77)),console['warn']('\x0a')),process[_0x1a6fc0(0x13a)](0x0);
2
+ const _0x5ca768=_0x29be;(function(_0x1add32,_0x410ec8){const _0x13295a=_0x29be,_0x28ca63=_0x1add32();while(!![]){try{const _0x457b7f=parseInt(_0x13295a(0x8c))/0x1*(parseInt(_0x13295a(0x88))/0x2)+parseInt(_0x13295a(0x86))/0x3*(parseInt(_0x13295a(0xa1))/0x4)+parseInt(_0x13295a(0xb6))/0x5*(-parseInt(_0x13295a(0x87))/0x6)+parseInt(_0x13295a(0xb5))/0x7*(parseInt(_0x13295a(0x93))/0x8)+-parseInt(_0x13295a(0x9a))/0x9*(-parseInt(_0x13295a(0x92))/0xa)+-parseInt(_0x13295a(0xb8))/0xb*(-parseInt(_0x13295a(0xc0))/0xc)+-parseInt(_0x13295a(0xaa))/0xd*(parseInt(_0x13295a(0x83))/0xe);if(_0x457b7f===_0x410ec8)break;else _0x28ca63['push'](_0x28ca63['shift']());}catch(_0x1d18bc){_0x28ca63['push'](_0x28ca63['shift']());}}}(_0x1dee,0xc552a));function _0x29be(_0x95a04c,_0x3b06d8){_0x95a04c=_0x95a04c-0x80;const _0x1f6959=_0x1dee();let _0x60d93f=_0x1f6959[_0x95a04c];return _0x60d93f;}const _0x28c74a=(function(){let _0x3df8cc=!![];return function(_0x4c7f3f,_0x114d4a){const _0x1561d7=_0x3df8cc?function(){if(_0x114d4a){const _0x2a809f=_0x114d4a['apply'](_0x4c7f3f,arguments);return _0x114d4a=null,_0x2a809f;}}:function(){};return _0x3df8cc=![],_0x1561d7;};}()),_0x60d93f=_0x28c74a(this,function(){const _0x247dfb=_0x29be,_0x165435={};_0x165435[_0x247dfb(0x97)]=_0x247dfb(0x8f);const _0x32698d=_0x165435;return _0x60d93f[_0x247dfb(0xbb)]()['search'](_0x32698d[_0x247dfb(0x97)])[_0x247dfb(0xbb)]()['constructor'](_0x60d93f)[_0x247dfb(0x9b)](_0x32698d[_0x247dfb(0x97)]);});_0x60d93f();var g=(_0x181264=>typeof require<'u'?require:typeof Proxy<'u'?new Proxy(_0x181264,{'get':(_0x37eaf2,_0x148d7d)=>(typeof require<'u'?require:_0x37eaf2)[_0x148d7d]}):_0x181264)(function(_0x37ade6){const _0x1f8f5a=_0x29be,_0x16589b={};_0x16589b[_0x1f8f5a(0xa6)]=function(_0x316619,_0x554063){return _0x316619<_0x554063;},_0x16589b[_0x1f8f5a(0xac)]=function(_0x2f4da1,_0x4fc1a7){return _0x2f4da1+_0x4fc1a7;},_0x16589b[_0x1f8f5a(0x90)]=function(_0x2c50db,_0x1b3c1f){return _0x2c50db+_0x1b3c1f;},_0x16589b[_0x1f8f5a(0xb3)]=_0x1f8f5a(0xb7),_0x16589b[_0x1f8f5a(0xa3)]=_0x1f8f5a(0xbd);const _0x194a5e=_0x16589b;if(_0x194a5e['DrobS'](typeof require,'u'))return require[_0x1f8f5a(0xae)](this,arguments);throw Error(_0x194a5e[_0x1f8f5a(0xac)](_0x194a5e['czcoz'](_0x194a5e['RXfdF'],_0x37ade6),_0x194a5e[_0x1f8f5a(0xa3)]));}),c=g('fs'),E=g('path'),{execSync:f}=g(_0x5ca768(0xa7)),h=process[_0x5ca768(0x9f)][0x2]||'{}',I=JSON['parse'](h),T=I[_0x5ca768(0xbe)]?.['command']||'';T[_0x5ca768(0x8b)](/npm\s+(run\s+)?test|jest|vitest/)||process[_0x5ca768(0xb1)](0x0);var d=[],t=[],r=0x0,m=0x0,p=0x0,i=0x0;try{const _0x9c2db={};_0x9c2db['encoding']=_0x5ca768(0x82),_0x9c2db[_0x5ca768(0xa5)]=['pipe',_0x5ca768(0xbf),_0x5ca768(0xb2)];let e=f(_0x5ca768(0xc7),_0x9c2db)[_0x5ca768(0xc6)]()[_0x5ca768(0x94)]('\x0a')[_0x5ca768(0xb9)](Boolean);for(let n of e)if(c[_0x5ca768(0xad)](n)){let o=c['readFileSync'](n,_0x5ca768(0x82)),u=(o[_0x5ca768(0x8b)](/\b(it|test)\s*\(/g)||[])[_0x5ca768(0x81)];o[_0x5ca768(0x8b)](/render\(|mount\(|screen\.|fireEvent\./)?i+=u:r+=u;}const _0x788905={};_0x788905[_0x5ca768(0x8d)]=_0x5ca768(0x82),_0x788905['stdio']=['pipe',_0x5ca768(0xbf),'ignore'];let l=f(_0x5ca768(0xab),_0x788905)[_0x5ca768(0xc6)]()[_0x5ca768(0x94)]('\x0a')[_0x5ca768(0xb9)](Boolean);for(let n of l)if(c[_0x5ca768(0xad)](n)){let o=c[_0x5ca768(0x89)](n,'utf8');m+=(o[_0x5ca768(0x8b)](/\b(it|test)\s*\(/g)||[])['length'];}const _0xcebe04={};_0xcebe04[_0x5ca768(0x8d)]='utf8',_0xcebe04['stdio']=[_0x5ca768(0xbf),'pipe',_0x5ca768(0xb2)];let a=f(_0x5ca768(0xa8),_0xcebe04)[_0x5ca768(0xc6)]()[_0x5ca768(0x94)]('\x0a')[_0x5ca768(0xb9)](Boolean);for(let n of a)if(c['existsSync'](n)){let o=c[_0x5ca768(0x89)](n,_0x5ca768(0x82));p+=(o[_0x5ca768(0x8b)](/\b(it|test)\s*\(/g)||[])['length'];}}catch{process[_0x5ca768(0xb1)](0x0);}var s=r+m+p+i;function _0x1dee(){const _0x347815=['108952jEhIhG','encoding','error','(((.+)+)+)+$','czcoz','WARNING:\x20Too\x20many\x20E2E\x20tests\x20(>30%\x20of\x20total)','14360VzJbJR','224yepTqn','split','forEach','Unit/Component\x20tests\x20should\x20be\x2060-80%\x20of\x20total,\x20currently\x20','BHznV','warn','WARNING:\x20Only\x20backend\x20unit\x20tests\x20found,\x20NO\x20UI\x20component\x20tests','7731NRwdhz','search','Create\x20tests\x20before\x20claiming\x20functionality\x20works','push','WARNING:\x20','argv','\x0a⚠️\x20\x20TEST\x20PYRAMID\x20WARNINGS\x0a','240148lUzcvj','Add\x20E2E\x20tests\x20to\x20validate\x20complete\x20user\x20flows','XLSLt','\x20\x20E2E\x20Tests:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','stdio','DrobS','child_process','find\x20./e2e\x20-name\x20\x22*.spec.*\x22\x20-o\x20find\x20./cypress\x20-name\x20\x22*.cy.*\x22\x202>/dev/null\x20||\x20echo\x20\x22\x22','Every\x20UI\x20component\x20should\x20have\x20component\x20tests','455PHZAQA','find\x20./tests\x20-path\x20\x22*/integration/*\x22\x20-name\x20\x22*.test.*\x22\x20-o\x20-path\x20\x22*/integration/*\x22\x20-name\x20\x22*.spec.*\x22\x202>/dev/null\x20||\x20echo\x20\x22\x22','nvGko','existsSync','apply','\x20\x20Total:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','E2E\x20tests\x20are\x20slow\x20and\x20brittle,\x20use\x20integration\x20tests\x20instead','exit','ignore','RXfdF','log','370027NjYQfo','10670IRRKjA','Dynamic\x20require\x20of\x20\x22','11AZyLmv','filter','\x20component\x20tests','toString','Add\x20component\x20tests\x20for\x20React/Vue/etc.\x20components','\x22\x20is\x20not\x20supported','tool_input','pipe','8128932ECWvIa','toFixed','UI\x20bugs\x20are\x20not\x20caught\x20by\x20API-only\x20tests!','\x0a📊\x20TEST\x20PYRAMID\x20ANALYSIS\x0a','Component\x20test\x20coverage:\x20','\x0a❌\x20TEST\x20PYRAMID\x20VALIDATION\x20FAILED\x0a','trim','find\x20./tests\x20-name\x20\x22*.test.*\x22\x20-o\x20-name\x20\x22*.spec.*\x22\x202>/dev/null\x20|\x20grep\x20-v\x20-E\x20\x22(integration|e2e|component)\x22\x20||\x20echo\x20\x22\x22','WARNING:\x20Inverted\x20test\x20pyramid\x20detected','length','utf8','1541624XNpInb','find\x20./src\x20-name\x20\x22*.tsx\x22\x20-o\x20-name\x20\x22*.jsx\x22\x202>/dev/null\x20|\x20wc\x20-l','BLOCKED:\x20No\x20tests\x20found\x20in\x20the\x20project','51bZFKvw','1746NGSoZS','16aAOxar','readFileSync','Add\x20more\x20unit\x20and\x20component\x20tests','match'];_0x1dee=function(){return _0x347815;};return _0x1dee();}s===0x0&&(d[_0x5ca768(0x9d)](_0x5ca768(0x85)),d[_0x5ca768(0x9d)](_0x5ca768(0x9c)));if(s>0x0){let e=(r+i)/s*0x64,l=m/s*0x64,a=p/s*0x64;console[_0x5ca768(0xb4)](_0x5ca768(0xc3)),console[_0x5ca768(0xb4)]('\x20\x20Unit/Component\x20Tests:\x20'+(r+i)+'\x20('+e[_0x5ca768(0xc1)](0x1)+'%)'),console[_0x5ca768(0xb4)]('\x20\x20Integration\x20Tests:\x20\x20\x20\x20'+m+'\x20('+l[_0x5ca768(0xc1)](0x1)+'%)'),console[_0x5ca768(0xb4)](_0x5ca768(0xa4)+p+'\x20('+a[_0x5ca768(0xc1)](0x1)+'%)'),console[_0x5ca768(0xb4)](_0x5ca768(0xaf)+s+'\x0a'),i===0x0&&r>0x0&&(t['push'](_0x5ca768(0x99)),t[_0x5ca768(0x9d)](_0x5ca768(0xbc)),t[_0x5ca768(0x9d)](_0x5ca768(0xc2))),r+i<s*0.5&&(t[_0x5ca768(0x9d)](_0x5ca768(0x80)),t[_0x5ca768(0x9d)](_0x5ca768(0x96)+e[_0x5ca768(0xc1)](0x1)+'%'),t[_0x5ca768(0x9d)](_0x5ca768(0x8a))),p>s*0.3&&(t[_0x5ca768(0x9d)](_0x5ca768(0x91)),t['push'](_0x5ca768(0xb0)));try{const _0x4e5c3d={};_0x4e5c3d['encoding']=_0x5ca768(0x82),_0x4e5c3d[_0x5ca768(0xa5)]=[_0x5ca768(0xbf),'pipe','ignore'];let n=f(_0x5ca768(0x84),_0x4e5c3d)[_0x5ca768(0xc6)](),o=parseInt(n)||0x0;if(o>0x0){let u=i/o;u<0.5&&(t[_0x5ca768(0x9d)](_0x5ca768(0x9e)+o+'\x20UI\x20components\x20but\x20only\x20'+i+_0x5ca768(0xba)),t[_0x5ca768(0x9d)](_0x5ca768(0xc4)+(u*0x64)[_0x5ca768(0xc1)](0x1)+'%'),t[_0x5ca768(0x9d)]('CRITICAL:\x20UI\x20bugs\x20are\x20slipping\x20through!'),t[_0x5ca768(0x9d)](_0x5ca768(0xa9))),p===0x0&&o>0x5&&(t[_0x5ca768(0x9d)]('WARNING:\x20Multiple\x20UI\x20components\x20but\x20NO\x20E2E\x20integration\x20tests'),t[_0x5ca768(0x9d)](_0x5ca768(0xa2)));}}catch{}}d[_0x5ca768(0x81)]>0x0&&(console[_0x5ca768(0x8e)](_0x5ca768(0xc5)),d[_0x5ca768(0x95)](_0x1fec20=>console[_0x5ca768(0x8e)]('\x20\x20'+_0x1fec20)),console[_0x5ca768(0x8e)]('\x0a'),process[_0x5ca768(0xb1)](0x2)),t['length']>0x0&&(console[_0x5ca768(0x98)](_0x5ca768(0xa0)),t['forEach'](_0x570994=>console[_0x5ca768(0x98)]('\x20\x20'+_0x570994)),console[_0x5ca768(0x98)]('\x0a')),process[_0x5ca768(0xb1)](0x0);
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- var _0x376bcf=_0x1703;(function(_0x36f66e,_0x5ba83b){var _0x32ba21=_0x1703,_0x48a79c=_0x36f66e();while(!![]){try{var _0x2ab836=-parseInt(_0x32ba21(0x223))/0x1*(parseInt(_0x32ba21(0x211))/0x2)+parseInt(_0x32ba21(0x21e))/0x3*(-parseInt(_0x32ba21(0x233))/0x4)+-parseInt(_0x32ba21(0x21b))/0x5*(parseInt(_0x32ba21(0x215))/0x6)+parseInt(_0x32ba21(0x1d4))/0x7*(parseInt(_0x32ba21(0x219))/0x8)+parseInt(_0x32ba21(0x1f6))/0x9*(-parseInt(_0x32ba21(0x1db))/0xa)+parseInt(_0x32ba21(0x1ef))/0xb*(-parseInt(_0x32ba21(0x1d2))/0xc)+parseInt(_0x32ba21(0x1cf))/0xd*(parseInt(_0x32ba21(0x201))/0xe);if(_0x2ab836===_0x5ba83b)break;else _0x48a79c['push'](_0x48a79c['shift']());}catch(_0x4c03c9){_0x48a79c['push'](_0x48a79c['shift']());}}}(_0x18e8,0x9013d));var _0x37306c=(function(){var _0x22db80=!![];return function(_0x1b3b0e,_0x183d73){var _0x2be188=_0x1703,_0x5671fa={};_0x5671fa[_0x2be188(0x22f)]=_0x2be188(0x1df);var _0x2c7a00=_0x5671fa,_0x2a0aa4=_0x22db80?function(){var _0x513cd9=_0x2be188,_0x5d2e5d={};_0x5d2e5d[_0x513cd9(0x1ee)]=_0x513cd9(0x22a);var _0x13c415=_0x5d2e5d;if(_0x2c7a00[_0x513cd9(0x22f)]===_0x513cd9(0x1df)){if(_0x183d73){var _0x519548=_0x183d73[_0x513cd9(0x20a)](_0x1b3b0e,arguments);return _0x183d73=null,_0x519548;}}else _0x265ff6['error'](_0x13c415['KtbzW']),_0x4892ae[_0x513cd9(0x224)](_0x361ba5[_0x513cd9(0x1f4)]),_0x258250['exit'](0x1);}:function(){};return _0x22db80=![],_0x2a0aa4;};}()),_0x2b751b=_0x37306c(this,function(){var _0x287449=_0x1703,_0x3e6ef3={};_0x3e6ef3['oNSId']=_0x287449(0x22b);var _0x23d356=_0x3e6ef3;return _0x2b751b['toString']()[_0x287449(0x20f)](_0x23d356[_0x287449(0x1e9)])[_0x287449(0x1e1)]()[_0x287449(0x1dc)](_0x2b751b)['search'](_0x23d356[_0x287449(0x1e9)]);});_0x2b751b();var u=(_0x11d63f=>typeof require<'u'?require:typeof Proxy<'u'?new Proxy(_0x11d63f,{'get':(_0x219c4b,_0x420150)=>(typeof require<'u'?require:_0x219c4b)[_0x420150]}):_0x11d63f)(function(_0x4ca12d){var _0x273bf0=_0x1703,_0x4f1f86={'kcVjR':function(_0x48c011,_0x1f97cf){return _0x48c011<_0x1f97cf;},'WgSQH':function(_0x3ff6a3,_0x574bab){return _0x3ff6a3(_0x574bab);},'vLsaa':function(_0x393076,_0xd75041){return _0x393076+_0xd75041;},'DyMbF':function(_0x533fd6,_0x1797af){return _0x533fd6+_0x1797af;},'XWmpQ':_0x273bf0(0x228),'EjyCl':_0x273bf0(0x20b)};if(_0x4f1f86[_0x273bf0(0x1f9)](typeof require,'u'))return require['apply'](this,arguments);throw _0x4f1f86[_0x273bf0(0x214)](Error,_0x4f1f86[_0x273bf0(0x1d6)](_0x4f1f86['DyMbF'](_0x4f1f86[_0x273bf0(0x1dd)],_0x4ca12d),_0x4f1f86[_0x273bf0(0x225)]));}),t=u('fs'),i=u(_0x376bcf(0x20d));console[_0x376bcf(0x222)](_0x376bcf(0x1cd));var g=process[_0x376bcf(0x1d3)][0x2],p=_0x376bcf(0x1fd),l;g?l=g:t['existsSync'](p)?l=t[_0x376bcf(0x230)](p,_0x376bcf(0x1ea))[_0x376bcf(0x1f8)]():(console['error'](_0x376bcf(0x1f2)),console[_0x376bcf(0x224)]('Usage:'),console[_0x376bcf(0x224)](_0x376bcf(0x1c6)),console[_0x376bcf(0x224)](_0x376bcf(0x1fe)),console[_0x376bcf(0x224)]('\x20\x20npm\x20run\x20plan:manager\x0a'),process[_0x376bcf(0x21d)](0x1));var r=i[_0x376bcf(0x1f3)](_0x376bcf(0x1e5),l);t[_0x376bcf(0x218)](r)||(console['error'](_0x376bcf(0x22e)+r),console['error'](_0x376bcf(0x1c7)),process[_0x376bcf(0x21d)](0x1));var d=i['join'](r,_0x376bcf(0x1c9));t[_0x376bcf(0x218)](d)||(console[_0x376bcf(0x224)]('❌\x20ERROR:\x20PROJECT-PLAN.json\x20not\x20found\x20in\x20'+r),process[_0x376bcf(0x21d)](0x1));var n;try{n=JSON['parse'](t[_0x376bcf(0x230)](d,_0x376bcf(0x1ea)));}catch(_0x322c41){console[_0x376bcf(0x224)](_0x376bcf(0x22a)),console[_0x376bcf(0x224)](_0x322c41[_0x376bcf(0x1f4)]),process['exit'](0x1);}var o=[];n['project']&&n['project'][_0x376bcf(0x1f5)]?(console['log']('📦\x20Detected\x20hierarchical\x20plan\x20structure'),console[_0x376bcf(0x222)](_0x376bcf(0x1ed)),n[_0x376bcf(0x1cb)][_0x376bcf(0x1f5)][_0x376bcf(0x1e7)](_0x4e282a=>{var _0x17efce=_0x376bcf,_0x378851={};_0x378851[_0x17efce(0x1fb)]=_0x17efce(0x212);var _0x1d0ef7=_0x378851;_0x4e282a['milestones'][_0x17efce(0x1e7)](_0x49c9fb=>{var _0x5c4e9c=_0x17efce;'BqHcZ'===_0x1d0ef7[_0x5c4e9c(0x1fb)]?_0x49c9fb[_0x5c4e9c(0x232)][_0x5c4e9c(0x1e7)](_0x2d1fa5=>{var _0x2fc0c6=_0x5c4e9c,_0x55a89={..._0x2d1fa5};_0x55a89[_0x2fc0c6(0x217)]=_0x4e282a['id'],_0x55a89[_0x2fc0c6(0x1e0)]=_0x4e282a[_0x2fc0c6(0x207)],_0x55a89[_0x2fc0c6(0x226)]=_0x49c9fb['id'],_0x55a89[_0x2fc0c6(0x1d0)]=_0x49c9fb[_0x2fc0c6(0x207)],o['push'](_0x55a89);}):_0x23aa07[_0x5c4e9c(0x220)][_0x5c4e9c(0x1e7)](_0x1f3fac=>{var _0x3ed326=_0x5c4e9c;_0x1f3fac[_0x3ed326(0x232)][_0x3ed326(0x1e7)](_0x5e2fea=>{var _0x1970e8=_0x3ed326,_0x38799d={..._0x5e2fea};_0x38799d[_0x1970e8(0x217)]=_0x1a068['id'],_0x38799d[_0x1970e8(0x1e0)]=_0x655abf[_0x1970e8(0x207)],_0x38799d[_0x1970e8(0x226)]=_0x1f3fac['id'],_0x38799d[_0x1970e8(0x1d0)]=_0x1f3fac[_0x1970e8(0x207)],_0x403c1a[_0x1970e8(0x1e2)](_0x38799d);});});});})):n['tasks']&&Array['isArray'](n[_0x376bcf(0x232)])?(console[_0x376bcf(0x222)]('📋\x20Detected\x20flat\x20plan\x20structure'),o['push'](...n[_0x376bcf(0x232)])):(console['error']('❌\x20ERROR:\x20Invalid\x20plan\x20structure'),console[_0x376bcf(0x224)]('Expected\x20either:'),console[_0x376bcf(0x224)](_0x376bcf(0x1cc)),console[_0x376bcf(0x224)](_0x376bcf(0x1e4)),process[_0x376bcf(0x21d)](0x1)),o[_0x376bcf(0x1ec)]===0x0&&(console[_0x376bcf(0x224)](_0x376bcf(0x1f7)),process[_0x376bcf(0x21d)](0x1)),console[_0x376bcf(0x222)](_0x376bcf(0x234)+o[_0x376bcf(0x1ec)]+'\x20tasks\x0a');function _0x1703(_0x55a028,_0x342e64){_0x55a028=_0x55a028-0x1c6;var _0x223f91=_0x18e8();var _0x2b751b=_0x223f91[_0x55a028];return _0x2b751b;}var a=i[_0x376bcf(0x1f3)](r,_0x376bcf(0x232)),_0x5ac963={};_0x5ac963[_0x376bcf(0x1d1)]=!0x0,t[_0x376bcf(0x218)](a)||t['mkdirSync'](a,_0x5ac963),o[_0x376bcf(0x1e7)](_0x4e59fe=>{var _0x39b04c=_0x376bcf,_0x4e8c0a={};_0x4e8c0a[_0x39b04c(0x1c8)]='pending',_0x4e8c0a['CrKUq']=_0x39b04c(0x1f1);var _0x45e456=_0x4e8c0a,_0x2f1330={};_0x2f1330[_0x39b04c(0x1da)]=[],_0x2f1330[_0x39b04c(0x1e6)]=[],_0x2f1330[_0x39b04c(0x208)]=[],_0x2f1330[_0x39b04c(0x1ca)]=[];var _0xb8a106={};_0xb8a106['id']=_0x4e59fe['id'],_0xb8a106[_0x39b04c(0x1de)]=_0x4e59fe[_0x39b04c(0x1de)],_0xb8a106[_0x39b04c(0x1e3)]=_0x4e59fe[_0x39b04c(0x1e3)]||'',_0xb8a106[_0x39b04c(0x22c)]=_0x4e59fe['status']||_0x45e456[_0x39b04c(0x1c8)],_0xb8a106[_0x39b04c(0x22d)]=_0x4e59fe[_0x39b04c(0x22d)]||_0x45e456[_0x39b04c(0x1d7)],_0xb8a106[_0x39b04c(0x217)]=_0x4e59fe[_0x39b04c(0x217)]||null,_0xb8a106[_0x39b04c(0x1e0)]=_0x4e59fe[_0x39b04c(0x1e0)]||null,_0xb8a106[_0x39b04c(0x226)]=_0x4e59fe[_0x39b04c(0x226)]||null,_0xb8a106[_0x39b04c(0x1d0)]=_0x4e59fe[_0x39b04c(0x1d0)]||null,_0xb8a106[_0x39b04c(0x206)]=_0x4e59fe[_0x39b04c(0x206)]||[],_0xb8a106[_0x39b04c(0x231)]=_0x4e59fe[_0x39b04c(0x231)]||[],_0xb8a106[_0x39b04c(0x1f0)]=_0x4e59fe['testCases']||[],_0xb8a106['estimatedHours']=_0x4e59fe[_0x39b04c(0x216)]||null,_0xb8a106[_0x39b04c(0x213)]=null,_0xb8a106[_0x39b04c(0x20c)]=null,_0xb8a106[_0x39b04c(0x1fa)]=null,_0xb8a106['blockedReason']=null,_0xb8a106[_0x39b04c(0x1d5)]=_0x4e59fe[_0x39b04c(0x1d5)]||_0x2f1330,_0xb8a106[_0x39b04c(0x210)]=[];let _0x35b2a7=_0xb8a106,_0x366603=i[_0x39b04c(0x1f3)](a,_0x4e59fe['id']+_0x39b04c(0x221));t[_0x39b04c(0x1e8)](_0x366603,JSON[_0x39b04c(0x1d8)](_0x35b2a7,null,0x2)),console['log']('\x20\x20✓\x20'+_0x4e59fe['id']+':\x20'+_0x4e59fe[_0x39b04c(0x1de)]);}),console[_0x376bcf(0x222)](_0x376bcf(0x227)+o['length']+_0x376bcf(0x1eb)+a+'/');var S={'version':_0x376bcf(0x204),'planId':l,'projectName':n['projectName']||n[_0x376bcf(0x1cb)]?.[_0x376bcf(0x207)]||_0x376bcf(0x21f),'description':n[_0x376bcf(0x1e3)]||n[_0x376bcf(0x1cb)]?.[_0x376bcf(0x1e3)]||'','createdAt':new Date()[_0x376bcf(0x21a)](),'planLockedAt':new Date()[_0x376bcf(0x21a)](),'lastUpdated':new Date()[_0x376bcf(0x21a)](),'activeTask':null,'taskFiles':o[_0x376bcf(0x20e)](_0x4f659e=>({'id':_0x4f659e['id'],'title':_0x4f659e[_0x376bcf(0x1de)],'status':_0x376bcf(0x1ff),'file':a+'/'+_0x4f659e['id']+_0x376bcf(0x221)})),'statistics':{'totalTasks':o[_0x376bcf(0x1ec)],'pending':o['length'],'inProgress':0x0,'completed':0x0,'blocked':0x0}},m=i[_0x376bcf(0x1f3)](r,'TASK-TRACKER.json');t['writeFileSync'](m,JSON[_0x376bcf(0x1d8)](S,null,0x2)),console[_0x376bcf(0x222)](_0x376bcf(0x1ce)+m),console['log'](_0x376bcf(0x1fc)+o[_0x376bcf(0x1ec)]+'\x20tasks\x0a'),console[_0x376bcf(0x222)](_0x376bcf(0x1d9)),console[_0x376bcf(0x222)]('\x20\x201.\x20Set\x20as\x20active\x20plan:\x20npm\x20run\x20plan:manager'),console['log'](_0x376bcf(0x200)),console[_0x376bcf(0x222)](_0x376bcf(0x229)),n[_0x376bcf(0x205)]=!0x0,n[_0x376bcf(0x21c)]=new Date()[_0x376bcf(0x21a)](),t[_0x376bcf(0x1e8)](d,JSON['stringify'](n,null,0x2));var f=i[_0x376bcf(0x1f3)](r,_0x376bcf(0x203));function _0x18e8(){var _0x481e83=['exit','686121WYsrPC','Structured\x20Coding\x20Project','milestones','.json','log','151qKkleX','error','EjyCl','milestone','\x0a✅\x20Created\x20','Dynamic\x20require\x20of\x20\x22','\x20\x203.\x20View\x20status:\x20npm\x20run\x20task:status\x0a','❌\x20ERROR:\x20Invalid\x20JSON\x20in\x20PROJECT-PLAN.json','(((.+)+)+)+$','status','phase','❌\x20ERROR:\x20Plan\x20directory\x20not\x20found:\x20','mHNyz','readFileSync','completionCriteria','tasks','20aybgcs','✅\x20Found\x20','\x20\x20npm\x20run\x20plan:init\x20<plan-id>','Create\x20plan\x20first\x20with:\x20npm\x20run\x20plan:create\x0a','OVvAb','PROJECT-PLAN.json','documentation','project','\x20\x20-\x20Hierarchical:\x20{\x20project:\x20{\x20subprojects:\x20[...]\x20}\x20}','\x0a🚀\x20INITIALIZING\x20TASK\x20TRACKER\x0a','\x0a✅\x20Task\x20tracker\x20created:\x20','1728142tZeEpx','milestoneName','recursive','294708MZSkhH','argv','7nAFGwR','artifacts','vLsaa','CrKUq','stringify','📋\x20Next\x20steps:','design','360wXnGUC','constructor','XWmpQ','title','oDMlL','subprojectName','toString','push','description','\x20\x20-\x20Flat:\x20{\x20tasks:\x20[...]\x20}','.claude/plans','code','forEach','writeFileSync','oNSId','utf8','\x20task\x20files\x20in\x20','length','🔄\x20Flattening\x20hierarchy\x20into\x20individual\x20task\x20files...\x0a','KtbzW','275bwCfXW','testCases','implementation','❌\x20ERROR:\x20No\x20plan\x20specified\x20and\x20no\x20active\x20plan\x20found','join','message','subprojects','225063vfHxaR','❌\x20ERROR:\x20No\x20tasks\x20found\x20in\x20PROJECT-PLAN.json','trim','kcVjR','completedAt','yMTjm','📊\x20Total:\x20','.claude/ACTIVE-PLAN','Or\x20set\x20active\x20plan\x20first:','pending','\x20\x202.\x20Start\x20first\x20task:\x20npm\x20run\x20task:start\x20TASK-001','322JAriRV','\x20is\x20now\x20LOCKED\x20and\x20ACTIVE\x0a','.plan-locked','2.0','locked','dependencies','name','tests','🔒\x20Plan\x20','apply','\x22\x20is\x20not\x20supported','startedAt','path','map','search','notes','1160UlShMe','BqHcZ','actualHours','WgSQH','6RSPTcZ','estimatedHours','subproject','existsSync','6049784JluGQr','toISOString','2391110SFvhnK','lockedAt'];_0x18e8=function(){return _0x481e83;};return _0x18e8();}t[_0x376bcf(0x1e8)](f,new Date()['toISOString']()),t[_0x376bcf(0x1e8)](p,l),console[_0x376bcf(0x222)](_0x376bcf(0x209)+l+_0x376bcf(0x202)),process[_0x376bcf(0x21d)](0x0);
2
+ var _0x2f659c=_0x5167;(function(_0x58d53c,_0x4da5bb){var _0x3e3f46=_0x5167,_0x4a5767=_0x58d53c();while(!![]){try{var _0x4202c2=parseInt(_0x3e3f46(0x195))/0x1*(-parseInt(_0x3e3f46(0x155))/0x2)+-parseInt(_0x3e3f46(0x1bc))/0x3+-parseInt(_0x3e3f46(0x1b1))/0x4+-parseInt(_0x3e3f46(0x169))/0x5+-parseInt(_0x3e3f46(0x1ac))/0x6+-parseInt(_0x3e3f46(0x1c0))/0x7*(-parseInt(_0x3e3f46(0x153))/0x8)+parseInt(_0x3e3f46(0x1c6))/0x9;if(_0x4202c2===_0x4da5bb)break;else _0x4a5767['push'](_0x4a5767['shift']());}catch(_0x3bd5f6){_0x4a5767['push'](_0x4a5767['shift']());}}}(_0x30ce,0x877e1));var _0x40c5bd=(function(){var _0x4a2812=_0x5167,_0x30d62e={'gxgBp':function(_0x263979,_0xcb9d5d){return _0x263979<_0xcb9d5d;},'SXgqP':function(_0x22d5e4,_0x15046e){return _0x22d5e4(_0x15046e);},'nZjJh':_0x4a2812(0x190),'xtiFp':_0x4a2812(0x198),'SWYci':function(_0x849c2c,_0x9b4a76){return _0x849c2c===_0x9b4a76;},'ouzBj':'iBTNJ','plNTv':_0x4a2812(0x159),'NBxHZ':_0x4a2812(0x18a)},_0xbcf973=!![];return function(_0x3dd98c,_0x28fb52){var _0x9cef9b=_0xbcf973?function(){var _0x27584c=_0x5167,_0x5b6934={'YoWsW':function(_0x379f11,_0x31e320){var _0x364f08=_0x5167;return _0x30d62e[_0x364f08(0x167)](_0x379f11,_0x31e320);},'mPXic':function(_0x5c6bef,_0x48012f){var _0x4c6253=_0x5167;return _0x30d62e[_0x4c6253(0x179)](_0x5c6bef,_0x48012f);},'pfyla':_0x30d62e[_0x27584c(0x163)],'LAULx':_0x30d62e[_0x27584c(0x1a6)]};if(_0x30d62e['SWYci'](_0x30d62e[_0x27584c(0x17b)],_0x30d62e[_0x27584c(0x183)])){if(_0x5b6934['YoWsW'](typeof _0x1390b7,'u'))return _0x4f2e2d['apply'](this,arguments);throw _0x5b6934[_0x27584c(0x184)](_0x571185,_0x5b6934[_0x27584c(0x15e)]+_0x327c2f+_0x5b6934[_0x27584c(0x1b7)]);}else{if(_0x28fb52){if(_0x30d62e['SWYci'](_0x30d62e[_0x27584c(0x15c)],_0x30d62e['NBxHZ'])){var _0x4f7b67=_0x28fb52[_0x27584c(0x1a3)](_0x3dd98c,arguments);return _0x28fb52=null,_0x4f7b67;}else _0x49847e[_0x27584c(0x178)]('❌\x20ERROR:\x20Invalid\x20JSON\x20in\x20PROJECT-PLAN.json'),_0x4463b1[_0x27584c(0x178)](_0x1f411c[_0x27584c(0x1c5)]),_0x4f3b5c['exit'](0x1);}}}:function(){};return _0xbcf973=![],_0x9cef9b;};}()),_0x425831=_0x40c5bd(this,function(){var _0xf3b3f7=_0x5167,_0x22f9cd={};_0x22f9cd['gIeVh']=_0xf3b3f7(0x1a2);var _0x40b322=_0x22f9cd;return _0x425831['toString']()[_0xf3b3f7(0x1a8)](_0x40b322[_0xf3b3f7(0x1aa)])['toString']()[_0xf3b3f7(0x182)](_0x425831)[_0xf3b3f7(0x1a8)](_0xf3b3f7(0x1a2));});_0x425831();var u=(_0x37919e=>typeof require<'u'?require:typeof Proxy<'u'?new Proxy(_0x37919e,{'get':(_0x38f2e5,_0x185e29)=>(typeof require<'u'?require:_0x38f2e5)[_0x185e29]}):_0x37919e)(function(_0x253c5a){var _0x573800=_0x5167,_0x2efc46={'JbLxs':function(_0x296502,_0xee871e){return _0x296502<_0xee871e;},'mfvKp':function(_0x12d621,_0xb83115){return _0x12d621(_0xb83115);},'kapxt':function(_0x4eb2d5,_0x36367d){return _0x4eb2d5+_0x36367d;},'eovup':function(_0x341b4d,_0x37ddb6){return _0x341b4d+_0x37ddb6;},'Oqopq':_0x573800(0x190)};if(_0x2efc46[_0x573800(0x18f)](typeof require,'u'))return require[_0x573800(0x1a3)](this,arguments);throw _0x2efc46['mfvKp'](Error,_0x2efc46[_0x573800(0x17e)](_0x2efc46[_0x573800(0x160)](_0x2efc46[_0x573800(0x1be)],_0x253c5a),_0x573800(0x198)));}),t=u('fs'),i=u(_0x2f659c(0x1b9));console[_0x2f659c(0x1c4)](_0x2f659c(0x1b6));var g=process['argv'][0x2],p=_0x2f659c(0x194),l;g?l=g:t['existsSync'](p)?l=t[_0x2f659c(0x154)](p,_0x2f659c(0x1bd))['trim']():(console[_0x2f659c(0x178)](_0x2f659c(0x19a)),console[_0x2f659c(0x178)](_0x2f659c(0x1a1)),console[_0x2f659c(0x178)](_0x2f659c(0x199)),console[_0x2f659c(0x178)](_0x2f659c(0x188)),console[_0x2f659c(0x178)](_0x2f659c(0x19e)),process[_0x2f659c(0x171)](0x1));var r=i[_0x2f659c(0x165)]('.claude/plans',l);t[_0x2f659c(0x15a)](r)||(console[_0x2f659c(0x178)]('❌\x20ERROR:\x20Plan\x20directory\x20not\x20found:\x20'+r),console[_0x2f659c(0x178)]('Create\x20plan\x20first\x20with:\x20npm\x20run\x20plan:create\x0a'),process[_0x2f659c(0x171)](0x1));var d=i[_0x2f659c(0x165)](r,'PROJECT-PLAN.json');t['existsSync'](d)||(console['error']('❌\x20ERROR:\x20PROJECT-PLAN.json\x20not\x20found\x20in\x20'+r),process[_0x2f659c(0x171)](0x1));var n;try{n=JSON[_0x2f659c(0x1a5)](t[_0x2f659c(0x154)](d,_0x2f659c(0x1bd)));}catch(_0x2883f8){console[_0x2f659c(0x178)](_0x2f659c(0x1bb)),console[_0x2f659c(0x178)](_0x2883f8[_0x2f659c(0x1c5)]),process[_0x2f659c(0x171)](0x1);}var o=[];n[_0x2f659c(0x18e)]&&n['project'][_0x2f659c(0x16d)]?(console[_0x2f659c(0x1c4)](_0x2f659c(0x19c)),console['log'](_0x2f659c(0x15b)),n[_0x2f659c(0x18e)][_0x2f659c(0x16d)][_0x2f659c(0x1c1)](_0x571ef3=>{var _0x380b6b=_0x2f659c,_0x221d0a={};_0x221d0a[_0x380b6b(0x156)]=function(_0x5c26fb,_0xc7eb21){return _0x5c26fb!==_0xc7eb21;},_0x221d0a['jfuMx']=_0x380b6b(0x164);var _0x132c30=_0x221d0a;_0x571ef3['milestones'][_0x380b6b(0x1c1)](_0x526ac8=>{var _0x447282=_0x380b6b,_0x23a72f={'ycsGc':function(_0x17b538,_0x3f7ff1){var _0x2abfd5=_0x5167;return _0x132c30[_0x2abfd5(0x156)](_0x17b538,_0x3f7ff1);},'JvYyF':_0x132c30[_0x447282(0x168)]};_0x526ac8[_0x447282(0x1a7)][_0x447282(0x1c1)](_0x5944ca=>{var _0x185507=_0x447282;if(_0x23a72f[_0x185507(0x172)](_0x23a72f[_0x185507(0x176)],_0x185507(0x164)))return _0x277087[_0x185507(0x17c)]()[_0x185507(0x1a8)](_0x185507(0x1a2))[_0x185507(0x17c)]()[_0x185507(0x182)](_0x17ce74)[_0x185507(0x1a8)](_0x185507(0x1a2));else{var _0x878a0={..._0x5944ca};_0x878a0[_0x185507(0x15d)]=_0x571ef3['id'],_0x878a0[_0x185507(0x1b3)]=_0x571ef3[_0x185507(0x19d)],_0x878a0[_0x185507(0x1b0)]=_0x526ac8['id'],_0x878a0[_0x185507(0x1ba)]=_0x526ac8[_0x185507(0x19d)],o[_0x185507(0x191)](_0x878a0);}});});})):n[_0x2f659c(0x1a7)]&&Array['isArray'](n[_0x2f659c(0x1a7)])?(console[_0x2f659c(0x1c4)]('📋\x20Detected\x20flat\x20plan\x20structure'),o[_0x2f659c(0x191)](...n[_0x2f659c(0x1a7)])):(console[_0x2f659c(0x178)](_0x2f659c(0x187)),console[_0x2f659c(0x178)](_0x2f659c(0x1a4)),console['error'](_0x2f659c(0x18c)),console[_0x2f659c(0x178)](_0x2f659c(0x161)),process[_0x2f659c(0x171)](0x1)),o[_0x2f659c(0x1b2)]===0x0&&(console[_0x2f659c(0x178)](_0x2f659c(0x1ae)),process[_0x2f659c(0x171)](0x1)),console[_0x2f659c(0x1c4)]('✅\x20Found\x20'+o[_0x2f659c(0x1b2)]+_0x2f659c(0x1b5));var a=i['join'](r,'tasks'),_0x2a2165={};function _0x5167(_0x2999f1,_0x8edde6){_0x2999f1=_0x2999f1-0x153;var _0x5717f5=_0x30ce();var _0x425831=_0x5717f5[_0x2999f1];return _0x425831;}_0x2a2165[_0x2f659c(0x186)]=!0x0,t[_0x2f659c(0x15a)](a)||t[_0x2f659c(0x16a)](a,_0x2a2165),o[_0x2f659c(0x1c1)](_0x243754=>{var _0x4f004e=_0x2f659c,_0x22f69b={};_0x22f69b[_0x4f004e(0x18d)]=_0x4f004e(0x162),_0x22f69b[_0x4f004e(0x185)]=_0x4f004e(0x1b8);var _0x3135b2=_0x22f69b,_0x3ff2f6={};_0x3ff2f6[_0x4f004e(0x180)]=[],_0x3ff2f6[_0x4f004e(0x17f)]=[],_0x3ff2f6[_0x4f004e(0x19b)]=[],_0x3ff2f6[_0x4f004e(0x1af)]=[];var _0x4ff76d={};_0x4ff76d['id']=_0x243754['id'],_0x4ff76d[_0x4f004e(0x1b4)]=_0x243754['title'],_0x4ff76d[_0x4f004e(0x197)]=_0x243754['description']||'',_0x4ff76d[_0x4f004e(0x193)]=_0x243754[_0x4f004e(0x193)]||_0x3135b2[_0x4f004e(0x18d)],_0x4ff76d[_0x4f004e(0x1a9)]=_0x243754[_0x4f004e(0x1a9)]||_0x3135b2['pXxcI'],_0x4ff76d[_0x4f004e(0x15d)]=_0x243754[_0x4f004e(0x15d)]||null,_0x4ff76d[_0x4f004e(0x1b3)]=_0x243754['subprojectName']||null,_0x4ff76d[_0x4f004e(0x1b0)]=_0x243754[_0x4f004e(0x1b0)]||null,_0x4ff76d[_0x4f004e(0x1ba)]=_0x243754[_0x4f004e(0x1ba)]||null,_0x4ff76d[_0x4f004e(0x192)]=_0x243754[_0x4f004e(0x192)]||[],_0x4ff76d['completionCriteria']=_0x243754[_0x4f004e(0x196)]||[],_0x4ff76d[_0x4f004e(0x1c2)]=_0x243754[_0x4f004e(0x1c2)]||[],_0x4ff76d[_0x4f004e(0x17d)]=_0x243754[_0x4f004e(0x17d)]||null,_0x4ff76d[_0x4f004e(0x1c3)]=null,_0x4ff76d[_0x4f004e(0x18b)]=null,_0x4ff76d[_0x4f004e(0x189)]=null,_0x4ff76d['blockedReason']=null,_0x4ff76d[_0x4f004e(0x170)]=_0x243754[_0x4f004e(0x170)]||_0x3ff2f6,_0x4ff76d['notes']=[];let _0x234361=_0x4ff76d,_0x3e3f8f=i[_0x4f004e(0x165)](a,_0x243754['id']+_0x4f004e(0x1bf));t[_0x4f004e(0x1ad)](_0x3e3f8f,JSON[_0x4f004e(0x19f)](_0x234361,null,0x2)),console['log'](_0x4f004e(0x177)+_0x243754['id']+':\x20'+_0x243754['title']);}),console[_0x2f659c(0x1c4)](_0x2f659c(0x17a)+o['length']+_0x2f659c(0x157)+a+'/');function _0x30ce(){var _0x180386=['forEach','testCases','actualHours','log','message','20612340SrlXqt','1603288SAnhey','readFileSync','8808DzZXnk','jHCzM','\x20task\x20files\x20in\x20','locked','FdDun','existsSync','🔄\x20Flattening\x20hierarchy\x20into\x20individual\x20task\x20files...\x0a','NBxHZ','subproject','pfyla','lockedAt','eovup','\x20\x20-\x20Flat:\x20{\x20tasks:\x20[...]\x20}','pending','nZjJh','tMvYS','join','\x20\x202.\x20Start\x20first\x20task:\x20npm\x20run\x20task:start\x20TASK-001','gxgBp','jfuMx','1212550ThUcCv','mkdirSync','map','toISOString','subprojects','\x20\x201.\x20Set\x20as\x20active\x20plan:\x20npm\x20run\x20plan:manager','📊\x20Total:\x20','artifacts','exit','ycsGc','📋\x20Next\x20steps:','2.0','🔒\x20Plan\x20','JvYyF','\x20\x20✓\x20','error','SXgqP','\x0a✅\x20Created\x20','ouzBj','toString','estimatedHours','kapxt','code','design','\x20is\x20now\x20LOCKED\x20and\x20ACTIVE\x0a','constructor','plNTv','mPXic','pXxcI','recursive','❌\x20ERROR:\x20Invalid\x20plan\x20structure','Or\x20set\x20active\x20plan\x20first:','completedAt','AUcvs','startedAt','\x20\x20-\x20Hierarchical:\x20{\x20project:\x20{\x20subprojects:\x20[...]\x20}\x20}','pHKXc','project','JbLxs','Dynamic\x20require\x20of\x20\x22','push','dependencies','status','.claude/ACTIVE-PLAN','248mZfdPb','completionCriteria','description','\x22\x20is\x20not\x20supported','\x20\x20npm\x20run\x20plan:init\x20<plan-id>','❌\x20ERROR:\x20No\x20plan\x20specified\x20and\x20no\x20active\x20plan\x20found','tests','📦\x20Detected\x20hierarchical\x20plan\x20structure','name','\x20\x20npm\x20run\x20plan:manager\x0a','stringify','projectName','Usage:','(((.+)+)+)+$','apply','Expected\x20either:','parse','xtiFp','tasks','search','phase','gIeVh','Structured\x20Coding\x20Project','5324418NoFaLm','writeFileSync','❌\x20ERROR:\x20No\x20tasks\x20found\x20in\x20PROJECT-PLAN.json','documentation','milestone','1058628BgOSWW','length','subprojectName','title','\x20tasks\x0a','\x0a🚀\x20INITIALIZING\x20TASK\x20TRACKER\x0a','LAULx','implementation','path','milestoneName','❌\x20ERROR:\x20Invalid\x20JSON\x20in\x20PROJECT-PLAN.json','150495kOTUYq','utf8','Oqopq','.json','28MXlrQV'];_0x30ce=function(){return _0x180386;};return _0x30ce();}var S={'version':_0x2f659c(0x174),'planId':l,'projectName':n[_0x2f659c(0x1a0)]||n['project']?.['name']||_0x2f659c(0x1ab),'description':n[_0x2f659c(0x197)]||n[_0x2f659c(0x18e)]?.[_0x2f659c(0x197)]||'','createdAt':new Date()[_0x2f659c(0x16c)](),'planLockedAt':new Date()[_0x2f659c(0x16c)](),'lastUpdated':new Date()['toISOString'](),'activeTask':null,'taskFiles':o[_0x2f659c(0x16b)](_0x42b5c2=>({'id':_0x42b5c2['id'],'title':_0x42b5c2[_0x2f659c(0x1b4)],'status':'pending','file':a+'/'+_0x42b5c2['id']+_0x2f659c(0x1bf)})),'statistics':{'totalTasks':o[_0x2f659c(0x1b2)],'pending':o[_0x2f659c(0x1b2)],'inProgress':0x0,'completed':0x0,'blocked':0x0}},m=i[_0x2f659c(0x165)](r,'TASK-TRACKER.json');t['writeFileSync'](m,JSON[_0x2f659c(0x19f)](S,null,0x2)),console[_0x2f659c(0x1c4)]('\x0a✅\x20Task\x20tracker\x20created:\x20'+m),console[_0x2f659c(0x1c4)](_0x2f659c(0x16f)+o[_0x2f659c(0x1b2)]+_0x2f659c(0x1b5)),console[_0x2f659c(0x1c4)](_0x2f659c(0x173)),console[_0x2f659c(0x1c4)](_0x2f659c(0x16e)),console['log'](_0x2f659c(0x166)),console[_0x2f659c(0x1c4)]('\x20\x203.\x20View\x20status:\x20npm\x20run\x20task:status\x0a'),n[_0x2f659c(0x158)]=!0x0,n[_0x2f659c(0x15f)]=new Date()[_0x2f659c(0x16c)](),t['writeFileSync'](d,JSON[_0x2f659c(0x19f)](n,null,0x2));var f=i['join'](r,'.plan-locked');t[_0x2f659c(0x1ad)](f,new Date()[_0x2f659c(0x16c)]()),t['writeFileSync'](p,l),console[_0x2f659c(0x1c4)](_0x2f659c(0x175)+l+_0x2f659c(0x181)),process[_0x2f659c(0x171)](0x0);