gl-life-claude-zen 1.3.0 → 1.3.1
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.
- package/CHANGELOG.md +42 -0
- package/README.md +1 -0
- package/bin/create-gl-life-claude.js +56 -1
- package/dist/hooks/auto-format.js +1 -1
- package/dist/hooks/complete-task.js +1 -1
- package/dist/hooks/enforce-migration-workflow.js +1 -1
- package/dist/hooks/enforce-structured-development.js +1 -1
- package/dist/hooks/enforce-test-pyramid.js +1 -1
- package/dist/hooks/init-task-tracker.js +1 -1
- package/dist/hooks/start-task.js +1 -1
- package/dist/hooks/task-status.js +1 -1
- package/dist/hooks/validate-database-changes.js +1 -1
- package/dist/hooks/validate-e2e-coverage.js +1 -1
- package/dist/hooks/validate-git-workflow.js +1 -1
- package/dist/hooks/validate-integration-site.js +1 -1
- package/dist/hooks/validate-migration-impact.js +1 -1
- package/dist/hooks/validate-task-completion.js +1 -1
- package/dist/hooks/validate-test-quality.js +1 -1
- package/dist/hooks/validate-test-results.js +1 -1
- package/dist/hooks/validate-ui-integration.js +1 -1
- package/dist/scripts/help.js +1 -1
- package/dist/scripts/plan-amend.js +1 -1
- package/dist/scripts/plan-create.js +1 -1
- package/dist/scripts/plan-help.js +1 -1
- package/dist/scripts/plan-init.js +1 -1
- package/dist/scripts/plan-manager.js +1 -1
- package/dist/scripts/setup-git-hooks.js +1 -1
- package/dist/scripts/task-done.js +1 -1
- package/dist/scripts/task-merge.js +1 -1
- package/dist/scripts/task-next.js +1 -1
- package/dist/scripts/task-start.js +1 -1
- package/dist/scripts/task-status.js +1 -1
- package/lib/init.js +6 -6
- package/package.json +2 -1
- package/templates/.gitignore +14 -0
- package/templates/README.md +4 -0
package/CHANGELOG.md
CHANGED
|
@@ -242,6 +242,24 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
242
242
|
- Visual validation: 5-15 seconds (screenshot + AI analysis)
|
|
243
243
|
- Contract validation: <1 second (static analysis)
|
|
244
244
|
|
|
245
|
+
## [1.3.1] - 2025-12-20
|
|
246
|
+
|
|
247
|
+
### Fixed
|
|
248
|
+
- **CRITICAL: .gitignore Template Handling**
|
|
249
|
+
- Fixed npm renaming `.gitignore` to `.npmignore` during package extraction
|
|
250
|
+
- Added dynamic source resolution in lib/init.js to handle both filenames
|
|
251
|
+
- Added missing `existsSync` import
|
|
252
|
+
|
|
253
|
+
- **CLI Version/Help Flags on Windows**
|
|
254
|
+
- Fixed Windows path handling in getVersion() function
|
|
255
|
+
- Changed from dynamic ESM import to readFileSync for cross-platform compatibility
|
|
256
|
+
- Resolved ERR_UNSUPPORTED_ESM_URL_SCHEME and ERR_IMPORT_ATTRIBUTE_MISSING errors
|
|
257
|
+
|
|
258
|
+
### Technical Details
|
|
259
|
+
- Package now works correctly on Windows, macOS, and Linux
|
|
260
|
+
- All project creation scenarios tested and verified
|
|
261
|
+
- Task management scripts verified working with bundled hooks
|
|
262
|
+
|
|
245
263
|
## [1.3.0] - 2025-12-20
|
|
246
264
|
|
|
247
265
|
### Changed
|
|
@@ -262,11 +280,35 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
262
280
|
- Updated README.md with "Hard Requirements" section
|
|
263
281
|
- Updated settings.json template with warning comment
|
|
264
282
|
|
|
283
|
+
### Added
|
|
284
|
+
- **CLI Help and Version Flags**
|
|
285
|
+
- Added `--help` and `-h` flags to display usage information
|
|
286
|
+
- Added `--version` and `-v` flags to show package version
|
|
287
|
+
- Prevents accidental project creation with invalid names like `--help`
|
|
288
|
+
- Self-documenting CLI with comprehensive usage examples
|
|
289
|
+
|
|
290
|
+
### Fixed
|
|
291
|
+
- **CRITICAL: Missing .gitignore Template File in Published Package**
|
|
292
|
+
- Fixed npm excluding `.gitignore` template during package publish
|
|
293
|
+
- Added explicit `templates/.gitignore` entry to package.json files array
|
|
294
|
+
- Without this fix, all project creation attempts fail with ENOENT error
|
|
295
|
+
- Impact: Package is now usable via npm install and npx
|
|
296
|
+
|
|
297
|
+
- **CRITICAL: Task Management Scripts Hook Path Resolution**
|
|
298
|
+
- Fixed incorrect hook paths in bundled scripts that prevented task management
|
|
299
|
+
- Scripts were looking for hooks at `node_modules/.gl-life-claude/.claude/hooks/` (wrong)
|
|
300
|
+
- Now correctly resolve to `node_modules/.gl-life-claude/hooks/` (bundled location)
|
|
301
|
+
- Added dynamic path resolution with fallback to dev workspace location
|
|
302
|
+
- Affected scripts: task-status.js, task-start.js, task-done.js, plan-init.js
|
|
303
|
+
- Impact: Task management commands (npm run task:*) now work correctly
|
|
304
|
+
- Error message now shows both attempted paths for easier debugging
|
|
305
|
+
|
|
265
306
|
### Technical Details
|
|
266
307
|
- Updated hook: validate-ui-integration.js (16KB bundled)
|
|
267
308
|
- All 10 requirements enforced in shouldBlock() function
|
|
268
309
|
- No configuration options to disable requirements
|
|
269
310
|
- Breaking change for projects relying on soft requirement warnings
|
|
311
|
+
- Fixed scripts: 4 task management scripts with dynamic hook resolution
|
|
270
312
|
|
|
271
313
|
## [Unreleased]
|
|
272
314
|
|
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
|
|
2
|
+
var _0x44463e=_0x4ada;(function(_0xec130b,_0x50e4d4){var _0x2b88a6=_0x4ada,_0x46cba6=_0xec130b();while(!![]){try{var _0x4302d3=-parseInt(_0x2b88a6(0xe0))/0x1+-parseInt(_0x2b88a6(0xd3))/0x2*(-parseInt(_0x2b88a6(0xc7))/0x3)+-parseInt(_0x2b88a6(0xe3))/0x4+-parseInt(_0x2b88a6(0xdb))/0x5+-parseInt(_0x2b88a6(0xdc))/0x6*(parseInt(_0x2b88a6(0xcd))/0x7)+-parseInt(_0x2b88a6(0xdd))/0x8+-parseInt(_0x2b88a6(0xd8))/0x9*(-parseInt(_0x2b88a6(0xdf))/0xa);if(_0x4302d3===_0x50e4d4)break;else _0x46cba6['push'](_0x46cba6['shift']());}catch(_0x189f7a){_0x46cba6['push'](_0x46cba6['shift']());}}}(_0x4b38,0x629a4));var _0x2a8bec=(function(){var _0x3a4e3c=!![];return function(_0x10eb2e,_0x30fa00){var _0x3a140d=_0x3a4e3c?function(){var _0x209df1=_0x4ada;if(_0x30fa00){var _0x152b53=_0x30fa00[_0x209df1(0xde)](_0x10eb2e,arguments);return _0x30fa00=null,_0x152b53;}}:function(){};return _0x3a4e3c=![],_0x3a140d;};}()),_0x3b4698=_0x2a8bec(this,function(){var _0x469e73=_0x4ada,_0x3c5f28={};_0x3c5f28[_0x469e73(0xe6)]=_0x469e73(0xda);var _0x47ac53=_0x3c5f28;return _0x3b4698[_0x469e73(0xc6)]()[_0x469e73(0xcb)](_0x47ac53[_0x469e73(0xe6)])[_0x469e73(0xc6)]()['constructor'](_0x3b4698)[_0x469e73(0xcb)](_0x47ac53[_0x469e73(0xe6)]);});_0x3b4698();function _0x4b38(){var _0x523572=['tool_input','python\x20-m\x20black\x20\x22','search','exit','287QaKuIp','stdio','log','eZfhT','wCeZa','Formatted:\x20','4268hsjjTY','child_process','\x22\x20is\x20not\x20supported','ignore','match','18183321NFSqtH','parse','(((.+)+)+)+$','1913955TfKzjl','26934ovbCAw','5891848goIMdZ','apply','10AcVdmM','433565NbvdAF','file_path','warn','1771932TAYroH','existsSync','npx\x20prettier\x20--version','GZAle','toString','792dyEVkf','Dynamic\x20require\x20of\x20\x22'];_0x4b38=function(){return _0x523572;};return _0x4b38();}var r=(_0x262417=>typeof require<'u'?require:typeof Proxy<'u'?new Proxy(_0x262417,{'get':(_0xc9894,_0x24bd60)=>(typeof require<'u'?require:_0xc9894)[_0x24bd60]}):_0x262417)(function(_0x1db36b){var _0x30d5d5=_0x4ada,_0x49c1ce={'eZfhT':function(_0x50b902,_0x3d45cf){return _0x50b902<_0x3d45cf;},'vUHvS':function(_0xfb21cb,_0xa1cb05){return _0xfb21cb(_0xa1cb05);},'LjxFV':function(_0x112641,_0xe23eb6){return _0x112641+_0xe23eb6;},'wCeZa':_0x30d5d5(0xc8)};if(_0x49c1ce[_0x30d5d5(0xd0)](typeof require,'u'))return require[_0x30d5d5(0xde)](this,arguments);throw _0x49c1ce['vUHvS'](Error,_0x49c1ce['LjxFV'](_0x49c1ce[_0x30d5d5(0xd1)],_0x1db36b)+_0x30d5d5(0xd5));}),{execSync:e}=r(_0x44463e(0xd4)),i=r('fs'),c=process['argv'][0x2]||'{}',a=JSON[_0x44463e(0xd9)](c),t=a[_0x44463e(0xc9)]?.[_0x44463e(0xe1)];(!t||!i[_0x44463e(0xe4)](t))&&process[_0x44463e(0xcc)](0x0);try{if(t[_0x44463e(0xd7)](/\.(ts|tsx|js|jsx|json)$/))try{var _0x207431={};_0x207431[_0x44463e(0xce)]=_0x44463e(0xd6);var _0x2dae03={};_0x2dae03['stdio']=_0x44463e(0xd6),(e(_0x44463e(0xe5),_0x207431),e('npx\x20prettier\x20--write\x20\x22'+t+'\x22',_0x2dae03),console['log'](_0x44463e(0xd2)+t));}catch{}else{if(t[_0x44463e(0xd7)](/\.py$/))try{var _0x56d2a0={};_0x56d2a0['stdio']=_0x44463e(0xd6);var _0x213fd7={};_0x213fd7[_0x44463e(0xce)]=_0x44463e(0xd6),(e('python\x20-m\x20black\x20--version',_0x56d2a0),e(_0x44463e(0xca)+t+'\x22',_0x213fd7),console[_0x44463e(0xcf)](_0x44463e(0xd2)+t));}catch{}}}catch{console[_0x44463e(0xe2)]('Warning:\x20Could\x20not\x20format\x20'+t);}function _0x4ada(_0x20f30c,_0x274eca){_0x20f30c=_0x20f30c-0xc6;var _0x34a68e=_0x4b38();var _0x3b4698=_0x34a68e[_0x20f30c];return _0x3b4698;}process[_0x44463e(0xcc)](0x0);
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
var
|
|
2
|
+
var _0x581323=_0x193b;(function(_0x11ee6a,_0x2b4585){var _0x32ee12=_0x193b,_0x2bacb8=_0x11ee6a();while(!![]){try{var _0x1f94f4=parseInt(_0x32ee12(0x155))/0x1+-parseInt(_0x32ee12(0x170))/0x2*(parseInt(_0x32ee12(0x146))/0x3)+parseInt(_0x32ee12(0x147))/0x4*(parseInt(_0x32ee12(0x161))/0x5)+-parseInt(_0x32ee12(0x13a))/0x6+-parseInt(_0x32ee12(0x14c))/0x7*(-parseInt(_0x32ee12(0x12c))/0x8)+-parseInt(_0x32ee12(0x15b))/0x9*(-parseInt(_0x32ee12(0x15c))/0xa)+-parseInt(_0x32ee12(0x174))/0xb*(-parseInt(_0x32ee12(0x153))/0xc);if(_0x1f94f4===_0x2b4585)break;else _0x2bacb8['push'](_0x2bacb8['shift']());}catch(_0x6e662){_0x2bacb8['push'](_0x2bacb8['shift']());}}}(_0x2ad4,0x639c7));var _0x1cb99a=(function(){var _0x2697b6=_0x193b,_0x341cd8={};_0x341cd8[_0x2697b6(0x17a)]=function(_0x17d659,_0x3ee894){return _0x17d659!==_0x3ee894;},_0x341cd8['sstSE']='LDdYf',_0x341cd8[_0x2697b6(0x16b)]=function(_0x39e42d,_0x422efa){return _0x39e42d!==_0x422efa;},_0x341cd8['iofTp']=_0x2697b6(0x162);var _0x7cf14e=_0x341cd8,_0x345b32=!![];return function(_0x427321,_0x5eb729){var _0x556a9f=_0x2697b6;if(_0x7cf14e[_0x556a9f(0x16b)](_0x7cf14e['iofTp'],_0x7cf14e[_0x556a9f(0x12b)])){var _0x1b86f7=_0x4e8349[_0x556a9f(0x12f)](_0xc8a1e4,arguments);return _0x3e0914=null,_0x1b86f7;}else{var _0x41a635=_0x345b32?function(){var _0x193499=_0x556a9f;if(_0x5eb729){if(_0x7cf14e[_0x193499(0x17a)](_0x7cf14e[_0x193499(0x127)],_0x7cf14e[_0x193499(0x127)])){var _0x3c1eca=_0x3dec05?function(){if(_0x3e46fb){var _0x482db5=_0x3a5b57['apply'](_0x5685b6,arguments);return _0x3d881f=null,_0x482db5;}}:function(){};return _0x43e723=![],_0x3c1eca;}else{var _0x1a61f0=_0x5eb729['apply'](_0x427321,arguments);return _0x5eb729=null,_0x1a61f0;}}}:function(){};return _0x345b32=![],_0x41a635;}};}()),_0x13b14c=_0x1cb99a(this,function(){var _0x27465e=_0x193b,_0x283cd1={};_0x283cd1['RvVep']=_0x27465e(0x13b);var _0xbc117b=_0x283cd1;return _0x13b14c[_0x27465e(0x166)]()[_0x27465e(0x140)](_0xbc117b[_0x27465e(0x137)])[_0x27465e(0x166)]()[_0x27465e(0x179)](_0x13b14c)['search'](_0xbc117b[_0x27465e(0x137)]);});_0x13b14c();var i=(_0x14856d=>typeof require<'u'?require:typeof Proxy<'u'?new Proxy(_0x14856d,{'get':(_0x267d74,_0x1acd04)=>(typeof require<'u'?require:_0x267d74)[_0x1acd04]}):_0x14856d)(function(_0x1a157d){var _0x2a81c9=_0x193b,_0x104f95={'RpaMk':function(_0x4896d0,_0x16dbe3){return _0x4896d0<_0x16dbe3;},'iNnUs':function(_0x162167,_0x4c3fa3){return _0x162167(_0x4c3fa3);},'oVchj':function(_0xe34c4f,_0x5e8c7c){return _0xe34c4f+_0x5e8c7c;},'SWGfo':_0x2a81c9(0x175),'oqIZN':_0x2a81c9(0x142)};if(_0x104f95[_0x2a81c9(0x15e)](typeof require,'u'))return require['apply'](this,arguments);throw _0x104f95[_0x2a81c9(0x148)](Error,_0x104f95[_0x2a81c9(0x171)](_0x104f95[_0x2a81c9(0x171)](_0x104f95[_0x2a81c9(0x16e)],_0x1a157d),_0x104f95[_0x2a81c9(0x158)]));}),n=i('fs'),d=i('path'),a=process[_0x581323(0x136)][0x2];function _0x193b(_0x4ea56c,_0x4709b4){_0x4ea56c=_0x4ea56c-0x121;var _0x385623=_0x2ad4();var _0x13b14c=_0x385623[_0x4ea56c];return _0x13b14c;}a||(console[_0x581323(0x172)]('\x0a❌\x20ERROR:\x20Task\x20ID\x20required'),console['error']('Usage:\x20npm\x20run\x20task:done\x20TASK-001\x0a'),process[_0x581323(0x178)](0x1));var p=_0x581323(0x13d);n[_0x581323(0x169)](p)||(console[_0x581323(0x172)]('\x0a❌\x20ERROR:\x20No\x20active\x20plan\x20found'),console[_0x581323(0x172)](_0x581323(0x167)),process[_0x581323(0x178)](0x1));var u=n[_0x581323(0x16a)](p,_0x581323(0x143))[_0x581323(0x151)](),k=d[_0x581323(0x125)](_0x581323(0x16d),u),r=d['join'](k,'TASK-TRACKER.json'),l=d['join'](k,'tasks',a+'.json');n[_0x581323(0x169)](r)||(console[_0x581323(0x172)]('\x0a❌\x20ERROR:\x20Task\x20tracker\x20not\x20found'),console[_0x581323(0x172)](_0x581323(0x163)+u),console[_0x581323(0x172)](_0x581323(0x14a)),process[_0x581323(0x178)](0x1)),n[_0x581323(0x169)](l)||(console['error'](_0x581323(0x14f)+l+'\x0a'),process[_0x581323(0x178)](0x1));var e=JSON[_0x581323(0x12a)](n[_0x581323(0x16a)](r,_0x581323(0x143))),s=JSON[_0x581323(0x12a)](n[_0x581323(0x16a)](l,_0x581323(0x143))),f=s['status']===_0x581323(0x152);if(f){console[_0x581323(0x15a)](_0x581323(0x157)+a+_0x581323(0x14b)),console[_0x581323(0x15a)](_0x581323(0x16f));let t=e[_0x581323(0x13c)]['find'](_0x2acdf5=>_0x2acdf5['id']===a);t&&t['status']!==_0x581323(0x152)?(t[_0x581323(0x154)]='completed',e[_0x581323(0x14e)]={'totalTasks':e[_0x581323(0x13c)][_0x581323(0x134)],'pending':e['taskFiles']['filter'](_0x5f5cb6=>_0x5f5cb6[_0x581323(0x154)]===_0x581323(0x122))[_0x581323(0x134)],'inProgress':e[_0x581323(0x13c)][_0x581323(0x177)](_0x2af0b3=>_0x2af0b3[_0x581323(0x154)]===_0x581323(0x159))['length'],'completed':e[_0x581323(0x13c)][_0x581323(0x177)](_0x90bec6=>_0x90bec6[_0x581323(0x154)]===_0x581323(0x152))['length'],'blocked':e[_0x581323(0x13c)][_0x581323(0x177)](_0x13c800=>_0x13c800[_0x581323(0x154)]==='blocked')['length']},e[_0x581323(0x12d)]=null,e[_0x581323(0x145)]=new Date()[_0x581323(0x135)](),n[_0x581323(0x173)](r,JSON[_0x581323(0x168)](e,null,0x2)),console[_0x581323(0x15a)](_0x581323(0x138))):console['log']('✅\x20Tracker\x20already\x20synchronized\x0a'),process[_0x581323(0x178)](0x0);}var {execSync:S}=i(_0x581323(0x121));try{var _0x4206db={};_0x4206db[_0x581323(0x14d)]=_0x581323(0x143);let t=S('git\x20status\x20--porcelain',_0x4206db);t[_0x581323(0x151)]()&&(console[_0x581323(0x172)](_0x581323(0x144)),console['error']('\x0aUncommitted\x20files:'),console[_0x581323(0x172)](t),console['error'](_0x581323(0x139)),console[_0x581323(0x172)](_0x581323(0x126)),console['error'](_0x581323(0x156)+a+_0x581323(0x165)),console[_0x581323(0x172)](''),process[_0x581323(0x178)](0x1));}catch{console[_0x581323(0x130)](_0x581323(0x132)),console[_0x581323(0x130)](_0x581323(0x128));}s[_0x581323(0x154)]=_0x581323(0x152),s[_0x581323(0x149)]=new Date()[_0x581323(0x135)]();if(s[_0x581323(0x123)]){let t=new Date(s[_0x581323(0x123)]),o=new Date(s[_0x581323(0x149)]);s['actualHours']=Math['round']((o-t)/(0x3e8*0x3c*0x3c)*0xa)/0xa;}n['writeFileSync'](l,JSON['stringify'](s,null,0x2)),e[_0x581323(0x12d)]=null,e[_0x581323(0x145)]=new Date()[_0x581323(0x135)]();var g=e[_0x581323(0x13c)]['find'](_0x131e4a=>_0x131e4a['id']===a);function _0x2ad4(){var _0x46df88=['3183649VgXdDn','encoding','statistics','\x0a❌\x20ERROR:\x20Task\x20file\x20not\x20found:\x20','totalTasks','trim','completed','240oOdvlE','status','510123KyikJQ','\x20\x20git\x20commit\x20-m\x20\x22[','\x0a✅\x20Task\x20','oqIZN','in_progress','log','74403TVWsfg','110jNJmox','title','RpaMk','h\x20|\x20Variance:\x20','actualHours','495aZCmOE','cNjsq','Plan:\x20','estimatedHours',']\x20Description\x20of\x20changes\x22','toString','Set\x20active\x20plan\x20first:\x20npm\x20run\x20plan:manager\x0a','stringify','existsSync','readFileSync','llVvS','find','.claude/plans','SWGfo','Syncing\x20tracker\x20status...\x0a','2PyxdPF','oVchj','error','writeFileSync','213697QoHVOH','Dynamic\x20require\x20of\x20\x22','blocked','filter','exit','constructor','fyOYc','child_process','pending','startedAt','📋\x20Plan:\x20','join','\x20\x20git\x20add\x20.','sstSE','Make\x20sure\x20all\x20changes\x20are\x20committed!\x0a','\x20\x20Start:\x20npm\x20run\x20task:next\x0a','parse','iofTp','8YywbvZ','activeTask','%)\x0a','apply','warn','📌\x20Next\x20task\x20available:','\x0a⚠️\x20\x20WARNING:\x20Could\x20not\x20check\x20git\x20status','📊\x20Estimated:\x20','length','toISOString','argv','RvVep','✅\x20Tracker\x20synchronized\x0a','\x0aCommit\x20all\x20changes\x20before\x20completing\x20task:','3679596WuMHfC','(((.+)+)+)+$','taskFiles','.claude/ACTIVE-PLAN','toFixed','\x0a✅\x20Completed\x20task:\x20','search','\x0a📈\x20Project\x20progress:\x20','\x22\x20is\x20not\x20supported','utf8','\x0a❌\x20ERROR:\x20You\x20have\x20uncommitted\x20changes','lastUpdated','2438691XTNNsm','15748fPxody','iNnUs','completedAt','Initialize\x20first:\x20npm\x20run\x20plan:init\x0a','\x20is\x20already\x20completed'];_0x2ad4=function(){return _0x46df88;};return _0x2ad4();}g&&(g[_0x581323(0x154)]=_0x581323(0x152)),e[_0x581323(0x14e)]={'totalTasks':e[_0x581323(0x13c)][_0x581323(0x134)],'pending':e[_0x581323(0x13c)][_0x581323(0x177)](_0x1287dc=>_0x1287dc['status']===_0x581323(0x122))[_0x581323(0x134)],'inProgress':e['taskFiles'][_0x581323(0x177)](_0x3b9769=>_0x3b9769[_0x581323(0x154)]==='in_progress')[_0x581323(0x134)],'completed':e[_0x581323(0x13c)]['filter'](_0x4447ec=>_0x4447ec[_0x581323(0x154)]===_0x581323(0x152))['length'],'blocked':e[_0x581323(0x13c)][_0x581323(0x177)](_0x549beb=>_0x549beb['status']===_0x581323(0x176))[_0x581323(0x134)]},n['writeFileSync'](r,JSON[_0x581323(0x168)](e,null,0x2)),console['log'](_0x581323(0x13f)+a),console[_0x581323(0x15a)](_0x581323(0x124)+u+'\x0a'),console[_0x581323(0x15a)]('📌\x20'+s[_0x581323(0x15d)]),s[_0x581323(0x160)]&&console[_0x581323(0x15a)]('⏱️\x20\x20Time\x20taken:\x20'+s[_0x581323(0x160)]+'\x20hours');if(s[_0x581323(0x164)]&&s['actualHours']){let t=((s[_0x581323(0x160)]-s['estimatedHours'])/s[_0x581323(0x164)]*0x64)['toFixed'](0x1);console[_0x581323(0x15a)](_0x581323(0x133)+s[_0x581323(0x164)]+_0x581323(0x15f)+t+'%');}var h=(e[_0x581323(0x14e)][_0x581323(0x152)]/e[_0x581323(0x14e)][_0x581323(0x150)]*0x64)[_0x581323(0x13e)](0x1);console[_0x581323(0x15a)](_0x581323(0x141)+e['statistics'][_0x581323(0x152)]+'/'+e[_0x581323(0x14e)][_0x581323(0x150)]+'\x20tasks\x20('+h+_0x581323(0x12e));var c=e[_0x581323(0x13c)][_0x581323(0x16c)](_0x515a20=>_0x515a20['status']==='pending');c?(console[_0x581323(0x15a)](_0x581323(0x131)),console[_0x581323(0x15a)]('\x20\x20'+c['id']+':\x20'+c[_0x581323(0x15d)]),console[_0x581323(0x15a)](_0x581323(0x129))):e['statistics'][_0x581323(0x152)]===e['statistics'][_0x581323(0x150)]&&console['log']('🎉\x20ALL\x20TASKS\x20COMPLETED!\x20Project\x20finished.\x0a'),process[_0x581323(0x178)](0x0);
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
var
|
|
2
|
+
var _0x530604=_0x34ee;(function(_0x31c42a,_0x255cce){var _0x4137f1=_0x34ee,_0x19041b=_0x31c42a();while(!![]){try{var _0x50bb20=-parseInt(_0x4137f1(0x152))/0x1*(parseInt(_0x4137f1(0x12f))/0x2)+parseInt(_0x4137f1(0x13b))/0x3*(-parseInt(_0x4137f1(0x143))/0x4)+-parseInt(_0x4137f1(0x144))/0x5+-parseInt(_0x4137f1(0x12d))/0x6*(-parseInt(_0x4137f1(0x14e))/0x7)+parseInt(_0x4137f1(0x162))/0x8+parseInt(_0x4137f1(0x156))/0x9+-parseInt(_0x4137f1(0x138))/0xa*(parseInt(_0x4137f1(0x15e))/0xb);if(_0x50bb20===_0x255cce)break;else _0x19041b['push'](_0x19041b['shift']());}catch(_0x5e32cb){_0x19041b['push'](_0x19041b['shift']());}}}(_0x31b2,0x51229));var _0x140090=(function(){var _0x56370e=!![];return function(_0x3f9545,_0x492b2c){var _0x22fa23=_0x56370e?function(){var _0x103f39=_0x34ee;if(_0x492b2c){var _0xe85ebb=_0x492b2c[_0x103f39(0x14f)](_0x3f9545,arguments);return _0x492b2c=null,_0xe85ebb;}}:function(){};return _0x56370e=![],_0x22fa23;};}()),_0x8c9015=_0x140090(this,function(){var _0x31a2cb=_0x34ee,_0x2ae8ee={};_0x2ae8ee['BbyvU']=_0x31a2cb(0x13a);var _0x31000f=_0x2ae8ee;return _0x8c9015[_0x31a2cb(0x15c)]()[_0x31a2cb(0x141)](_0x31000f[_0x31a2cb(0x147)])['toString']()[_0x31a2cb(0x155)](_0x8c9015)[_0x31a2cb(0x141)]('(((.+)+)+)+$');});_0x8c9015();var e=(_0x503e76=>typeof require<'u'?require:typeof Proxy<'u'?new Proxy(_0x503e76,{'get':(_0x4ca568,_0x43e638)=>(typeof require<'u'?require:_0x4ca568)[_0x43e638]}):_0x503e76)(function(_0x4abfa3){var _0x585581=_0x34ee,_0x300dee={'ijaBO':function(_0x4c1b81,_0x28368d){return _0x4c1b81<_0x28368d;},'BFxbw':function(_0x443224,_0x137c83){return _0x443224(_0x137c83);},'NClsF':function(_0x37c345,_0x515002){return _0x37c345+_0x515002;},'dXHKj':_0x585581(0x132),'gWBSY':_0x585581(0x163)};if(_0x300dee[_0x585581(0x140)](typeof require,'u'))return require[_0x585581(0x14f)](this,arguments);throw _0x300dee[_0x585581(0x148)](Error,_0x300dee['NClsF'](_0x300dee[_0x585581(0x160)]+_0x4abfa3,_0x300dee[_0x585581(0x137)]));}),p=e('fs'),h=e(_0x530604(0x13e)),{execSync:l}=e('child_process'),u=process[_0x530604(0x15d)][0x2]||'{}',s=JSON[_0x530604(0x14a)](u),i=s['tool_input']?.['command']||'';i['match'](/migrate|migration/i)||process[_0x530604(0x13c)](0x0);function _0x31b2(){var _0x372a82=['error','(((.+)+)+)+$','3756JhrZYB','exit','length','path','push','ijaBO','search','env','1076HDHtBn','590685vDsdwh','BLOCKED:\x20Cannot\x20run\x20migrations\x20directly\x20in\x20production','Use\x20deployment\x20pipeline\x20to\x20run\x20production\x20migrations','BbyvU','BFxbw','production','parse','Database\x20may\x20be\x20in\x20inconsistent\x20state','Fix\x20migration\x20errors\x20before\x20proceeding','tool_output','1840279DxeJid','apply','Uncommitted\x20migration\x20files\x20detected','NODE_ENV','54PNmYZG','test','git\x20status\x20--short','constructor','4359384RYUmEu','log','\x0a❌\x20MIGRATION\x20WORKFLOW\x20FAILED\x0a','\x20\x20\x20\x20\x202.\x20Verify\x20all\x20tests\x20pass\x20with\x20new\x20schema','BLOCKED:\x20Migration\x20execution\x20failed','\x20\x20\x20\x20\x203.\x20Check\x20for\x20type\x20errors:\x20npm\x20run\x20build','toString','argv','36454nWdWOT','match','dXHKj','\x20\x20Environment:\x20','739208ydfVqe','\x22\x20is\x20not\x20supported','\x20\x20🔙\x20Rolling\x20back\x20migration...\x0a','development','\x20\x20\x20\x20\x204.\x20Test\x20rollback:\x20npm\x20run\x20migrate:down\x20(or\x20equivalent)\x0a','encoding','warn','\x0a⚠️\x20\x20MIGRATION\x20WORKFLOW\x20WARNINGS\x0a','6SLqlWx','forEach','1696PyLzoQ','After\x20migration,\x20run\x20npm\x20test\x20to\x20verify\x20schema\x20compatibility','Manual\x20intervention\x20required','Dynamic\x20require\x20of\x20\x22','\x20\x20⚠️\x20\x20After\x20running\x20migrations,\x20you\x20MUST:\x0a','\x0a🔄\x20MIGRATION\x20WORKFLOW\x20VALIDATION\x0a','\x20\x20✅\x20Migration\x20rollback\x20successful\x0a','Migrations\x20must\x20be\x20tested\x20in\x20development/staging\x20first','gWBSY','20pKzQnK'];_0x31b2=function(){return _0x372a82;};return _0x31b2();}var n=[],t=[],a=s[_0x530604(0x14d)]||'';console['log'](_0x530604(0x134));function _0x34ee(_0x1fd619,_0x255f2e){_0x1fd619=_0x1fd619-0x12d;var _0x23954a=_0x31b2();var _0x8c9015=_0x23954a[_0x1fd619];return _0x8c9015;}try{let o=process[_0x530604(0x142)][_0x530604(0x151)]||_0x530604(0x165);console[_0x530604(0x157)](_0x530604(0x161)+o),o===_0x530604(0x149)&&(n[_0x530604(0x13f)](_0x530604(0x145)),n[_0x530604(0x13f)](_0x530604(0x136)),n[_0x530604(0x13f)](_0x530604(0x146)));}catch{}try{var _0xc71f56={};_0xc71f56[_0x530604(0x167)]='utf8',l(_0x530604(0x154),_0xc71f56)[_0x530604(0x15f)](/migrations?\//)&&(t[_0x530604(0x13f)](_0x530604(0x150)),t[_0x530604(0x13f)]('Commit\x20migrations\x20to\x20version\x20control\x20before\x20running\x20them'));}catch{}var g=[/error/i,/failed/i,/exception/i,/syntax error/i,/constraint/i];for(let o of g)if(o[_0x530604(0x153)](a)){n[_0x530604(0x13f)](_0x530604(0x15a)),n[_0x530604(0x13f)](_0x530604(0x14c)),n[_0x530604(0x13f)]('Check\x20database\x20logs\x20for\x20details');break;}i[_0x530604(0x15f)](/migrate.*up|migration.*run/i)&&(console[_0x530604(0x157)](_0x530604(0x133)),console[_0x530604(0x157)]('\x20\x20\x20\x20\x201.\x20Run:\x20npm\x20test'),console[_0x530604(0x157)](_0x530604(0x159)),console[_0x530604(0x157)](_0x530604(0x15b)),console[_0x530604(0x157)](_0x530604(0x166)),t['push'](_0x530604(0x130))),i[_0x530604(0x15f)](/migrate.*down|migration.*rollback/i)&&(console[_0x530604(0x157)](_0x530604(0x164)),a[_0x530604(0x15f)](/error|failed/i)?(n[_0x530604(0x13f)]('BLOCKED:\x20Migration\x20rollback\x20failed'),n[_0x530604(0x13f)](_0x530604(0x14b)),n[_0x530604(0x13f)](_0x530604(0x131))):console[_0x530604(0x157)](_0x530604(0x135))),n[_0x530604(0x13d)]>0x0&&(console[_0x530604(0x139)](_0x530604(0x158)),n[_0x530604(0x12e)](_0x3d6f7d=>console[_0x530604(0x139)]('\x20\x20'+_0x3d6f7d)),console['error']('\x0a'),process['exit'](0x2)),t['length']>0x0&&(console[_0x530604(0x168)](_0x530604(0x169)),t[_0x530604(0x12e)](_0x113d59=>console[_0x530604(0x168)]('\x20\x20'+_0x113d59)),console[_0x530604(0x168)]('\x0a')),process[_0x530604(0x13c)](0x0);
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
const
|
|
2
|
+
const _0x36e287=_0x2494;(function(_0xc880d4,_0x539d82){const _0x4ba0bb=_0x2494,_0x303304=_0xc880d4();while(!![]){try{const _0x596c2d=parseInt(_0x4ba0bb(0xf7))/0x1*(parseInt(_0x4ba0bb(0xb3))/0x2)+parseInt(_0x4ba0bb(0xdb))/0x3+parseInt(_0x4ba0bb(0x103))/0x4+-parseInt(_0x4ba0bb(0xba))/0x5*(-parseInt(_0x4ba0bb(0xfe))/0x6)+parseInt(_0x4ba0bb(0xb7))/0x7*(-parseInt(_0x4ba0bb(0x104))/0x8)+parseInt(_0x4ba0bb(0xc7))/0x9+-parseInt(_0x4ba0bb(0xef))/0xa;if(_0x596c2d===_0x539d82)break;else _0x303304['push'](_0x303304['shift']());}catch(_0x55cacb){_0x303304['push'](_0x303304['shift']());}}}(_0x43c2,0xcabe3));const _0x50c0cf=(function(){const _0x24bdc9=_0x2494,_0x4f5c35={};_0x4f5c35[_0x24bdc9(0xc3)]=_0x24bdc9(0xc0),_0x4f5c35[_0x24bdc9(0xcd)]=_0x24bdc9(0xbc),_0x4f5c35['ejTMD']=function(_0x1f1d4b,_0x20cb2e){return _0x1f1d4b!==_0x20cb2e;},_0x4f5c35[_0x24bdc9(0xfc)]=function(_0x4bf914,_0x433aed){return _0x4bf914===_0x433aed;};const _0x229786=_0x4f5c35;let _0x3c520b=!![];return function(_0x204931,_0x444da4){const _0x5caa5c=_0x24bdc9,_0x59c0c1={'JWckG':_0x229786[_0x5caa5c(0xc3)],'hyMJA':_0x229786[_0x5caa5c(0xcd)],'fqsvy':_0x5caa5c(0xb2),'aCevt':'tasks','UlOXQ':function(_0x53fe56,_0x20a001){return _0x229786['ejTMD'](_0x53fe56,_0x20a001);},'vCQFS':_0x5caa5c(0x101),'svhUw':function(_0x3e8c08,_0x58f523){const _0xff5cfa=_0x5caa5c;return _0x229786[_0xff5cfa(0xfc)](_0x3e8c08,_0x58f523);}},_0x4a2822=_0x3c520b?function(){const _0x3d6d22=_0x5caa5c,_0x4cb09c={'xglpL':_0x59c0c1[_0x3d6d22(0xfb)],'CBIhs':_0x59c0c1['hyMJA'],'UCwqY':_0x3d6d22(0xc2),'Hdqev':_0x59c0c1[_0x3d6d22(0xe4)],'MODTm':_0x59c0c1[_0x3d6d22(0xc6)],'pQumg':function(_0x289413,_0x3d2fa3){const _0x430beb=_0x3d6d22;return _0x59c0c1[_0x430beb(0xdf)](_0x289413,_0x3d2fa3);},'kgheU':_0x59c0c1[_0x3d6d22(0xe9)],'lGarQ':_0x3d6d22(0xe8),'ssRBu':_0x3d6d22(0xc9)};if(_0x444da4){if(_0x59c0c1[_0x3d6d22(0xb6)]('xJpuc',_0x3d6d22(0xb0))){let _0x38ae16=_0x1c1c0e['parse'](_0x1fcd70[_0x3d6d22(0xd3)](_0x452f1b,_0x4cb09c[_0x3d6d22(0xf1)]));if(!_0x38ae16['activeTask'])_0x10a7a8[_0x3d6d22(0xf6)](_0x4cb09c[_0x3d6d22(0xed)]),_0x428228[_0x3d6d22(0xf6)](_0x3d6d22(0xb5)+_0x18ca9e),_0x274603[_0x3d6d22(0xf6)](_0x3d6d22(0xcb)+_0x29ebe1['basename'](_0x5f1cfc)),_0x47edbe[_0x3d6d22(0xf6)](_0x4cb09c[_0x3d6d22(0x102)]),_0x21fdb6[_0x3d6d22(0xf6)](_0x4cb09c[_0x3d6d22(0xd8)]);else{let _0x4a01e5=_0x5beb11[_0x3d6d22(0xff)](_0x4353cf,_0x4cb09c[_0x3d6d22(0xce)],_0x38ae16[_0x3d6d22(0xe7)]+'.json');if(_0x59c96a[_0x3d6d22(0xcc)](_0x4a01e5)){let _0x570000=_0x51671f['parse'](_0x2f7fba[_0x3d6d22(0xd3)](_0x4a01e5,_0x4cb09c[_0x3d6d22(0xf1)]));_0x4cb09c[_0x3d6d22(0xd2)](_0x570000[_0x3d6d22(0xf9)],_0x4cb09c[_0x3d6d22(0xfd)])&&(_0x1cd1c7['push'](_0x4cb09c[_0x3d6d22(0xde)]),_0x36f846[_0x3d6d22(0xf6)](_0x3d6d22(0xb5)+_0x3572dc),_0x44576d['push'](_0x3d6d22(0xdd)+_0x38ae16[_0x3d6d22(0xe7)]+'\x20['+_0x570000[_0x3d6d22(0xf9)]+']'),_0x51b8f7[_0x3d6d22(0xf6)](_0x4cb09c['ssRBu']),_0x16767e[_0x3d6d22(0xf6)](_0x3d6d22(0xe6)+_0x38ae16['activeTask']));}}}else{const _0x109c15=_0x444da4[_0x3d6d22(0xca)](_0x204931,arguments);return _0x444da4=null,_0x109c15;}}}:function(){};return _0x3c520b=![],_0x4a2822;};}()),_0x21a0c3=_0x50c0cf(this,function(){const _0x2e5d0e=_0x2494,_0x5e711d={};_0x5e711d[_0x2e5d0e(0xd0)]='(((.+)+)+)+$';const _0x2a6653=_0x5e711d;return _0x21a0c3['toString']()[_0x2e5d0e(0xd5)](_0x2a6653['JKbbi'])['toString']()[_0x2e5d0e(0xc5)](_0x21a0c3)['search'](_0x2a6653[_0x2e5d0e(0xd0)]);});_0x21a0c3();var h=(_0x3bce4a=>typeof require<'u'?require:typeof Proxy<'u'?new Proxy(_0x3bce4a,{'get':(_0x428caf,_0x2a882)=>(typeof require<'u'?require:_0x428caf)[_0x2a882]}):_0x3bce4a)(function(_0xcfd96){const _0x47eea7=_0x2494,_0x201142={'kcVHS':function(_0x541f51,_0x3d4778){return _0x541f51<_0x3d4778;},'AqauO':function(_0x4ea730,_0x46d4e3){return _0x4ea730(_0x46d4e3);},'kUnvy':function(_0x24ee90,_0x57494d){return _0x24ee90+_0x57494d;},'haFyr':function(_0x516883,_0x340108){return _0x516883+_0x340108;},'DCsHs':_0x47eea7(0x100)};if(_0x201142[_0x47eea7(0xf0)](typeof require,'u'))return require['apply'](this,arguments);throw _0x201142[_0x47eea7(0xd1)](Error,_0x201142[_0x47eea7(0xfa)](_0x201142[_0x47eea7(0xdc)](_0x201142['DCsHs'],_0xcfd96),_0x47eea7(0xf3)));}),a=h('fs'),e=h(_0x36e287(0xea)),E=process['argv'][0x2]||'{}',m=JSON['parse'](E),t=m[_0x36e287(0xeb)]?.[_0x36e287(0xc4)],i=m[_0x36e287(0xbe)],s=[],f=[],k=_0x36e287(0xf8),c=null,o=null;a['existsSync'](k)&&(c=a[_0x36e287(0xd3)](k,_0x36e287(0xc0))[_0x36e287(0xe0)](),o=e[_0x36e287(0xff)](_0x36e287(0xe3),c)),t&&t[_0x36e287(0xc1)](_0x36e287(0xb1))&&i===_0x36e287(0xb8)&&o&&a[_0x36e287(0xcc)](e['join'](o,_0x36e287(0xee)))&&(s[_0x36e287(0xf6)](_0x36e287(0xda)),s[_0x36e287(0xf6)](_0x36e287(0xb9)+e[_0x36e287(0xd4)](t)),s[_0x36e287(0xf6)](_0x36e287(0xd9)),s[_0x36e287(0xf6)](_0x36e287(0xf2)));function _0x43c2(){const _0x30a83e=['11418489MxSjJi','Use\x20task\x20management\x20commands:','Start\x20the\x20task:','apply','Modifying:\x20','existsSync','iQxxd','MODTm','match','JKbbi','AqauO','pQumg','readFileSync','basename','search','forEach','warn','Hdqev','To\x20make\x20changes,\x20use\x20the\x20amendment\x20tool:','BLOCKED:\x20Project\x20plan\x20is\x20LOCKED\x20and\x20immutable','565458DFNuvJ','haFyr','Task:\x20','lGarQ','UlOXQ','trim','.json','Write','.claude/plans','fqsvy','BLOCKED:\x20No\x20active\x20plan\x20found','\x20\x20npm\x20run\x20task:start\x20','activeTask','BLOCKED:\x20Active\x20task\x20is\x20not\x20in_progress\x20state','vCQFS','path','tool_input','error','CBIhs','.plan-locked','19730930hSFdMs','kcVHS','xglpL','\x20\x20npm\x20run\x20plan:amend','\x22\x20is\x20not\x20supported','exit','parse','push','165howgmT','.claude/ACTIVE-PLAN','status','kUnvy','JWckG','TXDTQ','kgheU','5652qUmhpb','join','Dynamic\x20require\x20of\x20\x22','in_progress','UCwqY','1764136jJwclx','33376KbVRGo','length','\x0a⚠️\x20\x20STRUCTURED\x20DEVELOPMENT\x20WARNINGS\x0a','HSDpI','PROJECT-PLAN.json','\x20\x20npm\x20run\x20task:start\x20TASK-XXX','2170WdkOCf','tasks','Plan:\x20','svhUw','490PkQfZR','Edit','File:\x20','5405PEMfWI','TASK-TRACKER.json','BLOCKED:\x20No\x20active\x20task','\x20\x20npm\x20run\x20task:done\x20TASK-XXX','tool','\x0a❌\x20STRUCTURED\x20DEVELOPMENT\x20ENFORCEMENT\x20FAILED\x0a','utf8','includes','Start\x20a\x20task\x20first:','ZOZHM','file_path','constructor','aCevt'];_0x43c2=function(){return _0x30a83e;};return _0x43c2();}function _0x2494(_0x194805,_0x5ee5df){_0x194805=_0x194805-0xae;const _0x3baf34=_0x43c2();let _0x21a0c3=_0x3baf34[_0x194805];return _0x21a0c3;}if(c&&o){let n=e[_0x36e287(0xff)](o,_0x36e287(0xbb)),l=e[_0x36e287(0xff)](o,_0x36e287(0xee));if(a['existsSync'](l)&&!a[_0x36e287(0xcc)](n)&&(s[_0x36e287(0xf6)]('BLOCKED:\x20Project\x20plan\x20is\x20locked\x20but\x20task\x20tracker\x20is\x20missing'),s[_0x36e287(0xf6)](_0x36e287(0xb5)+c),s[_0x36e287(0xf6)]('Initialize\x20task\x20tracker\x20first:'),s[_0x36e287(0xf6)]('\x20\x20npm\x20run\x20plan:init')),t&&(t[_0x36e287(0xcf)](/^\.\/Agent\//)||t[_0x36e287(0xcf)](/^Agent\//))&&(i==='Write'||i===_0x36e287(0xb8))&&a[_0x36e287(0xcc)](n)){let r=JSON['parse'](a[_0x36e287(0xd3)](n,_0x36e287(0xc0)));if(!r[_0x36e287(0xe7)])s[_0x36e287(0xf6)](_0x36e287(0xbc)),s[_0x36e287(0xf6)](_0x36e287(0xb5)+c),s['push']('Modifying:\x20'+e[_0x36e287(0xd4)](t)),s[_0x36e287(0xf6)](_0x36e287(0xc2)),s['push'](_0x36e287(0xb2));else{let p=e[_0x36e287(0xff)](o,_0x36e287(0xb4),r[_0x36e287(0xe7)]+_0x36e287(0xe1));if(a['existsSync'](p)){let u=JSON[_0x36e287(0xf5)](a[_0x36e287(0xd3)](p,_0x36e287(0xc0)));u[_0x36e287(0xf9)]!=='in_progress'&&(s[_0x36e287(0xf6)]('BLOCKED:\x20Active\x20task\x20is\x20not\x20in_progress\x20state'),s[_0x36e287(0xf6)](_0x36e287(0xb5)+c),s['push'](_0x36e287(0xdd)+r[_0x36e287(0xe7)]+'\x20['+u[_0x36e287(0xf9)]+']'),s[_0x36e287(0xf6)](_0x36e287(0xc9)),s[_0x36e287(0xf6)](_0x36e287(0xe6)+r[_0x36e287(0xe7)]));}}}t&&t[_0x36e287(0xcf)](/\.claude\/plans\/[^/]+\/tasks\/TASK-\d{3}\.json$/)&&(i==='Edit'||i===_0x36e287(0xe2))&&(s[_0x36e287(0xf6)]('BLOCKED:\x20Task\x20files\x20are\x20read-only'),s[_0x36e287(0xf6)](_0x36e287(0xb9)+e[_0x36e287(0xd4)](t)),s[_0x36e287(0xf6)](_0x36e287(0xc8)),s[_0x36e287(0xf6)](_0x36e287(0xb2)),s[_0x36e287(0xf6)](_0x36e287(0xbd)));}else t&&(t[_0x36e287(0xcf)](/^\.\/Agent\//)||t[_0x36e287(0xcf)](/^Agent\//))&&(i===_0x36e287(0xe2)||i==='Edit')&&(s[_0x36e287(0xf6)](_0x36e287(0xe5)),s[_0x36e287(0xf6)]('Modifying:\x20'+e[_0x36e287(0xd4)](t)),s['push']('Set\x20active\x20plan\x20first:'),s[_0x36e287(0xf6)]('\x20\x20npm\x20run\x20plan:manager'));s[_0x36e287(0xae)]>0x0&&(console[_0x36e287(0xec)](_0x36e287(0xbf)),s[_0x36e287(0xd6)](_0x6a339c=>console[_0x36e287(0xec)]('\x20\x20'+_0x6a339c)),console[_0x36e287(0xec)]('\x0a'),process[_0x36e287(0xf4)](0x2)),f[_0x36e287(0xae)]>0x0&&(console[_0x36e287(0xd7)](_0x36e287(0xaf)),f['forEach'](_0x5af1fb=>console['warn']('\x20\x20'+_0x5af1fb)),console[_0x36e287(0xd7)]('\x0a')),process[_0x36e287(0xf4)](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
|
+
function _0x56eb(){const _0x553e3a=['utf8','rszyj','CUHUS','split','\x20component\x20tests','pipe','filter','RXZHO','(((.+)+)+)+$','RraaF','log','Unit/Component\x20tests\x20should\x20be\x2060-80%\x20of\x20total,\x20currently\x20','length','Add\x20more\x20unit\x20and\x20component\x20tests','MYnnZ','forEach','PVhRv','4590erLPKg','JNrLE','814112GiQdUx','push','dmSnx','\x0a❌\x20TEST\x20PYRAMID\x20VALIDATION\x20FAILED\x0a','ggKgy','Dynamic\x20require\x20of\x20\x22','trim','PYAak','60mpHhdX','2955435vzkEWZ','search','\x20\x20E2E\x20Tests:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','\x0a⚠️\x20\x20TEST\x20PYRAMID\x20WARNINGS\x0a','WARNING:\x20Inverted\x20test\x20pyramid\x20detected','nyOJA','WARNING:\x20Too\x20many\x20E2E\x20tests\x20(>30%\x20of\x20total)','toString','tOqJG','10Hklsib','encoding','1421799JRxhZM','14832603tblXKq','Create\x20tests\x20before\x20claiming\x20functionality\x20works','warn','UI\x20bugs\x20are\x20not\x20caught\x20by\x20API-only\x20tests!','Component\x20test\x20coverage:\x20','exit','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','gaDes','apply','3711336cTICLR','\x0a📊\x20TEST\x20PYRAMID\x20ANALYSIS\x0a','toFixed','FDLvV','Every\x20UI\x20component\x20should\x20have\x20component\x20tests','readFileSync','WARNING:\x20','YbCrg','dqPVS','JIRir','\x20\x20Integration\x20Tests:\x20\x20\x20\x20','error','match','existsSync','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','\x20\x20Unit/Component\x20Tests:\x20','FDcqk','LoniX','lCRzu','stdio','CZuxx','path','WARNING:\x20Only\x20backend\x20unit\x20tests\x20found,\x20NO\x20UI\x20component\x20tests','BLOCKED:\x20No\x20tests\x20found\x20in\x20the\x20project','ignore','constructor','1259352CBTVGK'];_0x56eb=function(){return _0x553e3a;};return _0x56eb();}const _0x2a40c0=_0x1f01;(function(_0x544f61,_0x22ff52){const _0x3c023d=_0x1f01,_0x916372=_0x544f61();while(!![]){try{const _0x4d564d=-parseInt(_0x3c023d(0x171))/0x1*(-parseInt(_0x3c023d(0x167))/0x2)+-parseInt(_0x3c023d(0x17d))/0x3+parseInt(_0x3c023d(0x155))/0x4*(-parseInt(_0x3c023d(0x17b))/0x5)+-parseInt(_0x3c023d(0x187))/0x6+parseInt(_0x3c023d(0x172))/0x7+-parseInt(_0x3c023d(0x169))/0x8+parseInt(_0x3c023d(0x17e))/0x9;if(_0x4d564d===_0x22ff52)break;else _0x916372['push'](_0x916372['shift']());}catch(_0x40f299){_0x916372['push'](_0x916372['shift']());}}}(_0x56eb,0x5dc2b));const _0x5e9c15=(function(){const _0x17fb8d=_0x1f01,_0x5ea36f={};_0x5ea36f[_0x17fb8d(0x166)]=function(_0x3e4784,_0x4c003e){return _0x3e4784+_0x4c003e;},_0x5ea36f[_0x17fb8d(0x15f)]=function(_0x6afc1e,_0x1ac696){return _0x6afc1e+_0x1ac696;},_0x5ea36f[_0x17fb8d(0x197)]=_0x17fb8d(0x16e),_0x5ea36f['NoecD']='\x22\x20is\x20not\x20supported',_0x5ea36f[_0x17fb8d(0x190)]=function(_0x3a5010,_0x4f8dc9){return _0x3a5010!==_0x4f8dc9;},_0x5ea36f[_0x17fb8d(0x18f)]=_0x17fb8d(0x164),_0x5ea36f[_0x17fb8d(0x18a)]=function(_0xed11b2,_0xb0f86e){return _0xed11b2===_0xb0f86e;},_0x5ea36f[_0x17fb8d(0x199)]=_0x17fb8d(0x17a),_0x5ea36f[_0x17fb8d(0x15d)]=_0x17fb8d(0x16d);const _0x9fb931=_0x5ea36f;let _0x1410ad=!![];return function(_0x5b4dc7,_0xb00ffd){const _0x4fd3bd=_0x17fb8d,_0x6dc933={};_0x6dc933[_0x4fd3bd(0x198)]='(((.+)+)+)+$';const _0x4b55ef=_0x6dc933;if(_0x9fb931['FDLvV'](_0x9fb931[_0x4fd3bd(0x199)],_0x9fb931[_0x4fd3bd(0x15d)]))return _0x6e9a2b[_0x4fd3bd(0x179)]()[_0x4fd3bd(0x173)]('(((.+)+)+)+$')[_0x4fd3bd(0x179)]()[_0x4fd3bd(0x154)](_0x2d23d0)[_0x4fd3bd(0x173)](_0x4b55ef[_0x4fd3bd(0x198)]);else{const _0x36e756=_0x1410ad?function(){const _0x1249d6=_0x4fd3bd,_0x4b65e1={'gaDes':function(_0x5a9fd2,_0x5a1667){return _0x5a9fd2<_0x5a1667;},'PYAak':function(_0x51e82a,_0x53b528){return _0x51e82a(_0x53b528);},'wpxSt':function(_0x2fce5c,_0x497001){const _0x26ad4b=_0x1f01;return _0x9fb931[_0x26ad4b(0x166)](_0x2fce5c,_0x497001);},'nyOJA':function(_0x320d87,_0x35d2ee){const _0x5b4a88=_0x1f01;return _0x9fb931[_0x5b4a88(0x15f)](_0x320d87,_0x35d2ee);},'xeokt':_0x9fb931[_0x1249d6(0x197)],'JNrLE':_0x9fb931['NoecD']};if(_0xb00ffd){if(_0x9fb931[_0x1249d6(0x190)](_0x9fb931[_0x1249d6(0x18f)],_0x1249d6(0x164))){if(_0x4b65e1[_0x1249d6(0x185)](typeof _0x31f3c6,'u'))return _0x16ce69[_0x1249d6(0x186)](this,arguments);throw _0x4b65e1[_0x1249d6(0x170)](_0x310868,_0x4b65e1['wpxSt'](_0x4b65e1[_0x1249d6(0x177)](_0x4b65e1['xeokt'],_0x2fa764),_0x4b65e1[_0x1249d6(0x168)]));}else{const _0x20dcb9=_0xb00ffd[_0x1249d6(0x186)](_0x5b4dc7,arguments);return _0xb00ffd=null,_0x20dcb9;}}}:function(){};return _0x1410ad=![],_0x36e756;}};}()),_0x2a8289=_0x5e9c15(this,function(){const _0x7bdcf6=_0x1f01,_0x662f26={};_0x662f26[_0x7bdcf6(0x18e)]=_0x7bdcf6(0x15e);const _0x734a8a=_0x662f26;return _0x2a8289[_0x7bdcf6(0x179)]()[_0x7bdcf6(0x173)](_0x734a8a['YbCrg'])['toString']()[_0x7bdcf6(0x154)](_0x2a8289)[_0x7bdcf6(0x173)](_0x734a8a[_0x7bdcf6(0x18e)]);});function _0x1f01(_0x3fc4ee,_0x5b517b){_0x3fc4ee=_0x3fc4ee-0x150;const _0x428caa=_0x56eb();let _0x2a8289=_0x428caa[_0x3fc4ee];return _0x2a8289;}_0x2a8289();var g=(_0x1317e1=>typeof require<'u'?require:typeof Proxy<'u'?new Proxy(_0x1317e1,{'get':(_0x2c44de,_0x33dfb9)=>(typeof require<'u'?require:_0x2c44de)[_0x33dfb9]}):_0x1317e1)(function(_0x48c1bd){const _0x40900f=_0x1f01,_0x4c40a2={'CUHUS':function(_0x97f9c5,_0x1cee3e){return _0x97f9c5<_0x1cee3e;},'CZuxx':function(_0xdd7de3,_0x46f892){return _0xdd7de3(_0x46f892);},'dmSnx':_0x40900f(0x16e),'rszyj':'\x22\x20is\x20not\x20supported'};if(_0x4c40a2[_0x40900f(0x158)](typeof require,'u'))return require['apply'](this,arguments);throw _0x4c40a2[_0x40900f(0x19b)](Error,_0x4c40a2[_0x40900f(0x16b)]+_0x48c1bd+_0x4c40a2[_0x40900f(0x157)]);}),c=g('fs'),E=g(_0x2a40c0(0x150)),{execSync:f}=g('child_process'),h=process['argv'][0x2]||'{}',I=JSON['parse'](h),T=I['tool_input']?.['command']||'';T[_0x2a40c0(0x193)](/npm\s+(run\s+)?test|jest|vitest/)||process['exit'](0x0);var d=[],t=[],r=0x0,m=0x0,p=0x0,i=0x0;try{const _0x33d6ec={};_0x33d6ec[_0x2a40c0(0x17c)]=_0x2a40c0(0x156),_0x33d6ec['stdio']=['pipe','pipe',_0x2a40c0(0x153)];let e=f(_0x2a40c0(0x184),_0x33d6ec)[_0x2a40c0(0x16f)]()[_0x2a40c0(0x159)]('\x0a')['filter'](Boolean);for(let n of e)if(c[_0x2a40c0(0x194)](n)){let o=c[_0x2a40c0(0x18c)](n,_0x2a40c0(0x156)),u=(o[_0x2a40c0(0x193)](/\b(it|test)\s*\(/g)||[])['length'];o[_0x2a40c0(0x193)](/render\(|mount\(|screen\.|fireEvent\./)?i+=u:r+=u;}const _0x4c6382={};_0x4c6382[_0x2a40c0(0x17c)]=_0x2a40c0(0x156),_0x4c6382[_0x2a40c0(0x19a)]=['pipe','pipe',_0x2a40c0(0x153)];let l=f('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',_0x4c6382)[_0x2a40c0(0x16f)]()[_0x2a40c0(0x159)]('\x0a')[_0x2a40c0(0x15c)](Boolean);for(let n of l)if(c[_0x2a40c0(0x194)](n)){let o=c[_0x2a40c0(0x18c)](n,'utf8');m+=(o[_0x2a40c0(0x193)](/\b(it|test)\s*\(/g)||[])[_0x2a40c0(0x162)];}const _0x1c5202={};_0x1c5202[_0x2a40c0(0x17c)]=_0x2a40c0(0x156),_0x1c5202['stdio']=[_0x2a40c0(0x15b),'pipe',_0x2a40c0(0x153)];let a=f(_0x2a40c0(0x195),_0x1c5202)[_0x2a40c0(0x16f)]()[_0x2a40c0(0x159)]('\x0a')[_0x2a40c0(0x15c)](Boolean);for(let n of a)if(c[_0x2a40c0(0x194)](n)){let o=c['readFileSync'](n,'utf8');p+=(o['match'](/\b(it|test)\s*\(/g)||[])[_0x2a40c0(0x162)];}}catch{process['exit'](0x0);}var s=r+m+p+i;s===0x0&&(d[_0x2a40c0(0x16a)](_0x2a40c0(0x152)),d[_0x2a40c0(0x16a)](_0x2a40c0(0x17f)));if(s>0x0){let e=(r+i)/s*0x64,l=m/s*0x64,a=p/s*0x64;console[_0x2a40c0(0x160)](_0x2a40c0(0x188)),console[_0x2a40c0(0x160)](_0x2a40c0(0x196)+(r+i)+'\x20('+e['toFixed'](0x1)+'%)'),console[_0x2a40c0(0x160)](_0x2a40c0(0x191)+m+'\x20('+l[_0x2a40c0(0x189)](0x1)+'%)'),console[_0x2a40c0(0x160)](_0x2a40c0(0x174)+p+'\x20('+a[_0x2a40c0(0x189)](0x1)+'%)'),console[_0x2a40c0(0x160)]('\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[_0x2a40c0(0x16a)](_0x2a40c0(0x151)),t[_0x2a40c0(0x16a)]('Add\x20component\x20tests\x20for\x20React/Vue/etc.\x20components'),t[_0x2a40c0(0x16a)](_0x2a40c0(0x181))),r+i<s*0.5&&(t[_0x2a40c0(0x16a)](_0x2a40c0(0x176)),t[_0x2a40c0(0x16a)](_0x2a40c0(0x161)+e[_0x2a40c0(0x189)](0x1)+'%'),t['push'](_0x2a40c0(0x163))),p>s*0.3&&(t[_0x2a40c0(0x16a)](_0x2a40c0(0x178)),t[_0x2a40c0(0x16a)]('E2E\x20tests\x20are\x20slow\x20and\x20brittle,\x20use\x20integration\x20tests\x20instead'));try{const _0x229208={};_0x229208[_0x2a40c0(0x17c)]='utf8',_0x229208[_0x2a40c0(0x19a)]=['pipe','pipe',_0x2a40c0(0x153)];let n=f('find\x20./src\x20-name\x20\x22*.tsx\x22\x20-o\x20-name\x20\x22*.jsx\x22\x202>/dev/null\x20|\x20wc\x20-l',_0x229208)[_0x2a40c0(0x16f)](),o=parseInt(n)||0x0;if(o>0x0){let u=i/o;u<0.5&&(t[_0x2a40c0(0x16a)](_0x2a40c0(0x18d)+o+'\x20UI\x20components\x20but\x20only\x20'+i+_0x2a40c0(0x15a)),t[_0x2a40c0(0x16a)](_0x2a40c0(0x182)+(u*0x64)[_0x2a40c0(0x189)](0x1)+'%'),t[_0x2a40c0(0x16a)]('CRITICAL:\x20UI\x20bugs\x20are\x20slipping\x20through!'),t[_0x2a40c0(0x16a)](_0x2a40c0(0x18b))),p===0x0&&o>0x5&&(t[_0x2a40c0(0x16a)]('WARNING:\x20Multiple\x20UI\x20components\x20but\x20NO\x20E2E\x20integration\x20tests'),t[_0x2a40c0(0x16a)]('Add\x20E2E\x20tests\x20to\x20validate\x20complete\x20user\x20flows'));}}catch{}}d[_0x2a40c0(0x162)]>0x0&&(console[_0x2a40c0(0x192)](_0x2a40c0(0x16c)),d[_0x2a40c0(0x165)](_0x29c0b0=>console[_0x2a40c0(0x192)]('\x20\x20'+_0x29c0b0)),console['error']('\x0a'),process[_0x2a40c0(0x183)](0x2)),t[_0x2a40c0(0x162)]>0x0&&(console[_0x2a40c0(0x180)](_0x2a40c0(0x175)),t['forEach'](_0x2d39c7=>console['warn']('\x20\x20'+_0x2d39c7)),console[_0x2a40c0(0x180)]('\x0a')),process[_0x2a40c0(0x183)](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 _0x43b2dc=_0x2ad5;(function(_0xbeb05f,_0x39721c){var _0x101b15=_0x2ad5,_0x20bbfa=_0xbeb05f();while(!![]){try{var _0x579131=parseInt(_0x101b15(0x1da))/0x1+parseInt(_0x101b15(0x208))/0x2*(parseInt(_0x101b15(0x239))/0x3)+-parseInt(_0x101b15(0x21d))/0x4+parseInt(_0x101b15(0x240))/0x5*(parseInt(_0x101b15(0x21e))/0x6)+-parseInt(_0x101b15(0x1d4))/0x7+parseInt(_0x101b15(0x236))/0x8+-parseInt(_0x101b15(0x233))/0x9;if(_0x579131===_0x39721c)break;else _0x20bbfa['push'](_0x20bbfa['shift']());}catch(_0x47344a){_0x20bbfa['push'](_0x20bbfa['shift']());}}}(_0x72c3,0x3d7e9));var _0xa8739c=(function(){var _0x3f61a4=_0x2ad5,_0x47d4be={};_0x47d4be[_0x3f61a4(0x22c)]=_0x3f61a4(0x22d),_0x47d4be[_0x3f61a4(0x21f)]=function(_0x2a03eb,_0x30e549){return _0x2a03eb!==_0x30e549;},_0x47d4be['WatUW']=_0x3f61a4(0x228);var _0x114f8d=_0x47d4be,_0x5833b3=!![];return function(_0x2d796e,_0x1493e0){var _0x13f6d4=_0x3f61a4,_0x3bee50={'evLGF':_0x114f8d[_0x13f6d4(0x22c)],'GwaYm':function(_0x23e13b,_0x223bbc){var _0x14cc3c=_0x13f6d4;return _0x114f8d[_0x14cc3c(0x21f)](_0x23e13b,_0x223bbc);},'VeqoX':_0x114f8d['WatUW']},_0x4b8b6b=_0x5833b3?function(){var _0x3f4d7a=_0x13f6d4;if(_0x1493e0){if(_0x3bee50[_0x3f4d7a(0x1fd)](_0x3bee50['VeqoX'],_0x3bee50['VeqoX']))return _0x4b14cd[_0x3f4d7a(0x219)]()['search'](_0x3bee50[_0x3f4d7a(0x1eb)])[_0x3f4d7a(0x219)]()['constructor'](_0x451b80)[_0x3f4d7a(0x1e3)](_0x3f4d7a(0x22d));else{var _0x379dca=_0x1493e0[_0x3f4d7a(0x232)](_0x2d796e,arguments);return _0x1493e0=null,_0x379dca;}}}:function(){};return _0x5833b3=![],_0x4b8b6b;};}()),_0x42c8b6=_0xa8739c(this,function(){var _0x323e54=_0x2ad5,_0x25628c={};_0x25628c['QkEJe']=_0x323e54(0x22d);var _0x4c98ac=_0x25628c;return _0x42c8b6[_0x323e54(0x219)]()[_0x323e54(0x1e3)](_0x4c98ac[_0x323e54(0x1f4)])[_0x323e54(0x219)]()[_0x323e54(0x227)](_0x42c8b6)[_0x323e54(0x1e3)](_0x4c98ac[_0x323e54(0x1f4)]);});function _0x2ad5(_0xdaa9d6,_0x4381db){_0xdaa9d6=_0xdaa9d6-0x1d1;var _0x5b2c75=_0x72c3();var _0x42c8b6=_0x5b2c75[_0xdaa9d6];return _0x42c8b6;}_0x42c8b6();var u=(_0x5167e1=>typeof require<'u'?require:typeof Proxy<'u'?new Proxy(_0x5167e1,{'get':(_0x505a71,_0x47e06b)=>(typeof require<'u'?require:_0x505a71)[_0x47e06b]}):_0x5167e1)(function(_0x3cc765){var _0x454d2e=_0x2ad5,_0x3937b7={'Iptgn':function(_0x3d12dc,_0x1d081e){return _0x3d12dc<_0x1d081e;},'wtqWF':function(_0x102603,_0x20a8b9){return _0x102603(_0x20a8b9);},'MhVvu':function(_0x128e7f,_0x2196c7){return _0x128e7f+_0x2196c7;},'YmRrh':function(_0x51bf4d,_0x835a24){return _0x51bf4d+_0x835a24;},'AIMnu':'Dynamic\x20require\x20of\x20\x22','GRxZo':_0x454d2e(0x209)};if(_0x3937b7[_0x454d2e(0x1e5)](typeof require,'u'))return require['apply'](this,arguments);throw _0x3937b7[_0x454d2e(0x1f6)](Error,_0x3937b7['MhVvu'](_0x3937b7[_0x454d2e(0x238)](_0x3937b7['AIMnu'],_0x3cc765),_0x3937b7[_0x454d2e(0x23e)]));}),t=u('fs'),i=u(_0x43b2dc(0x1f3));console[_0x43b2dc(0x216)](_0x43b2dc(0x203));function _0x72c3(){var _0x59f89a=['project','utf8','estimatedHours','pending','zqMHH','search','push','Iptgn','tasks','isArray','\x20\x20npm\x20run\x20plan:init\x20<plan-id>','Xnsgm','.plan-locked','evLGF','\x20\x201.\x20Set\x20as\x20active\x20plan:\x20npm\x20run\x20plan:manager','argv','milestone','forEach','readFileSync','exit','trim','path','QkEJe','join','wtqWF','documentation','artifacts','subprojects','parse','Usage:','📦\x20Detected\x20hierarchical\x20plan\x20structure','GwaYm','Structured\x20Coding\x20Project','code','\x20\x20-\x20Hierarchical:\x20{\x20project:\x20{\x20subprojects:\x20[...]\x20}\x20}','\x20\x20npm\x20run\x20plan:manager\x0a','ucgsO','\x0a🚀\x20INITIALIZING\x20TASK\x20TRACKER\x0a','mkdirSync','actualHours','stringify','❌\x20ERROR:\x20Invalid\x20JSON\x20in\x20PROJECT-PLAN.json','23266ICCtmA','\x22\x20is\x20not\x20supported','\x20task\x20files\x20in\x20','tests','.json','completionCriteria','blockedReason','dependencies','\x20\x203.\x20View\x20status:\x20npm\x20run\x20task:status\x0a','Or\x20set\x20active\x20plan\x20first:','implementation','description','\x20is\x20now\x20LOCKED\x20and\x20ACTIVE\x0a','toISOString','log','map','\x20tasks\x0a','toString','status','❌\x20ERROR:\x20No\x20tasks\x20found\x20in\x20PROJECT-PLAN.json','title','908096XaMPzV','6cIocQP','EdQsr','lockedAt','existsSync','jLPaY','milestones','iybWP','.claude/ACTIVE-PLAN','notes','constructor','oQtUJ','Create\x20plan\x20first\x20with:\x20npm\x20run\x20plan:create\x0a','TASK-TRACKER.json','2.0','fNGWF','(((.+)+)+)+$','Mqxoy','name','\x0a✅\x20Task\x20tracker\x20created:\x20','writeFileSync','apply','424674zXCTFR','error','phase','810880LmRnhh','testCases','YmRrh','15wVLRJH','Expected\x20either:','\x20\x20✓\x20','.claude/plans','\x0a✅\x20Created\x20','GRxZo','📊\x20Total:\x20','1571375mxoRnV','📋\x20Next\x20steps:','✅\x20Found\x20','length','1777426dweKMT','milestoneName','completedAt','projectName','❌\x20ERROR:\x20PROJECT-PLAN.json\x20not\x20found\x20in\x20','\x20\x202.\x20Start\x20first\x20task:\x20npm\x20run\x20task:start\x20TASK-001','306209UZSXXQ','subprojectName','subproject','❌\x20ERROR:\x20No\x20plan\x20specified\x20and\x20no\x20active\x20plan\x20found'];_0x72c3=function(){return _0x59f89a;};return _0x72c3();}var g=process[_0x43b2dc(0x1ed)][0x2],p=_0x43b2dc(0x225),l;g?l=g:t['existsSync'](p)?l=t[_0x43b2dc(0x1f0)](p,_0x43b2dc(0x1df))[_0x43b2dc(0x1f2)]():(console[_0x43b2dc(0x234)](_0x43b2dc(0x1dd)),console[_0x43b2dc(0x234)](_0x43b2dc(0x1fb)),console['error'](_0x43b2dc(0x1e8)),console[_0x43b2dc(0x234)](_0x43b2dc(0x211)),console[_0x43b2dc(0x234)](_0x43b2dc(0x201)),process[_0x43b2dc(0x1f1)](0x1));var r=i[_0x43b2dc(0x1f5)](_0x43b2dc(0x23c),l);t[_0x43b2dc(0x221)](r)||(console[_0x43b2dc(0x234)]('❌\x20ERROR:\x20Plan\x20directory\x20not\x20found:\x20'+r),console[_0x43b2dc(0x234)](_0x43b2dc(0x229)),process[_0x43b2dc(0x1f1)](0x1));var d=i['join'](r,'PROJECT-PLAN.json');t[_0x43b2dc(0x221)](d)||(console['error'](_0x43b2dc(0x1d8)+r),process[_0x43b2dc(0x1f1)](0x1));var n;try{n=JSON[_0x43b2dc(0x1fa)](t[_0x43b2dc(0x1f0)](d,_0x43b2dc(0x1df)));}catch(_0x45fb5c){console[_0x43b2dc(0x234)](_0x43b2dc(0x207)),console[_0x43b2dc(0x234)](_0x45fb5c['message']),process[_0x43b2dc(0x1f1)](0x1);}var o=[];n[_0x43b2dc(0x1de)]&&n['project'][_0x43b2dc(0x1f9)]?(console['log'](_0x43b2dc(0x1fc)),console[_0x43b2dc(0x216)]('🔄\x20Flattening\x20hierarchy\x20into\x20individual\x20task\x20files...\x0a'),n['project'][_0x43b2dc(0x1f9)][_0x43b2dc(0x1ef)](_0x2b21f1=>{var _0x2ad3b9=_0x43b2dc,_0xe7f3f6={};_0xe7f3f6[_0x2ad3b9(0x202)]=_0x2ad3b9(0x1df),_0xe7f3f6[_0x2ad3b9(0x1e2)]=function(_0x18aee3,_0x2f6a21){return _0x18aee3!==_0x2f6a21;},_0xe7f3f6[_0x2ad3b9(0x222)]=_0x2ad3b9(0x224);var _0x3cca2c=_0xe7f3f6;_0x2b21f1[_0x2ad3b9(0x223)]['forEach'](_0x5b7d7f=>{var _0x225e12=_0x2ad3b9,_0x1c9420={};_0x1c9420[_0x225e12(0x22e)]=_0x3cca2c[_0x225e12(0x202)];var _0xbd6dec=_0x1c9420;_0x3cca2c[_0x225e12(0x1e2)](_0x3cca2c['jLPaY'],'urDvW')?_0x5b7d7f[_0x225e12(0x1e6)][_0x225e12(0x1ef)](_0x38985e=>{var _0xc6e879=_0x225e12,_0x135751={..._0x38985e};_0x135751['subproject']=_0x2b21f1['id'],_0x135751[_0xc6e879(0x1db)]=_0x2b21f1[_0xc6e879(0x22f)],_0x135751[_0xc6e879(0x1ee)]=_0x5b7d7f['id'],_0x135751[_0xc6e879(0x1d5)]=_0x5b7d7f[_0xc6e879(0x22f)],o[_0xc6e879(0x1e4)](_0x135751);}):_0x38e072=_0x4f8f55[_0x225e12(0x1fa)](_0x17ed98[_0x225e12(0x1f0)](_0x4c726b,_0xbd6dec['Mqxoy']));});})):n[_0x43b2dc(0x1e6)]&&Array[_0x43b2dc(0x1e7)](n[_0x43b2dc(0x1e6)])?(console[_0x43b2dc(0x216)]('📋\x20Detected\x20flat\x20plan\x20structure'),o[_0x43b2dc(0x1e4)](...n[_0x43b2dc(0x1e6)])):(console[_0x43b2dc(0x234)]('❌\x20ERROR:\x20Invalid\x20plan\x20structure'),console[_0x43b2dc(0x234)](_0x43b2dc(0x23a)),console[_0x43b2dc(0x234)](_0x43b2dc(0x200)),console[_0x43b2dc(0x234)]('\x20\x20-\x20Flat:\x20{\x20tasks:\x20[...]\x20}'),process[_0x43b2dc(0x1f1)](0x1)),o['length']===0x0&&(console[_0x43b2dc(0x234)](_0x43b2dc(0x21b)),process[_0x43b2dc(0x1f1)](0x1)),console[_0x43b2dc(0x216)](_0x43b2dc(0x1d2)+o[_0x43b2dc(0x1d3)]+'\x20tasks\x0a');var a=i[_0x43b2dc(0x1f5)](r,_0x43b2dc(0x1e6)),_0x37f055={};_0x37f055['recursive']=!0x0,t[_0x43b2dc(0x221)](a)||t[_0x43b2dc(0x204)](a,_0x37f055),o[_0x43b2dc(0x1ef)](_0x17e3ea=>{var _0x4af837=_0x43b2dc,_0x217fae={};_0x217fae[_0x4af837(0x1e9)]=_0x4af837(0x1e1);var _0x13bd87=_0x217fae,_0x2e3a6f={};_0x2e3a6f['design']=[],_0x2e3a6f[_0x4af837(0x1ff)]=[],_0x2e3a6f[_0x4af837(0x20b)]=[],_0x2e3a6f[_0x4af837(0x1f7)]=[];var _0x3008a2={};_0x3008a2['id']=_0x17e3ea['id'],_0x3008a2[_0x4af837(0x21c)]=_0x17e3ea[_0x4af837(0x21c)],_0x3008a2['description']=_0x17e3ea['description']||'',_0x3008a2[_0x4af837(0x21a)]=_0x17e3ea[_0x4af837(0x21a)]||_0x13bd87[_0x4af837(0x1e9)],_0x3008a2[_0x4af837(0x235)]=_0x17e3ea['phase']||_0x4af837(0x212),_0x3008a2[_0x4af837(0x1dc)]=_0x17e3ea['subproject']||null,_0x3008a2[_0x4af837(0x1db)]=_0x17e3ea[_0x4af837(0x1db)]||null,_0x3008a2[_0x4af837(0x1ee)]=_0x17e3ea[_0x4af837(0x1ee)]||null,_0x3008a2[_0x4af837(0x1d5)]=_0x17e3ea[_0x4af837(0x1d5)]||null,_0x3008a2[_0x4af837(0x20f)]=_0x17e3ea['dependencies']||[],_0x3008a2[_0x4af837(0x20d)]=_0x17e3ea['completionCriteria']||[],_0x3008a2[_0x4af837(0x237)]=_0x17e3ea[_0x4af837(0x237)]||[],_0x3008a2['estimatedHours']=_0x17e3ea[_0x4af837(0x1e0)]||null,_0x3008a2[_0x4af837(0x205)]=null,_0x3008a2['startedAt']=null,_0x3008a2[_0x4af837(0x1d6)]=null,_0x3008a2[_0x4af837(0x20e)]=null,_0x3008a2[_0x4af837(0x1f8)]=_0x17e3ea['artifacts']||_0x2e3a6f,_0x3008a2[_0x4af837(0x226)]=[];let _0x2f5902=_0x3008a2,_0x19e3d3=i[_0x4af837(0x1f5)](a,_0x17e3ea['id']+_0x4af837(0x20c));t[_0x4af837(0x231)](_0x19e3d3,JSON[_0x4af837(0x206)](_0x2f5902,null,0x2)),console[_0x4af837(0x216)](_0x4af837(0x23b)+_0x17e3ea['id']+':\x20'+_0x17e3ea[_0x4af837(0x21c)]);}),console[_0x43b2dc(0x216)](_0x43b2dc(0x23d)+o[_0x43b2dc(0x1d3)]+_0x43b2dc(0x20a)+a+'/');var S={'version':_0x43b2dc(0x22b),'planId':l,'projectName':n[_0x43b2dc(0x1d7)]||n[_0x43b2dc(0x1de)]?.[_0x43b2dc(0x22f)]||_0x43b2dc(0x1fe),'description':n[_0x43b2dc(0x213)]||n[_0x43b2dc(0x1de)]?.[_0x43b2dc(0x213)]||'','createdAt':new Date()[_0x43b2dc(0x215)](),'planLockedAt':new Date()[_0x43b2dc(0x215)](),'lastUpdated':new Date()['toISOString'](),'activeTask':null,'taskFiles':o[_0x43b2dc(0x217)](_0x574994=>({'id':_0x574994['id'],'title':_0x574994['title'],'status':'pending','file':a+'/'+_0x574994['id']+'.json'})),'statistics':{'totalTasks':o[_0x43b2dc(0x1d3)],'pending':o[_0x43b2dc(0x1d3)],'inProgress':0x0,'completed':0x0,'blocked':0x0}},m=i[_0x43b2dc(0x1f5)](r,_0x43b2dc(0x22a));t[_0x43b2dc(0x231)](m,JSON[_0x43b2dc(0x206)](S,null,0x2)),console['log'](_0x43b2dc(0x230)+m),console[_0x43b2dc(0x216)](_0x43b2dc(0x23f)+o[_0x43b2dc(0x1d3)]+_0x43b2dc(0x218)),console['log'](_0x43b2dc(0x1d1)),console[_0x43b2dc(0x216)](_0x43b2dc(0x1ec)),console[_0x43b2dc(0x216)](_0x43b2dc(0x1d9)),console[_0x43b2dc(0x216)](_0x43b2dc(0x210)),n['locked']=!0x0,n[_0x43b2dc(0x220)]=new Date()[_0x43b2dc(0x215)](),t[_0x43b2dc(0x231)](d,JSON['stringify'](n,null,0x2));var f=i[_0x43b2dc(0x1f5)](r,_0x43b2dc(0x1ea));t[_0x43b2dc(0x231)](f,new Date()[_0x43b2dc(0x215)]()),t[_0x43b2dc(0x231)](p,l),console['log']('🔒\x20Plan\x20'+l+_0x43b2dc(0x214)),process['exit'](0x0);
|