#
tokens: 40233/50000 2/163 files (page 4/5)
lines: on (toggle) GitHub
raw markdown copy reset
This is page 4 of 5. Use http://codebase.md/hongsw/claude-agents-power-mcp-server?lines=true&page={x} to view the full context.

# Directory Structure

```
├── .claude
│   └── agents
│       ├── devops-engineer.md
│       ├── frontend-developer.md
│       ├── qa-engineer.md
│       ├── README.md
│       ├── security-engineer.md
│       └── tech-lead.md
├── .gitignore
├── agents
│   ├── backend-engineer.md
│   ├── data-scientist.md
│   ├── devops-engineer.md
│   ├── frontend-developer.md
│   ├── full-stack-developer.md
│   ├── mobile-developer.md
│   ├── qa-engineer.md
│   ├── README.md
│   ├── security-engineer.md
│   ├── tech-lead.md
│   └── ui-designer.md
├── CHANGELOG.md
├── claude
│   └── agents
│       ├── company-roles.md
│       ├── en
│       │   ├── account-manager.md
│       │   ├── accountant.md
│       │   ├── accounting-manager.md
│       │   ├── agile-coach.md
│       │   ├── ai-researcher.md
│       │   ├── backend-developer.md
│       │   ├── backend-engineer.md
│       │   ├── bi-developer.md
│       │   ├── blockchain-developer.md
│       │   ├── brand-manager.md
│       │   ├── budget-analyst.md
│       │   ├── business-analyst.md
│       │   ├── business-developer.md
│       │   ├── business-development-manager.md
│       │   ├── business-intelligence-analyst.md
│       │   ├── business-process-analyst.md
│       │   ├── change-management-specialist.md
│       │   ├── change-manager.md
│       │   ├── chief-data-officer.md
│       │   ├── chief-executive-officer.md
│       │   ├── chief-financial-officer.md
│       │   ├── chief-human-resources-officer.md
│       │   ├── chief-information-officer.md
│       │   ├── chief-marketing-officer.md
│       │   ├── chief-operating-officer.md
│       │   ├── chief-product-officer.md
│       │   ├── chief-technology-officer.md
│       │   ├── clinical-researcher.md
│       │   ├── cloud-architect.md
│       │   ├── communications-director.md
│       │   ├── compensation-benefits-manager.md
│       │   ├── compensation-benefits.md
│       │   ├── compliance-manager.md
│       │   ├── compliance-officer.md
│       │   ├── content-creator.md
│       │   ├── content-marketer.md
│       │   ├── content-marketing-manager.md
│       │   ├── contract-manager.md
│       │   ├── controller.md
│       │   ├── copywriter.md
│       │   ├── corporate-trainer.md
│       │   ├── creative-director.md
│       │   ├── credit-analyst.md
│       │   ├── curriculum-developer.md
│       │   ├── customer-service-manager.md
│       │   ├── customer-success-manager.md
│       │   ├── data-analyst.md
│       │   ├── data-engineer.md
│       │   ├── data-scientist.md
│       │   ├── database-administrator.md
│       │   ├── design-lead.md
│       │   ├── devops-engineer.md
│       │   ├── digital-marketer.md
│       │   ├── digital-marketing-specialist.md
│       │   ├── diversity-inclusion-manager.md
│       │   ├── diversity-inclusion.md
│       │   ├── embedded-systems-engineer.md
│       │   ├── environmental-engineer.md
│       │   ├── event-manager.md
│       │   ├── executive-assistant.md
│       │   ├── facilities-manager.md
│       │   ├── facility-manager.md
│       │   ├── financial-analyst.md
│       │   ├── financial-controller.md
│       │   ├── frontend-developer.md
│       │   ├── full-stack-developer.md
│       │   ├── game-developer.md
│       │   ├── graphic-designer.md
│       │   ├── growth-hacker.md
│       │   ├── growth-marketing-manager.md
│       │   ├── health-informatics.md
│       │   ├── healthcare-analyst.md
│       │   ├── help-desk-specialist.md
│       │   ├── hr-manager.md
│       │   ├── implementation-consultant.md
│       │   ├── innovation-manager.md
│       │   ├── instructional-designer.md
│       │   ├── interaction-designer.md
│       │   ├── internal-auditor.md
│       │   ├── investment-analyst.md
│       │   ├── investor-relations-manager.md
│       │   ├── investor-relations.md
│       │   ├── it-administrator.md
│       │   ├── learning-development-manager.md
│       │   ├── learning-development.md
│       │   ├── legal-counsel.md
│       │   ├── machine-learning-engineer.md
│       │   ├── marketing-analyst.md
│       │   ├── marketing-manager.md
│       │   ├── medical-writer.md
│       │   ├── mobile-developer.md
│       │   ├── motion-designer.md
│       │   ├── network-engineer.md
│       │   ├── office-manager.md
│       │   ├── operations-manager.md
│       │   ├── organizational-developer.md
│       │   ├── organizational-development-manager.md
│       │   ├── partnership-manager.md
│       │   ├── patent-engineer.md
│       │   ├── payroll-manager.md
│       │   ├── pr-manager.md
│       │   ├── pre-sales-consultant.md
│       │   ├── privacy-officer.md
│       │   ├── process-engineer.md
│       │   ├── procurement-manager.md
│       │   ├── procurement-specialist.md
│       │   ├── product-designer.md
│       │   ├── product-manager.md
│       │   ├── product-owner.md
│       │   ├── production-manager.md
│       │   ├── program-manager.md
│       │   ├── project-manager.md
│       │   ├── public-relations-manager.md
│       │   ├── qa-engineer.md
│       │   ├── quality-assurance-manager.md
│       │   ├── quality-engineer.md
│       │   ├── r-and-d-engineer.md
│       │   ├── real-estate-analyst.md
│       │   ├── research-scientist.md
│       │   ├── risk-manager.md
│       │   ├── sales-engineer.md
│       │   ├── sales-manager.md
│       │   ├── scrum-master.md
│       │   ├── security-engineer.md
│       │   ├── seo-specialist.md
│       │   ├── site-reliability-engineer.md
│       │   ├── social-media-manager.md
│       │   ├── software-engineer.md
│       │   ├── solution-architect.md
│       │   ├── strategy-consultant.md
│       │   ├── supply-chain-manager.md
│       │   ├── sustainability-manager.md
│       │   ├── talent-acquisition-specialist.md
│       │   ├── talent-acquisition.md
│       │   ├── tax-manager.md
│       │   ├── tech-lead.md
│       │   ├── technical-pm.md
│       │   ├── technical-support-engineer.md
│       │   ├── technical-support.md
│       │   ├── technical-writer.md
│       │   ├── training-specialist.md
│       │   ├── treasury-manager.md
│       │   ├── ui-designer.md
│       │   ├── ux-designer.md
│       │   ├── ux-researcher.md
│       │   └── video-producer.md
│       ├── ja
│       │   ├── backend-engineer.md
│       │   ├── data-scientist.md
│       │   ├── devops-engineer.md
│       │   ├── frontend-developer.md
│       │   └── product-manager.md
│       ├── ko
│       │   ├── account-manager.md
│       │   ├── accountant.md
│       │   ├── backend-developer.md
│       │   ├── backend-engineer.md
│       │   ├── bi-developer.md
│       │   ├── blockchain-developer.md
│       │   ├── brand-manager.md
│       │   ├── budget-analyst.md
│       │   ├── business-analyst.md
│       │   ├── business-developer.md
│       │   ├── change-manager.md
│       │   ├── clinical-researcher.md
│       │   ├── cloud-architect.md
│       │   ├── communications-director.md
│       │   ├── compensation-benefits.md
│       │   ├── compliance-officer.md
│       │   ├── content-creator.md
│       │   ├── content-marketer.md
│       │   ├── contract-manager.md
│       │   ├── controller.md
│       │   ├── copywriter.md
│       │   ├── corporate-trainer.md
│       │   ├── curriculum-developer.md
│       │   ├── customer-success-manager.md
│       │   ├── data-analyst.md
│       │   ├── data-engineer.md
│       │   ├── data-scientist.md
│       │   ├── devops-engineer.md
│       │   ├── digital-marketer.md
│       │   ├── diversity-inclusion.md
│       │   ├── environmental-engineer.md
│       │   ├── event-manager.md
│       │   ├── executive-assistant.md
│       │   ├── facility-manager.md
│       │   ├── financial-analyst.md
│       │   ├── frontend-developer.md
│       │   ├── full-stack-developer.md
│       │   ├── graphic-designer.md
│       │   ├── growth-hacker.md
│       │   ├── health-informatics.md
│       │   ├── healthcare-analyst.md
│       │   ├── help-desk-specialist.md
│       │   ├── hr-manager.md
│       │   ├── innovation-manager.md
│       │   ├── instructional-designer.md
│       │   ├── internal-auditor.md
│       │   ├── investor-relations.md
│       │   ├── it-administrator.md
│       │   ├── learning-development.md
│       │   ├── legal-counsel.md
│       │   ├── machine-learning-engineer.md
│       │   ├── marketing-analyst.md
│       │   ├── medical-writer.md
│       │   ├── mobile-developer.md
│       │   ├── motion-designer.md
│       │   ├── operations-manager.md
│       │   ├── organizational-developer.md
│       │   ├── patent-engineer.md
│       │   ├── pr-manager.md
│       │   ├── privacy-officer.md
│       │   ├── process-engineer.md
│       │   ├── procurement-specialist.md
│       │   ├── product-designer.md
│       │   ├── product-manager.md
│       │   ├── product-owner.md
│       │   ├── production-manager.md
│       │   ├── project-manager.md
│       │   ├── qa-engineer.md
│       │   ├── quality-engineer.md
│       │   ├── r-and-d-engineer.md
│       │   ├── real-estate-analyst.md
│       │   ├── research-scientist.md
│       │   ├── risk-manager.md
│       │   ├── sales-manager.md
│       │   ├── scrum-master.md
│       │   ├── security-engineer.md
│       │   ├── social-media-manager.md
│       │   ├── software-engineer.md
│       │   ├── strategy-consultant.md
│       │   ├── supply-chain-manager.md
│       │   ├── sustainability-manager.md
│       │   ├── talent-acquisition.md
│       │   ├── technical-pm.md
│       │   ├── technical-support.md
│       │   ├── treasury-manager.md
│       │   ├── ui-designer.md
│       │   └── ux-designer.md
│       └── zh
│           ├── backend-engineer.md
│           ├── data-scientist.md
│           ├── devops-engineer.md
│           ├── frontend-developer.md
│           ├── product-manager.md
│           ├── project-manager.md
│           ├── qa-engineer.md
│           └── security-engineer.md
├── claude-slash-commands
│   ├── agent-download.md
│   ├── agents-load.md
│   ├── agents-search.md
│   ├── agents-suggest.md
│   ├── agents-version.md
│   └── splash.md
├── CLAUDE.md
├── dist
│   ├── agentManager.d.ts
│   ├── agentManager.d.ts.map
│   ├── agentManager.js
│   ├── agentManager.js.map
│   ├── githubIntegration.d.ts
│   ├── githubIntegration.d.ts.map
│   ├── githubIntegration.js
│   ├── githubIntegration.js.map
│   ├── index.d.ts
│   ├── index.d.ts.map
│   ├── index.js
│   ├── index.js.map
│   ├── projectAnalyzer.d.ts
│   ├── projectAnalyzer.d.ts.map
│   ├── projectAnalyzer.js
│   └── projectAnalyzer.js.map
├── docs
│   ├── company_roles.md
│   └── index.html
├── examples
│   └── usage.md
├── EXAMPLES.md
├── FIXED.md
├── index.html
├── install-slash-commands.js
├── INSTALL.md
├── INSTALLATION.md
├── LICENSE
├── node_modules
│   ├── .bin
│   │   ├── esbuild
│   │   ├── glob
│   │   ├── js-yaml
│   │   ├── node-which
│   │   ├── tsc
│   │   ├── tsserver
│   │   └── tsx
│   ├── .package-lock.json
│   ├── @esbuild
│   │   └── darwin-arm64
│   │       ├── bin
│   │       │   └── esbuild
│   │       ├── package.json
│   │       └── README.md
│   ├── @isaacs
│   │   └── cliui
│   │       ├── build
│   │       │   ├── index.cjs
│   │       │   ├── index.d.cts
│   │       │   └── lib
│   │       │       └── index.js
│   │       ├── index.mjs
│   │       ├── LICENSE.txt
│   │       ├── package.json
│   │       └── README.md
│   ├── @modelcontextprotocol
│   │   └── sdk
│   │       ├── dist
│   │       │   ├── cli.d.ts
│   │       │   ├── cli.d.ts.map
│   │       │   ├── cli.js
│   │       │   ├── cli.js.map
│   │       │   ├── client
│   │       │   │   ├── index.d.ts
│   │       │   │   ├── index.d.ts.map
│   │       │   │   ├── index.js
│   │       │   │   ├── index.js.map
│   │       │   │   ├── index.test.d.ts
│   │       │   │   ├── index.test.d.ts.map
│   │       │   │   ├── index.test.js
│   │       │   │   ├── index.test.js.map
│   │       │   │   ├── sse.d.ts
│   │       │   │   ├── sse.d.ts.map
│   │       │   │   ├── sse.js
│   │       │   │   ├── sse.js.map
│   │       │   │   ├── stdio.d.ts
│   │       │   │   ├── stdio.d.ts.map
│   │       │   │   ├── stdio.js
│   │       │   │   ├── stdio.js.map
│   │       │   │   ├── stdio.test.d.ts
│   │       │   │   ├── stdio.test.d.ts.map
│   │       │   │   ├── stdio.test.js
│   │       │   │   ├── stdio.test.js.map
│   │       │   │   ├── websocket.d.ts
│   │       │   │   ├── websocket.d.ts.map
│   │       │   │   ├── websocket.js
│   │       │   │   └── websocket.js.map
│   │       │   ├── inMemory.d.ts
│   │       │   ├── inMemory.d.ts.map
│   │       │   ├── inMemory.js
│   │       │   ├── inMemory.js.map
│   │       │   ├── inMemory.test.d.ts
│   │       │   ├── inMemory.test.d.ts.map
│   │       │   ├── inMemory.test.js
│   │       │   ├── inMemory.test.js.map
│   │       │   ├── server
│   │       │   │   ├── index.d.ts
│   │       │   │   ├── index.d.ts.map
│   │       │   │   ├── index.js
│   │       │   │   ├── index.js.map
│   │       │   │   ├── index.test.d.ts
│   │       │   │   ├── index.test.d.ts.map
│   │       │   │   ├── index.test.js
│   │       │   │   ├── index.test.js.map
│   │       │   │   ├── sse.d.ts
│   │       │   │   ├── sse.d.ts.map
│   │       │   │   ├── sse.js
│   │       │   │   ├── sse.js.map
│   │       │   │   ├── stdio.d.ts
│   │       │   │   ├── stdio.d.ts.map
│   │       │   │   ├── stdio.js
│   │       │   │   ├── stdio.js.map
│   │       │   │   ├── stdio.test.d.ts
│   │       │   │   ├── stdio.test.d.ts.map
│   │       │   │   ├── stdio.test.js
│   │       │   │   └── stdio.test.js.map
│   │       │   ├── shared
│   │       │   │   ├── protocol.d.ts
│   │       │   │   ├── protocol.d.ts.map
│   │       │   │   ├── protocol.js
│   │       │   │   ├── protocol.js.map
│   │       │   │   ├── stdio.d.ts
│   │       │   │   ├── stdio.d.ts.map
│   │       │   │   ├── stdio.js
│   │       │   │   ├── stdio.js.map
│   │       │   │   ├── stdio.test.d.ts
│   │       │   │   ├── stdio.test.d.ts.map
│   │       │   │   ├── stdio.test.js
│   │       │   │   ├── stdio.test.js.map
│   │       │   │   ├── transport.d.ts
│   │       │   │   ├── transport.d.ts.map
│   │       │   │   ├── transport.js
│   │       │   │   └── transport.js.map
│   │       │   ├── types.d.ts
│   │       │   ├── types.d.ts.map
│   │       │   ├── types.js
│   │       │   ├── types.js.map
│   │       │   ├── utils.d.ts
│   │       │   ├── utils.d.ts.map
│   │       │   ├── utils.js
│   │       │   ├── utils.js.map
│   │       │   ├── utils.test.d.ts
│   │       │   ├── utils.test.d.ts.map
│   │       │   ├── utils.test.js
│   │       │   └── utils.test.js.map
│   │       ├── LICENSE
│   │       ├── package.json
│   │       └── README.md
│   ├── @pkgjs
│   │   └── parseargs
│   │       ├── .editorconfig
│   │       ├── CHANGELOG.md
│   │       ├── examples
│   │       │   ├── is-default-value.js
│   │       │   ├── limit-long-syntax.js
│   │       │   ├── negate.js
│   │       │   ├── no-repeated-options.js
│   │       │   ├── ordered-options.mjs
│   │       │   └── simple-hard-coded.js
│   │       ├── index.js
│   │       ├── internal
│   │       │   ├── errors.js
│   │       │   ├── primordials.js
│   │       │   ├── util.js
│   │       │   └── validators.js
│   │       ├── LICENSE
│   │       ├── package.json
│   │       ├── README.md
│   │       └── utils.js
│   ├── @types
│   │   ├── js-yaml
│   │   │   ├── index.d.mts
│   │   │   ├── index.d.ts
│   │   │   ├── LICENSE
│   │   │   ├── package.json
│   │   │   └── README.md
│   │   └── node
│   │       ├── assert
│   │       │   └── strict.d.ts
│   │       ├── assert.d.ts
│   │       ├── async_hooks.d.ts
│   │       ├── buffer.buffer.d.ts
│   │       ├── buffer.d.ts
│   │       ├── child_process.d.ts
│   │       ├── cluster.d.ts
│   │       ├── compatibility
│   │       │   ├── disposable.d.ts
│   │       │   ├── index.d.ts
│   │       │   ├── indexable.d.ts
│   │       │   └── iterators.d.ts
│   │       ├── console.d.ts
│   │       ├── constants.d.ts
│   │       ├── crypto.d.ts
│   │       ├── dgram.d.ts
│   │       ├── diagnostics_channel.d.ts
│   │       ├── dns
│   │       │   └── promises.d.ts
│   │       ├── dns.d.ts
│   │       ├── dom-events.d.ts
│   │       ├── domain.d.ts
│   │       ├── events.d.ts
│   │       ├── fs
│   │       │   └── promises.d.ts
│   │       ├── fs.d.ts
│   │       ├── globals.d.ts
│   │       ├── globals.typedarray.d.ts
│   │       ├── http.d.ts
│   │       ├── http2.d.ts
│   │       ├── https.d.ts
│   │       ├── index.d.ts
│   │       ├── inspector.d.ts
│   │       ├── LICENSE
│   │       ├── module.d.ts
│   │       ├── net.d.ts
│   │       ├── os.d.ts
│   │       ├── package.json
│   │       ├── path.d.ts
│   │       ├── perf_hooks.d.ts
│   │       ├── process.d.ts
│   │       ├── punycode.d.ts
│   │       ├── querystring.d.ts
│   │       ├── readline
│   │       │   └── promises.d.ts
│   │       ├── readline.d.ts
│   │       ├── README.md
│   │       ├── repl.d.ts
│   │       ├── sea.d.ts
│   │       ├── stream
│   │       │   ├── consumers.d.ts
│   │       │   ├── promises.d.ts
│   │       │   └── web.d.ts
│   │       ├── stream.d.ts
│   │       ├── string_decoder.d.ts
│   │       ├── test.d.ts
│   │       ├── timers
│   │       │   └── promises.d.ts
│   │       ├── timers.d.ts
│   │       ├── tls.d.ts
│   │       ├── trace_events.d.ts
│   │       ├── ts5.6
│   │       │   ├── buffer.buffer.d.ts
│   │       │   ├── globals.typedarray.d.ts
│   │       │   └── index.d.ts
│   │       ├── tty.d.ts
│   │       ├── url.d.ts
│   │       ├── util.d.ts
│   │       ├── v8.d.ts
│   │       ├── vm.d.ts
│   │       ├── wasi.d.ts
│   │       ├── worker_threads.d.ts
│   │       └── zlib.d.ts
│   ├── ansi-regex
│   │   ├── index.d.ts
│   │   ├── index.js
│   │   ├── license
│   │   ├── package.json
│   │   └── readme.md
│   ├── ansi-styles
│   │   ├── index.d.ts
│   │   ├── index.js
│   │   ├── license
│   │   ├── package.json
│   │   └── readme.md
│   ├── argparse
│   │   ├── argparse.js
│   │   ├── CHANGELOG.md
│   │   ├── lib
│   │   │   ├── sub.js
│   │   │   └── textwrap.js
│   │   ├── LICENSE
│   │   ├── package.json
│   │   └── README.md
│   ├── balanced-match
│   │   ├── .github
│   │   │   └── FUNDING.yml
│   │   ├── index.js
│   │   ├── LICENSE.md
│   │   ├── package.json
│   │   └── README.md
│   ├── brace-expansion
│   │   ├── .github
│   │   │   └── FUNDING.yml
│   │   ├── index.js
│   │   ├── LICENSE
│   │   ├── package.json
│   │   └── README.md
│   ├── bytes
│   │   ├── History.md
│   │   ├── index.js
│   │   ├── LICENSE
│   │   ├── package.json
│   │   └── Readme.md
│   ├── color-convert
│   │   ├── CHANGELOG.md
│   │   ├── conversions.js
│   │   ├── index.js
│   │   ├── LICENSE
│   │   ├── package.json
│   │   ├── README.md
│   │   └── route.js
│   ├── color-name
│   │   ├── index.js
│   │   ├── LICENSE
│   │   ├── package.json
│   │   └── README.md
│   ├── commander
│   │   ├── esm.mjs
│   │   ├── index.js
│   │   ├── lib
│   │   │   ├── argument.js
│   │   │   ├── command.js
│   │   │   ├── error.js
│   │   │   ├── help.js
│   │   │   ├── option.js
│   │   │   └── suggestSimilar.js
│   │   ├── LICENSE
│   │   ├── package-support.json
│   │   ├── package.json
│   │   ├── Readme.md
│   │   └── typings
│   │       ├── esm.d.mts
│   │       └── index.d.ts
│   ├── content-type
│   │   ├── HISTORY.md
│   │   ├── index.js
│   │   ├── LICENSE
│   │   ├── package.json
│   │   └── README.md
│   ├── cross-spawn
│   │   ├── index.js
│   │   ├── lib
│   │   │   ├── enoent.js
│   │   │   ├── parse.js
│   │   │   └── util
│   │   │       ├── escape.js
│   │   │       ├── readShebang.js
│   │   │       └── resolveCommand.js
│   │   ├── LICENSE
│   │   ├── package.json
│   │   └── README.md
│   ├── depd
│   │   ├── History.md
│   │   ├── index.js
│   │   ├── lib
│   │   │   └── browser
│   │   │       └── index.js
│   │   ├── LICENSE
│   │   ├── package.json
│   │   └── Readme.md
│   ├── eastasianwidth
│   │   ├── eastasianwidth.js
│   │   ├── package.json
│   │   └── README.md
│   ├── emoji-regex
│   │   ├── es2015
│   │   │   ├── index.d.ts
│   │   │   ├── index.js
│   │   │   ├── RGI_Emoji.d.ts
│   │   │   ├── RGI_Emoji.js
│   │   │   ├── text.d.ts
│   │   │   └── text.js
│   │   ├── index.d.ts
│   │   ├── index.js
│   │   ├── LICENSE-MIT.txt
│   │   ├── package.json
│   │   ├── README.md
│   │   ├── RGI_Emoji.d.ts
│   │   ├── RGI_Emoji.js
│   │   ├── text.d.ts
│   │   └── text.js
│   ├── esbuild
│   │   ├── bin
│   │   │   └── esbuild
│   │   ├── install.js
│   │   ├── lib
│   │   │   ├── main.d.ts
│   │   │   └── main.js
│   │   ├── LICENSE.md
│   │   ├── package.json
│   │   └── README.md
│   ├── foreground-child
│   │   ├── dist
│   │   │   ├── commonjs
│   │   │   │   ├── all-signals.d.ts
│   │   │   │   ├── all-signals.d.ts.map
│   │   │   │   ├── all-signals.js
│   │   │   │   ├── all-signals.js.map
│   │   │   │   ├── index.d.ts
│   │   │   │   ├── index.d.ts.map
│   │   │   │   ├── index.js
│   │   │   │   ├── index.js.map
│   │   │   │   ├── package.json
│   │   │   │   ├── proxy-signals.d.ts
│   │   │   │   ├── proxy-signals.d.ts.map
│   │   │   │   ├── proxy-signals.js
│   │   │   │   ├── proxy-signals.js.map
│   │   │   │   ├── watchdog.d.ts
│   │   │   │   ├── watchdog.d.ts.map
│   │   │   │   ├── watchdog.js
│   │   │   │   └── watchdog.js.map
│   │   │   └── esm
│   │   │       ├── all-signals.d.ts
│   │   │       ├── all-signals.d.ts.map
│   │   │       ├── all-signals.js
│   │   │       ├── all-signals.js.map
│   │   │       ├── index.d.ts
│   │   │       ├── index.d.ts.map
│   │   │       ├── index.js
│   │   │       ├── index.js.map
│   │   │       ├── package.json
│   │   │       ├── proxy-signals.d.ts
│   │   │       ├── proxy-signals.d.ts.map
│   │   │       ├── proxy-signals.js
│   │   │       ├── proxy-signals.js.map
│   │   │       ├── watchdog.d.ts
│   │   │       ├── watchdog.d.ts.map
│   │   │       ├── watchdog.js
│   │   │       └── watchdog.js.map
│   │   ├── LICENSE
│   │   ├── package.json
│   │   └── README.md
│   ├── get-tsconfig
│   │   ├── dist
│   │   │   ├── index.cjs
│   │   │   ├── index.d.cts
│   │   │   ├── index.d.mts
│   │   │   └── index.mjs
│   │   ├── LICENSE
│   │   ├── package.json
│   │   └── README.md
│   ├── glob
│   │   ├── dist
│   │   │   ├── commonjs
│   │   │   │   ├── glob.d.ts
│   │   │   │   ├── glob.d.ts.map
│   │   │   │   ├── glob.js
│   │   │   │   ├── glob.js.map
│   │   │   │   ├── has-magic.d.ts
│   │   │   │   ├── has-magic.d.ts.map
│   │   │   │   ├── has-magic.js
│   │   │   │   ├── has-magic.js.map
│   │   │   │   ├── ignore.d.ts
│   │   │   │   ├── ignore.d.ts.map
│   │   │   │   ├── ignore.js
│   │   │   │   ├── ignore.js.map
│   │   │   │   ├── index.d.ts
│   │   │   │   ├── index.d.ts.map
│   │   │   │   ├── index.js
│   │   │   │   ├── index.js.map
│   │   │   │   ├── package.json
│   │   │   │   ├── pattern.d.ts
│   │   │   │   ├── pattern.d.ts.map
│   │   │   │   ├── pattern.js
│   │   │   │   ├── pattern.js.map
│   │   │   │   ├── processor.d.ts
│   │   │   │   ├── processor.d.ts.map
│   │   │   │   ├── processor.js
│   │   │   │   ├── processor.js.map
│   │   │   │   ├── walker.d.ts
│   │   │   │   ├── walker.d.ts.map
│   │   │   │   ├── walker.js
│   │   │   │   └── walker.js.map
│   │   │   └── esm
│   │   │       ├── bin.d.mts
│   │   │       ├── bin.d.mts.map
│   │   │       ├── bin.mjs
│   │   │       ├── bin.mjs.map
│   │   │       ├── glob.d.ts
│   │   │       ├── glob.d.ts.map
│   │   │       ├── glob.js
│   │   │       ├── glob.js.map
│   │   │       ├── has-magic.d.ts
│   │   │       ├── has-magic.d.ts.map
│   │   │       ├── has-magic.js
│   │   │       ├── has-magic.js.map
│   │   │       ├── ignore.d.ts
│   │   │       ├── ignore.d.ts.map
│   │   │       ├── ignore.js
│   │   │       ├── ignore.js.map
│   │   │       ├── index.d.ts
│   │   │       ├── index.d.ts.map
│   │   │       ├── index.js
│   │   │       ├── index.js.map
│   │   │       ├── package.json
│   │   │       ├── pattern.d.ts
│   │   │       ├── pattern.d.ts.map
│   │   │       ├── pattern.js
│   │   │       ├── pattern.js.map
│   │   │       ├── processor.d.ts
│   │   │       ├── processor.d.ts.map
│   │   │       ├── processor.js
│   │   │       ├── processor.js.map
│   │   │       ├── walker.d.ts
│   │   │       ├── walker.d.ts.map
│   │   │       ├── walker.js
│   │   │       └── walker.js.map
│   │   ├── LICENSE
│   │   ├── package.json
│   │   └── README.md
│   ├── http-errors
│   │   ├── HISTORY.md
│   │   ├── index.js
│   │   ├── LICENSE
│   │   ├── package.json
│   │   └── README.md
│   ├── iconv-lite
│   │   ├── .github
│   │   │   └── dependabot.yml
│   │   ├── .idea
│   │   │   ├── codeStyles
│   │   │   │   ├── codeStyleConfig.xml
│   │   │   │   └── Project.xml
│   │   │   ├── iconv-lite.iml
│   │   │   ├── inspectionProfiles
│   │   │   │   └── Project_Default.xml
│   │   │   ├── modules.xml
│   │   │   └── vcs.xml
│   │   ├── Changelog.md
│   │   ├── encodings
│   │   │   ├── dbcs-codec.js
│   │   │   ├── dbcs-data.js
│   │   │   ├── index.js
│   │   │   ├── internal.js
│   │   │   ├── sbcs-codec.js
│   │   │   ├── sbcs-data-generated.js
│   │   │   ├── sbcs-data.js
│   │   │   ├── tables
│   │   │   │   ├── big5-added.json
│   │   │   │   ├── cp936.json
│   │   │   │   ├── cp949.json
│   │   │   │   ├── cp950.json
│   │   │   │   ├── eucjp.json
│   │   │   │   ├── gb18030-ranges.json
│   │   │   │   ├── gbk-added.json
│   │   │   │   └── shiftjis.json
│   │   │   ├── utf16.js
│   │   │   ├── utf32.js
│   │   │   └── utf7.js
│   │   ├── lib
│   │   │   ├── bom-handling.js
│   │   │   ├── index.d.ts
│   │   │   ├── index.js
│   │   │   └── streams.js
│   │   ├── LICENSE
│   │   ├── package.json
│   │   └── README.md
│   ├── inherits
│   │   ├── inherits_browser.js
│   │   ├── inherits.js
│   │   ├── LICENSE
│   │   ├── package.json
│   │   └── README.md
│   ├── is-fullwidth-code-point
│   │   ├── index.d.ts
│   │   ├── index.js
│   │   ├── license
│   │   ├── package.json
│   │   └── readme.md
│   ├── isexe
│   │   ├── .npmignore
│   │   ├── index.js
│   │   ├── LICENSE
│   │   ├── mode.js
│   │   ├── package.json
│   │   ├── README.md
│   │   ├── test
│   │   │   └── basic.js
│   │   └── windows.js
│   ├── jackspeak
│   │   ├── dist
│   │   │   ├── commonjs
│   │   │   │   ├── index.d.ts
│   │   │   │   ├── index.d.ts.map
│   │   │   │   ├── index.js
│   │   │   │   ├── index.js.map
│   │   │   │   ├── package.json
│   │   │   │   ├── parse-args-cjs.cjs.map
│   │   │   │   ├── parse-args-cjs.d.cts.map
│   │   │   │   ├── parse-args.d.ts
│   │   │   │   └── parse-args.js
│   │   │   └── esm
│   │   │       ├── index.d.ts
│   │   │       ├── index.d.ts.map
│   │   │       ├── index.js
│   │   │       ├── index.js.map
│   │   │       ├── package.json
│   │   │       ├── parse-args.d.ts
│   │   │       ├── parse-args.d.ts.map
│   │   │       ├── parse-args.js
│   │   │       └── parse-args.js.map
│   │   ├── LICENSE.md
│   │   ├── package.json
│   │   └── README.md
│   ├── js-yaml
│   │   ├── bin
│   │   │   └── js-yaml.js
│   │   ├── CHANGELOG.md
│   │   ├── dist
│   │   │   ├── js-yaml.js
│   │   │   ├── js-yaml.min.js
│   │   │   └── js-yaml.mjs
│   │   ├── index.js
│   │   ├── lib
│   │   │   ├── common.js
│   │   │   ├── dumper.js
│   │   │   ├── exception.js
│   │   │   ├── loader.js
│   │   │   ├── schema
│   │   │   │   ├── core.js
│   │   │   │   ├── default.js
│   │   │   │   ├── failsafe.js
│   │   │   │   └── json.js
│   │   │   ├── schema.js
│   │   │   ├── snippet.js
│   │   │   ├── type
│   │   │   │   ├── binary.js
│   │   │   │   ├── bool.js
│   │   │   │   ├── float.js
│   │   │   │   ├── int.js
│   │   │   │   ├── map.js
│   │   │   │   ├── merge.js
│   │   │   │   ├── null.js
│   │   │   │   ├── omap.js
│   │   │   │   ├── pairs.js
│   │   │   │   ├── seq.js
│   │   │   │   ├── set.js
│   │   │   │   ├── str.js
│   │   │   │   └── timestamp.js
│   │   │   └── type.js
│   │   ├── LICENSE
│   │   ├── package.json
│   │   └── README.md
│   ├── lru-cache
│   │   ├── dist
│   │   │   ├── commonjs
│   │   │   │   ├── index.d.ts
│   │   │   │   ├── index.d.ts.map
│   │   │   │   ├── index.js
│   │   │   │   ├── index.js.map
│   │   │   │   ├── index.min.js
│   │   │   │   ├── index.min.js.map
│   │   │   │   └── package.json
│   │   │   └── esm
│   │   │       ├── index.d.ts
│   │   │       ├── index.d.ts.map
│   │   │       ├── index.js
│   │   │       ├── index.js.map
│   │   │       ├── index.min.js
│   │   │       ├── index.min.js.map
│   │   │       └── package.json
│   │   ├── LICENSE
│   │   ├── package.json
│   │   └── README.md
│   ├── minimatch
│   │   ├── dist
│   │   │   ├── commonjs
│   │   │   │   ├── assert-valid-pattern.d.ts
│   │   │   │   ├── assert-valid-pattern.d.ts.map
│   │   │   │   ├── assert-valid-pattern.js
│   │   │   │   ├── assert-valid-pattern.js.map
│   │   │   │   ├── ast.d.ts
│   │   │   │   ├── ast.d.ts.map
│   │   │   │   ├── ast.js
│   │   │   │   ├── ast.js.map
│   │   │   │   ├── brace-expressions.d.ts
│   │   │   │   ├── brace-expressions.d.ts.map
│   │   │   │   ├── brace-expressions.js
│   │   │   │   ├── brace-expressions.js.map
│   │   │   │   ├── escape.d.ts
│   │   │   │   ├── escape.d.ts.map
│   │   │   │   ├── escape.js
│   │   │   │   ├── escape.js.map
│   │   │   │   ├── index.d.ts
│   │   │   │   ├── index.d.ts.map
│   │   │   │   ├── index.js
│   │   │   │   ├── index.js.map
│   │   │   │   ├── package.json
│   │   │   │   ├── unescape.d.ts
│   │   │   │   ├── unescape.d.ts.map
│   │   │   │   ├── unescape.js
│   │   │   │   └── unescape.js.map
│   │   │   └── esm
│   │   │       ├── assert-valid-pattern.d.ts
│   │   │       ├── assert-valid-pattern.d.ts.map
│   │   │       ├── assert-valid-pattern.js
│   │   │       ├── assert-valid-pattern.js.map
│   │   │       ├── ast.d.ts
│   │   │       ├── ast.d.ts.map
│   │   │       ├── ast.js
│   │   │       ├── ast.js.map
│   │   │       ├── brace-expressions.d.ts
│   │   │       ├── brace-expressions.d.ts.map
│   │   │       ├── brace-expressions.js
│   │   │       ├── brace-expressions.js.map
│   │   │       ├── escape.d.ts
│   │   │       ├── escape.d.ts.map
│   │   │       ├── escape.js
│   │   │       ├── escape.js.map
│   │   │       ├── index.d.ts
│   │   │       ├── index.d.ts.map
│   │   │       ├── index.js
│   │   │       ├── index.js.map
│   │   │       ├── package.json
│   │   │       ├── unescape.d.ts
│   │   │       ├── unescape.d.ts.map
│   │   │       ├── unescape.js
│   │   │       └── unescape.js.map
│   │   ├── LICENSE
│   │   ├── package.json
│   │   └── README.md
│   ├── minipass
│   │   ├── dist
│   │   │   ├── commonjs
│   │   │   │   ├── index.d.ts
│   │   │   │   ├── index.d.ts.map
│   │   │   │   ├── index.js
│   │   │   │   ├── index.js.map
│   │   │   │   └── package.json
│   │   │   └── esm
│   │   │       ├── index.d.ts
│   │   │       ├── index.d.ts.map
│   │   │       ├── index.js
│   │   │       ├── index.js.map
│   │   │       └── package.json
│   │   ├── LICENSE
│   │   ├── package.json
│   │   └── README.md
│   ├── package-json-from-dist
│   │   ├── dist
│   │   │   ├── commonjs
│   │   │   │   ├── index.d.ts
│   │   │   │   ├── index.d.ts.map
│   │   │   │   ├── index.js
│   │   │   │   ├── index.js.map
│   │   │   │   └── package.json
│   │   │   └── esm
│   │   │       ├── index.d.ts
│   │   │       ├── index.d.ts.map
│   │   │       ├── index.js
│   │   │       ├── index.js.map
│   │   │       └── package.json
│   │   ├── LICENSE.md
│   │   ├── package.json
│   │   └── README.md
│   ├── path-key
│   │   ├── index.d.ts
│   │   ├── index.js
│   │   ├── license
│   │   ├── package.json
│   │   └── readme.md
│   ├── path-scurry
│   │   ├── dist
│   │   │   ├── commonjs
│   │   │   │   ├── index.d.ts
│   │   │   │   ├── index.d.ts.map
│   │   │   │   ├── index.js
│   │   │   │   ├── index.js.map
│   │   │   │   └── package.json
│   │   │   └── esm
│   │   │       ├── index.d.ts
│   │   │       ├── index.d.ts.map
│   │   │       ├── index.js
│   │   │       ├── index.js.map
│   │   │       └── package.json
│   │   ├── LICENSE.md
│   │   ├── package.json
│   │   └── README.md
│   ├── raw-body
│   │   ├── HISTORY.md
│   │   ├── index.d.ts
│   │   ├── index.js
│   │   ├── LICENSE
│   │   ├── package.json
│   │   ├── README.md
│   │   └── SECURITY.md
│   ├── resolve-pkg-maps
│   │   ├── dist
│   │   │   ├── index.cjs
│   │   │   ├── index.d.cts
│   │   │   ├── index.d.mts
│   │   │   └── index.mjs
│   │   ├── LICENSE
│   │   ├── package.json
│   │   └── README.md
│   ├── safer-buffer
│   │   ├── dangerous.js
│   │   ├── LICENSE
│   │   ├── package.json
│   │   ├── Porting-Buffer.md
│   │   ├── Readme.md
│   │   ├── safer.js
│   │   └── tests.js
│   ├── setprototypeof
│   │   ├── index.d.ts
│   │   ├── index.js
│   │   ├── LICENSE
│   │   ├── package.json
│   │   ├── README.md
│   │   └── test
│   │       └── index.js
│   ├── shebang-command
│   │   ├── index.js
│   │   ├── license
│   │   ├── package.json
│   │   └── readme.md
│   ├── shebang-regex
│   │   ├── index.d.ts
│   │   ├── index.js
│   │   ├── license
│   │   ├── package.json
│   │   └── readme.md
│   ├── signal-exit
│   │   ├── dist
│   │   │   ├── cjs
│   │   │   │   ├── browser.d.ts
│   │   │   │   ├── browser.d.ts.map
│   │   │   │   ├── browser.js
│   │   │   │   ├── browser.js.map
│   │   │   │   ├── index.d.ts
│   │   │   │   ├── index.d.ts.map
│   │   │   │   ├── index.js
│   │   │   │   ├── index.js.map
│   │   │   │   ├── package.json
│   │   │   │   ├── signals.d.ts
│   │   │   │   ├── signals.d.ts.map
│   │   │   │   ├── signals.js
│   │   │   │   └── signals.js.map
│   │   │   └── mjs
│   │   │       ├── browser.d.ts
│   │   │       ├── browser.d.ts.map
│   │   │       ├── browser.js
│   │   │       ├── browser.js.map
│   │   │       ├── index.d.ts
│   │   │       ├── index.d.ts.map
│   │   │       ├── index.js
│   │   │       ├── index.js.map
│   │   │       ├── package.json
│   │   │       ├── signals.d.ts
│   │   │       ├── signals.d.ts.map
│   │   │       ├── signals.js
│   │   │       └── signals.js.map
│   │   ├── LICENSE.txt
│   │   ├── package.json
│   │   └── README.md
│   ├── statuses
│   │   ├── codes.json
│   │   ├── HISTORY.md
│   │   ├── index.js
│   │   ├── LICENSE
│   │   ├── package.json
│   │   └── README.md
│   ├── string-width
│   │   ├── index.d.ts
│   │   ├── index.js
│   │   ├── license
│   │   ├── package.json
│   │   └── readme.md
│   ├── string-width-cjs
│   │   ├── index.d.ts
│   │   ├── index.js
│   │   ├── license
│   │   ├── node_modules
│   │   │   ├── ansi-regex
│   │   │   │   ├── index.d.ts
│   │   │   │   ├── index.js
│   │   │   │   ├── license
│   │   │   │   ├── package.json
│   │   │   │   └── readme.md
│   │   │   ├── emoji-regex
│   │   │   │   ├── es2015
│   │   │   │   │   ├── index.js
│   │   │   │   │   └── text.js
│   │   │   │   ├── index.d.ts
│   │   │   │   ├── index.js
│   │   │   │   ├── LICENSE-MIT.txt
│   │   │   │   ├── package.json
│   │   │   │   ├── README.md
│   │   │   │   └── text.js
│   │   │   └── strip-ansi
│   │   │       ├── index.d.ts
│   │   │       ├── index.js
│   │   │       ├── license
│   │   │       ├── package.json
│   │   │       └── readme.md
│   │   ├── package.json
│   │   └── readme.md
│   ├── strip-ansi
│   │   ├── index.d.ts
│   │   ├── index.js
│   │   ├── license
│   │   ├── package.json
│   │   └── readme.md
│   ├── strip-ansi-cjs
│   │   ├── index.d.ts
│   │   ├── index.js
│   │   ├── license
│   │   ├── node_modules
│   │   │   └── ansi-regex
│   │   │       ├── index.d.ts
│   │   │       ├── index.js
│   │   │       ├── license
│   │   │       ├── package.json
│   │   │       └── readme.md
│   │   ├── package.json
│   │   └── readme.md
│   ├── toidentifier
│   │   ├── HISTORY.md
│   │   ├── index.js
│   │   ├── LICENSE
│   │   ├── package.json
│   │   └── README.md
│   ├── tsx
│   │   ├── dist
│   │   │   ├── cjs
│   │   │   │   ├── api
│   │   │   │   │   ├── index.cjs
│   │   │   │   │   ├── index.d.cts
│   │   │   │   │   ├── index.d.mts
│   │   │   │   │   └── index.mjs
│   │   │   │   ├── index.cjs
│   │   │   │   └── index.mjs
│   │   │   ├── cli.cjs
│   │   │   ├── cli.mjs
│   │   │   ├── client-BQVF1NaW.mjs
│   │   │   ├── client-D6NvIMSC.cjs
│   │   │   ├── esm
│   │   │   │   ├── api
│   │   │   │   │   ├── index.cjs
│   │   │   │   │   ├── index.d.cts
│   │   │   │   │   ├── index.d.mts
│   │   │   │   │   └── index.mjs
│   │   │   │   ├── index.cjs
│   │   │   │   └── index.mjs
│   │   │   ├── get-pipe-path-BHW2eJdv.mjs
│   │   │   ├── get-pipe-path-BoR10qr8.cjs
│   │   │   ├── index-7AaEi15b.mjs
│   │   │   ├── index-BWFBUo6r.cjs
│   │   │   ├── index-gbaejti9.mjs
│   │   │   ├── index-gckBtVBf.cjs
│   │   │   ├── lexer-DgIbo0BU.cjs
│   │   │   ├── lexer-DQCqS3nf.mjs
│   │   │   ├── loader.cjs
│   │   │   ├── loader.mjs
│   │   │   ├── node-features-_8ZFwP_x.mjs
│   │   │   ├── node-features-roYmp9jK.cjs
│   │   │   ├── package-BgRDTLo0.mjs
│   │   │   ├── package-BTMRuUqB.cjs
│   │   │   ├── patch-repl.cjs
│   │   │   ├── patch-repl.mjs
│   │   │   ├── preflight.cjs
│   │   │   ├── preflight.mjs
│   │   │   ├── register-2sWVXuRQ.cjs
│   │   │   ├── register-B7jrtLTO.mjs
│   │   │   ├── register-CFH5oNdT.mjs
│   │   │   ├── register-D46fvsV_.cjs
│   │   │   ├── repl.cjs
│   │   │   ├── repl.mjs
│   │   │   ├── require-D4F1Lv60.cjs
│   │   │   ├── require-DQxpCAr4.mjs
│   │   │   ├── suppress-warnings.cjs
│   │   │   ├── suppress-warnings.mjs
│   │   │   ├── temporary-directory-B83uKxJF.cjs
│   │   │   ├── temporary-directory-CwHp0_NW.mjs
│   │   │   └── types-Cxp8y2TL.d.ts
│   │   ├── LICENSE
│   │   ├── package.json
│   │   └── README.md
│   ├── typescript
│   │   ├── bin
│   │   │   ├── tsc
│   │   │   └── tsserver
│   │   ├── lib
│   │   │   ├── _tsc.js
│   │   │   ├── _tsserver.js
│   │   │   ├── _typingsInstaller.js
│   │   │   ├── cs
│   │   │   │   └── diagnosticMessages.generated.json
│   │   │   ├── de
│   │   │   │   └── diagnosticMessages.generated.json
│   │   │   ├── es
│   │   │   │   └── diagnosticMessages.generated.json
│   │   │   ├── fr
│   │   │   │   └── diagnosticMessages.generated.json
│   │   │   ├── it
│   │   │   │   └── diagnosticMessages.generated.json
│   │   │   ├── ja
│   │   │   │   └── diagnosticMessages.generated.json
│   │   │   ├── ko
│   │   │   │   └── diagnosticMessages.generated.json
│   │   │   ├── lib.d.ts
│   │   │   ├── lib.decorators.d.ts
│   │   │   ├── lib.decorators.legacy.d.ts
│   │   │   ├── lib.dom.asynciterable.d.ts
│   │   │   ├── lib.dom.d.ts
│   │   │   ├── lib.dom.iterable.d.ts
│   │   │   ├── lib.es2015.collection.d.ts
│   │   │   ├── lib.es2015.core.d.ts
│   │   │   ├── lib.es2015.d.ts
│   │   │   ├── lib.es2015.generator.d.ts
│   │   │   ├── lib.es2015.iterable.d.ts
│   │   │   ├── lib.es2015.promise.d.ts
│   │   │   ├── lib.es2015.proxy.d.ts
│   │   │   ├── lib.es2015.reflect.d.ts
│   │   │   ├── lib.es2015.symbol.d.ts
│   │   │   ├── lib.es2015.symbol.wellknown.d.ts
│   │   │   ├── lib.es2016.array.include.d.ts
│   │   │   ├── lib.es2016.d.ts
│   │   │   ├── lib.es2016.full.d.ts
│   │   │   ├── lib.es2016.intl.d.ts
│   │   │   ├── lib.es2017.arraybuffer.d.ts
│   │   │   ├── lib.es2017.d.ts
│   │   │   ├── lib.es2017.date.d.ts
│   │   │   ├── lib.es2017.full.d.ts
│   │   │   ├── lib.es2017.intl.d.ts
│   │   │   ├── lib.es2017.object.d.ts
│   │   │   ├── lib.es2017.sharedmemory.d.ts
│   │   │   ├── lib.es2017.string.d.ts
│   │   │   ├── lib.es2017.typedarrays.d.ts
│   │   │   ├── lib.es2018.asyncgenerator.d.ts
│   │   │   ├── lib.es2018.asynciterable.d.ts
│   │   │   ├── lib.es2018.d.ts
│   │   │   ├── lib.es2018.full.d.ts
│   │   │   ├── lib.es2018.intl.d.ts
│   │   │   ├── lib.es2018.promise.d.ts
│   │   │   ├── lib.es2018.regexp.d.ts
│   │   │   ├── lib.es2019.array.d.ts
│   │   │   ├── lib.es2019.d.ts
│   │   │   ├── lib.es2019.full.d.ts
│   │   │   ├── lib.es2019.intl.d.ts
│   │   │   ├── lib.es2019.object.d.ts
│   │   │   ├── lib.es2019.string.d.ts
│   │   │   ├── lib.es2019.symbol.d.ts
│   │   │   ├── lib.es2020.bigint.d.ts
│   │   │   ├── lib.es2020.d.ts
│   │   │   ├── lib.es2020.date.d.ts
│   │   │   ├── lib.es2020.full.d.ts
│   │   │   ├── lib.es2020.intl.d.ts
│   │   │   ├── lib.es2020.number.d.ts
│   │   │   ├── lib.es2020.promise.d.ts
│   │   │   ├── lib.es2020.sharedmemory.d.ts
│   │   │   ├── lib.es2020.string.d.ts
│   │   │   ├── lib.es2020.symbol.wellknown.d.ts
│   │   │   ├── lib.es2021.d.ts
│   │   │   ├── lib.es2021.full.d.ts
│   │   │   ├── lib.es2021.intl.d.ts
│   │   │   ├── lib.es2021.promise.d.ts
│   │   │   ├── lib.es2021.string.d.ts
│   │   │   ├── lib.es2021.weakref.d.ts
│   │   │   ├── lib.es2022.array.d.ts
│   │   │   ├── lib.es2022.d.ts
│   │   │   ├── lib.es2022.error.d.ts
│   │   │   ├── lib.es2022.full.d.ts
│   │   │   ├── lib.es2022.intl.d.ts
│   │   │   ├── lib.es2022.object.d.ts
│   │   │   ├── lib.es2022.regexp.d.ts
│   │   │   ├── lib.es2022.string.d.ts
│   │   │   ├── lib.es2023.array.d.ts
│   │   │   ├── lib.es2023.collection.d.ts
│   │   │   ├── lib.es2023.d.ts
│   │   │   ├── lib.es2023.full.d.ts
│   │   │   ├── lib.es2023.intl.d.ts
│   │   │   ├── lib.es2024.arraybuffer.d.ts
│   │   │   ├── lib.es2024.collection.d.ts
│   │   │   ├── lib.es2024.d.ts
│   │   │   ├── lib.es2024.full.d.ts
│   │   │   ├── lib.es2024.object.d.ts
│   │   │   ├── lib.es2024.promise.d.ts
│   │   │   ├── lib.es2024.regexp.d.ts
│   │   │   ├── lib.es2024.sharedmemory.d.ts
│   │   │   ├── lib.es2024.string.d.ts
│   │   │   ├── lib.es5.d.ts
│   │   │   ├── lib.es6.d.ts
│   │   │   ├── lib.esnext.array.d.ts
│   │   │   ├── lib.esnext.collection.d.ts
│   │   │   ├── lib.esnext.d.ts
│   │   │   ├── lib.esnext.decorators.d.ts
│   │   │   ├── lib.esnext.disposable.d.ts
│   │   │   ├── lib.esnext.float16.d.ts
│   │   │   ├── lib.esnext.full.d.ts
│   │   │   ├── lib.esnext.intl.d.ts
│   │   │   ├── lib.esnext.iterator.d.ts
│   │   │   ├── lib.esnext.promise.d.ts
│   │   │   ├── lib.scripthost.d.ts
│   │   │   ├── lib.webworker.asynciterable.d.ts
│   │   │   ├── lib.webworker.d.ts
│   │   │   ├── lib.webworker.importscripts.d.ts
│   │   │   ├── lib.webworker.iterable.d.ts
│   │   │   ├── pl
│   │   │   │   └── diagnosticMessages.generated.json
│   │   │   ├── pt-br
│   │   │   │   └── diagnosticMessages.generated.json
│   │   │   ├── ru
│   │   │   │   └── diagnosticMessages.generated.json
│   │   │   ├── tr
│   │   │   │   └── diagnosticMessages.generated.json
│   │   │   ├── tsc.js
│   │   │   ├── tsserver.js
│   │   │   ├── tsserverlibrary.d.ts
│   │   │   ├── tsserverlibrary.js
│   │   │   ├── typescript.d.ts
│   │   │   ├── typescript.js
│   │   │   ├── typesMap.json
│   │   │   ├── typingsInstaller.js
│   │   │   ├── watchGuard.js
│   │   │   ├── zh-cn
│   │   │   │   └── diagnosticMessages.generated.json
│   │   │   └── zh-tw
│   │   │       └── diagnosticMessages.generated.json
│   │   ├── LICENSE.txt
│   │   ├── package.json
│   │   ├── README.md
│   │   ├── SECURITY.md
│   │   └── ThirdPartyNoticeText.txt
│   ├── undici-types
│   │   ├── agent.d.ts
│   │   ├── api.d.ts
│   │   ├── balanced-pool.d.ts
│   │   ├── cache.d.ts
│   │   ├── client.d.ts
│   │   ├── connector.d.ts
│   │   ├── content-type.d.ts
│   │   ├── cookies.d.ts
│   │   ├── diagnostics-channel.d.ts
│   │   ├── dispatcher.d.ts
│   │   ├── env-http-proxy-agent.d.ts
│   │   ├── errors.d.ts
│   │   ├── eventsource.d.ts
│   │   ├── fetch.d.ts
│   │   ├── file.d.ts
│   │   ├── filereader.d.ts
│   │   ├── formdata.d.ts
│   │   ├── global-dispatcher.d.ts
│   │   ├── global-origin.d.ts
│   │   ├── handlers.d.ts
│   │   ├── header.d.ts
│   │   ├── index.d.ts
│   │   ├── interceptors.d.ts
│   │   ├── LICENSE
│   │   ├── mock-agent.d.ts
│   │   ├── mock-client.d.ts
│   │   ├── mock-errors.d.ts
│   │   ├── mock-interceptor.d.ts
│   │   ├── mock-pool.d.ts
│   │   ├── package.json
│   │   ├── patch.d.ts
│   │   ├── pool-stats.d.ts
│   │   ├── pool.d.ts
│   │   ├── proxy-agent.d.ts
│   │   ├── readable.d.ts
│   │   ├── README.md
│   │   ├── retry-agent.d.ts
│   │   ├── retry-handler.d.ts
│   │   ├── util.d.ts
│   │   ├── webidl.d.ts
│   │   └── websocket.d.ts
│   ├── unpipe
│   │   ├── HISTORY.md
│   │   ├── index.js
│   │   ├── LICENSE
│   │   ├── package.json
│   │   └── README.md
│   ├── which
│   │   ├── bin
│   │   │   └── node-which
│   │   ├── CHANGELOG.md
│   │   ├── LICENSE
│   │   ├── package.json
│   │   ├── README.md
│   │   └── which.js
│   ├── wrap-ansi
│   │   ├── index.d.ts
│   │   ├── index.js
│   │   ├── license
│   │   ├── package.json
│   │   └── readme.md
│   ├── wrap-ansi-cjs
│   │   ├── index.js
│   │   ├── license
│   │   ├── node_modules
│   │   │   ├── ansi-regex
│   │   │   │   ├── index.d.ts
│   │   │   │   ├── index.js
│   │   │   │   ├── license
│   │   │   │   ├── package.json
│   │   │   │   └── readme.md
│   │   │   ├── ansi-styles
│   │   │   │   ├── index.d.ts
│   │   │   │   ├── index.js
│   │   │   │   ├── license
│   │   │   │   ├── package.json
│   │   │   │   └── readme.md
│   │   │   ├── emoji-regex
│   │   │   │   ├── es2015
│   │   │   │   │   ├── index.js
│   │   │   │   │   └── text.js
│   │   │   │   ├── index.d.ts
│   │   │   │   ├── index.js
│   │   │   │   ├── LICENSE-MIT.txt
│   │   │   │   ├── package.json
│   │   │   │   ├── README.md
│   │   │   │   └── text.js
│   │   │   ├── string-width
│   │   │   │   ├── index.d.ts
│   │   │   │   ├── index.js
│   │   │   │   ├── license
│   │   │   │   ├── package.json
│   │   │   │   └── readme.md
│   │   │   └── strip-ansi
│   │   │       ├── index.d.ts
│   │   │       ├── index.js
│   │   │       ├── license
│   │   │       ├── package.json
│   │   │       └── readme.md
│   │   ├── package.json
│   │   └── readme.md
│   └── zod
│       ├── index.cjs
│       ├── index.d.cts
│       ├── index.d.ts
│       ├── index.js
│       ├── LICENSE
│       ├── package.json
│       ├── README.md
│       ├── src
│       │   ├── index.ts
│       │   ├── v3
│       │   │   ├── benchmarks
│       │   │   │   ├── datetime.ts
│       │   │   │   ├── discriminatedUnion.ts
│       │   │   │   ├── index.ts
│       │   │   │   ├── ipv4.ts
│       │   │   │   ├── object.ts
│       │   │   │   ├── primitives.ts
│       │   │   │   ├── realworld.ts
│       │   │   │   ├── string.ts
│       │   │   │   └── union.ts
│       │   │   ├── errors.ts
│       │   │   ├── external.ts
│       │   │   ├── helpers
│       │   │   │   ├── enumUtil.ts
│       │   │   │   ├── errorUtil.ts
│       │   │   │   ├── parseUtil.ts
│       │   │   │   ├── partialUtil.ts
│       │   │   │   ├── typeAliases.ts
│       │   │   │   └── util.ts
│       │   │   ├── index.ts
│       │   │   ├── locales
│       │   │   │   └── en.ts
│       │   │   ├── standard-schema.ts
│       │   │   ├── tests
│       │   │   │   ├── all-errors.test.ts
│       │   │   │   ├── anyunknown.test.ts
│       │   │   │   ├── array.test.ts
│       │   │   │   ├── async-parsing.test.ts
│       │   │   │   ├── async-refinements.test.ts
│       │   │   │   ├── base.test.ts
│       │   │   │   ├── bigint.test.ts
│       │   │   │   ├── branded.test.ts
│       │   │   │   ├── catch.test.ts
│       │   │   │   ├── coerce.test.ts
│       │   │   │   ├── complex.test.ts
│       │   │   │   ├── custom.test.ts
│       │   │   │   ├── date.test.ts
│       │   │   │   ├── deepmasking.test.ts
│       │   │   │   ├── default.test.ts
│       │   │   │   ├── description.test.ts
│       │   │   │   ├── discriminated-unions.test.ts
│       │   │   │   ├── enum.test.ts
│       │   │   │   ├── error.test.ts
│       │   │   │   ├── firstparty.test.ts
│       │   │   │   ├── firstpartyschematypes.test.ts
│       │   │   │   ├── function.test.ts
│       │   │   │   ├── generics.test.ts
│       │   │   │   ├── instanceof.test.ts
│       │   │   │   ├── intersection.test.ts
│       │   │   │   ├── language-server.source.ts
│       │   │   │   ├── language-server.test.ts
│       │   │   │   ├── literal.test.ts
│       │   │   │   ├── map.test.ts
│       │   │   │   ├── masking.test.ts
│       │   │   │   ├── mocker.test.ts
│       │   │   │   ├── Mocker.ts
│       │   │   │   ├── nan.test.ts
│       │   │   │   ├── nativeEnum.test.ts
│       │   │   │   ├── nullable.test.ts
│       │   │   │   ├── number.test.ts
│       │   │   │   ├── object-augmentation.test.ts
│       │   │   │   ├── object-in-es5-env.test.ts
│       │   │   │   ├── object.test.ts
│       │   │   │   ├── optional.test.ts
│       │   │   │   ├── parser.test.ts
│       │   │   │   ├── parseUtil.test.ts
│       │   │   │   ├── partials.test.ts
│       │   │   │   ├── pickomit.test.ts
│       │   │   │   ├── pipeline.test.ts
│       │   │   │   ├── preprocess.test.ts
│       │   │   │   ├── primitive.test.ts
│       │   │   │   ├── promise.test.ts
│       │   │   │   ├── readonly.test.ts
│       │   │   │   ├── record.test.ts
│       │   │   │   ├── recursive.test.ts
│       │   │   │   ├── refine.test.ts
│       │   │   │   ├── safeparse.test.ts
│       │   │   │   ├── set.test.ts
│       │   │   │   ├── standard-schema.test.ts
│       │   │   │   ├── string.test.ts
│       │   │   │   ├── transformer.test.ts
│       │   │   │   ├── tuple.test.ts
│       │   │   │   ├── unions.test.ts
│       │   │   │   ├── validations.test.ts
│       │   │   │   └── void.test.ts
│       │   │   ├── types.ts
│       │   │   └── ZodError.ts
│       │   ├── v4
│       │   │   ├── classic
│       │   │   │   ├── checks.ts
│       │   │   │   ├── coerce.ts
│       │   │   │   ├── compat.ts
│       │   │   │   ├── errors.ts
│       │   │   │   ├── external.ts
│       │   │   │   ├── index.ts
│       │   │   │   ├── iso.ts
│       │   │   │   ├── parse.ts
│       │   │   │   ├── schemas.ts
│       │   │   │   └── tests
│       │   │   │       ├── anyunknown.test.ts
│       │   │   │       ├── array.test.ts
│       │   │   │       ├── assignability.test.ts
│       │   │   │       ├── async-parsing.test.ts
│       │   │   │       ├── async-refinements.test.ts
│       │   │   │       ├── base.test.ts
│       │   │   │       ├── bigint.test.ts
│       │   │   │       ├── brand.test.ts
│       │   │   │       ├── catch.test.ts
│       │   │   │       ├── coalesce.test.ts
│       │   │   │       ├── coerce.test.ts
│       │   │   │       ├── continuability.test.ts
│       │   │   │       ├── custom.test.ts
│       │   │   │       ├── date.test.ts
│       │   │   │       ├── datetime.test.ts
│       │   │   │       ├── default.test.ts
│       │   │   │       ├── description.test.ts
│       │   │   │       ├── discriminated-unions.test.ts
│       │   │   │       ├── enum.test.ts
│       │   │   │       ├── error-utils.test.ts
│       │   │   │       ├── error.test.ts
│       │   │   │       ├── file.test.ts
│       │   │   │       ├── firstparty.test.ts
│       │   │   │       ├── function.test.ts
│       │   │   │       ├── generics.test.ts
│       │   │   │       ├── index.test.ts
│       │   │   │       ├── instanceof.test.ts
│       │   │   │       ├── intersection.test.ts
│       │   │   │       ├── json.test.ts
│       │   │   │       ├── lazy.test.ts
│       │   │   │       ├── literal.test.ts
│       │   │   │       ├── map.test.ts
│       │   │   │       ├── nan.test.ts
│       │   │   │       ├── nested-refine.test.ts
│       │   │   │       ├── nonoptional.test.ts
│       │   │   │       ├── nullable.test.ts
│       │   │   │       ├── number.test.ts
│       │   │   │       ├── object.test.ts
│       │   │   │       ├── optional.test.ts
│       │   │   │       ├── partial.test.ts
│       │   │   │       ├── pickomit.test.ts
│       │   │   │       ├── pipe.test.ts
│       │   │   │       ├── prefault.test.ts
│       │   │   │       ├── preprocess.test.ts
│       │   │   │       ├── primitive.test.ts
│       │   │   │       ├── promise.test.ts
│       │   │   │       ├── prototypes.test.ts
│       │   │   │       ├── readonly.test.ts
│       │   │   │       ├── record.test.ts
│       │   │   │       ├── recursive-types.test.ts
│       │   │   │       ├── refine.test.ts
│       │   │   │       ├── registries.test.ts
│       │   │   │       ├── set.test.ts
│       │   │   │       ├── standard-schema.test.ts
│       │   │   │       ├── string-formats.test.ts
│       │   │   │       ├── string.test.ts
│       │   │   │       ├── stringbool.test.ts
│       │   │   │       ├── template-literal.test.ts
│       │   │   │       ├── to-json-schema.test.ts
│       │   │   │       ├── transform.test.ts
│       │   │   │       ├── tuple.test.ts
│       │   │   │       ├── union.test.ts
│       │   │   │       ├── validations.test.ts
│       │   │   │       └── void.test.ts
│       │   │   ├── core
│       │   │   │   ├── api.ts
│       │   │   │   ├── checks.ts
│       │   │   │   ├── config.ts
│       │   │   │   ├── core.ts
│       │   │   │   ├── doc.ts
│       │   │   │   ├── errors.ts
│       │   │   │   ├── function.ts
│       │   │   │   ├── index.ts
│       │   │   │   ├── json-schema.ts
│       │   │   │   ├── parse.ts
│       │   │   │   ├── regexes.ts
│       │   │   │   ├── registries.ts
│       │   │   │   ├── schemas.ts
│       │   │   │   ├── standard-schema.ts
│       │   │   │   ├── tests
│       │   │   │   │   ├── index.test.ts
│       │   │   │   │   └── locales
│       │   │   │   │       ├── be.test.ts
│       │   │   │   │       ├── en.test.ts
│       │   │   │   │       ├── ru.test.ts
│       │   │   │   │       └── tr.test.ts
│       │   │   │   ├── to-json-schema.ts
│       │   │   │   ├── util.ts
│       │   │   │   ├── versions.ts
│       │   │   │   └── zsf.ts
│       │   │   ├── index.ts
│       │   │   ├── locales
│       │   │   │   ├── ar.ts
│       │   │   │   ├── az.ts
│       │   │   │   ├── be.ts
│       │   │   │   ├── ca.ts
│       │   │   │   ├── cs.ts
│       │   │   │   ├── de.ts
│       │   │   │   ├── en.ts
│       │   │   │   ├── eo.ts
│       │   │   │   ├── es.ts
│       │   │   │   ├── fa.ts
│       │   │   │   ├── fi.ts
│       │   │   │   ├── fr-CA.ts
│       │   │   │   ├── fr.ts
│       │   │   │   ├── he.ts
│       │   │   │   ├── hu.ts
│       │   │   │   ├── id.ts
│       │   │   │   ├── index.ts
│       │   │   │   ├── it.ts
│       │   │   │   ├── ja.ts
│       │   │   │   ├── kh.ts
│       │   │   │   ├── ko.ts
│       │   │   │   ├── mk.ts
│       │   │   │   ├── ms.ts
│       │   │   │   ├── nl.ts
│       │   │   │   ├── no.ts
│       │   │   │   ├── ota.ts
│       │   │   │   ├── pl.ts
│       │   │   │   ├── ps.ts
│       │   │   │   ├── pt.ts
│       │   │   │   ├── ru.ts
│       │   │   │   ├── sl.ts
│       │   │   │   ├── sv.ts
│       │   │   │   ├── ta.ts
│       │   │   │   ├── th.ts
│       │   │   │   ├── tr.ts
│       │   │   │   ├── ua.ts
│       │   │   │   ├── ur.ts
│       │   │   │   ├── vi.ts
│       │   │   │   ├── zh-CN.ts
│       │   │   │   └── zh-TW.ts
│       │   │   └── mini
│       │   │       ├── checks.ts
│       │   │       ├── coerce.ts
│       │   │       ├── external.ts
│       │   │       ├── index.ts
│       │   │       ├── iso.ts
│       │   │       ├── parse.ts
│       │   │       ├── schemas.ts
│       │   │       └── tests
│       │   │           ├── assignability.test.ts
│       │   │           ├── brand.test.ts
│       │   │           ├── checks.test.ts
│       │   │           ├── computed.test.ts
│       │   │           ├── error.test.ts
│       │   │           ├── functions.test.ts
│       │   │           ├── index.test.ts
│       │   │           ├── number.test.ts
│       │   │           ├── object.test.ts
│       │   │           ├── prototypes.test.ts
│       │   │           ├── recursive-types.test.ts
│       │   │           └── string.test.ts
│       │   └── v4-mini
│       │       └── index.ts
│       ├── v3
│       │   ├── errors.cjs
│       │   ├── errors.d.cts
│       │   ├── errors.d.ts
│       │   ├── errors.js
│       │   ├── external.cjs
│       │   ├── external.d.cts
│       │   ├── external.d.ts
│       │   ├── external.js
│       │   ├── helpers
│       │   │   ├── enumUtil.cjs
│       │   │   ├── enumUtil.d.cts
│       │   │   ├── enumUtil.d.ts
│       │   │   ├── enumUtil.js
│       │   │   ├── errorUtil.cjs
│       │   │   ├── errorUtil.d.cts
│       │   │   ├── errorUtil.d.ts
│       │   │   ├── errorUtil.js
│       │   │   ├── parseUtil.cjs
│       │   │   ├── parseUtil.d.cts
│       │   │   ├── parseUtil.d.ts
│       │   │   ├── parseUtil.js
│       │   │   ├── partialUtil.cjs
│       │   │   ├── partialUtil.d.cts
│       │   │   ├── partialUtil.d.ts
│       │   │   ├── partialUtil.js
│       │   │   ├── typeAliases.cjs
│       │   │   ├── typeAliases.d.cts
│       │   │   ├── typeAliases.d.ts
│       │   │   ├── typeAliases.js
│       │   │   ├── util.cjs
│       │   │   ├── util.d.cts
│       │   │   ├── util.d.ts
│       │   │   └── util.js
│       │   ├── index.cjs
│       │   ├── index.d.cts
│       │   ├── index.d.ts
│       │   ├── index.js
│       │   ├── locales
│       │   │   ├── en.cjs
│       │   │   ├── en.d.cts
│       │   │   ├── en.d.ts
│       │   │   └── en.js
│       │   ├── standard-schema.cjs
│       │   ├── standard-schema.d.cts
│       │   ├── standard-schema.d.ts
│       │   ├── standard-schema.js
│       │   ├── types.cjs
│       │   ├── types.d.cts
│       │   ├── types.d.ts
│       │   ├── types.js
│       │   ├── ZodError.cjs
│       │   ├── ZodError.d.cts
│       │   ├── ZodError.d.ts
│       │   └── ZodError.js
│       ├── v4
│       │   ├── classic
│       │   │   ├── checks.cjs
│       │   │   ├── checks.d.cts
│       │   │   ├── checks.d.ts
│       │   │   ├── checks.js
│       │   │   ├── coerce.cjs
│       │   │   ├── coerce.d.cts
│       │   │   ├── coerce.d.ts
│       │   │   ├── coerce.js
│       │   │   ├── compat.cjs
│       │   │   ├── compat.d.cts
│       │   │   ├── compat.d.ts
│       │   │   ├── compat.js
│       │   │   ├── errors.cjs
│       │   │   ├── errors.d.cts
│       │   │   ├── errors.d.ts
│       │   │   ├── errors.js
│       │   │   ├── external.cjs
│       │   │   ├── external.d.cts
│       │   │   ├── external.d.ts
│       │   │   ├── external.js
│       │   │   ├── index.cjs
│       │   │   ├── index.d.cts
│       │   │   ├── index.d.ts
│       │   │   ├── index.js
│       │   │   ├── iso.cjs
│       │   │   ├── iso.d.cts
│       │   │   ├── iso.d.ts
│       │   │   ├── iso.js
│       │   │   ├── parse.cjs
│       │   │   ├── parse.d.cts
│       │   │   ├── parse.d.ts
│       │   │   ├── parse.js
│       │   │   ├── schemas.cjs
│       │   │   ├── schemas.d.cts
│       │   │   ├── schemas.d.ts
│       │   │   └── schemas.js
│       │   ├── core
│       │   │   ├── api.cjs
│       │   │   ├── api.d.cts
│       │   │   ├── api.d.ts
│       │   │   ├── api.js
│       │   │   ├── checks.cjs
│       │   │   ├── checks.d.cts
│       │   │   ├── checks.d.ts
│       │   │   ├── checks.js
│       │   │   ├── core.cjs
│       │   │   ├── core.d.cts
│       │   │   ├── core.d.ts
│       │   │   ├── core.js
│       │   │   ├── doc.cjs
│       │   │   ├── doc.d.cts
│       │   │   ├── doc.d.ts
│       │   │   ├── doc.js
│       │   │   ├── errors.cjs
│       │   │   ├── errors.d.cts
│       │   │   ├── errors.d.ts
│       │   │   ├── errors.js
│       │   │   ├── function.cjs
│       │   │   ├── function.d.cts
│       │   │   ├── function.d.ts
│       │   │   ├── function.js
│       │   │   ├── index.cjs
│       │   │   ├── index.d.cts
│       │   │   ├── index.d.ts
│       │   │   ├── index.js
│       │   │   ├── json-schema.cjs
│       │   │   ├── json-schema.d.cts
│       │   │   ├── json-schema.d.ts
│       │   │   ├── json-schema.js
│       │   │   ├── parse.cjs
│       │   │   ├── parse.d.cts
│       │   │   ├── parse.d.ts
│       │   │   ├── parse.js
│       │   │   ├── regexes.cjs
│       │   │   ├── regexes.d.cts
│       │   │   ├── regexes.d.ts
│       │   │   ├── regexes.js
│       │   │   ├── registries.cjs
│       │   │   ├── registries.d.cts
│       │   │   ├── registries.d.ts
│       │   │   ├── registries.js
│       │   │   ├── schemas.cjs
│       │   │   ├── schemas.d.cts
│       │   │   ├── schemas.d.ts
│       │   │   ├── schemas.js
│       │   │   ├── standard-schema.cjs
│       │   │   ├── standard-schema.d.cts
│       │   │   ├── standard-schema.d.ts
│       │   │   ├── standard-schema.js
│       │   │   ├── to-json-schema.cjs
│       │   │   ├── to-json-schema.d.cts
│       │   │   ├── to-json-schema.d.ts
│       │   │   ├── to-json-schema.js
│       │   │   ├── util.cjs
│       │   │   ├── util.d.cts
│       │   │   ├── util.d.ts
│       │   │   ├── util.js
│       │   │   ├── versions.cjs
│       │   │   ├── versions.d.cts
│       │   │   ├── versions.d.ts
│       │   │   └── versions.js
│       │   ├── index.cjs
│       │   ├── index.d.cts
│       │   ├── index.d.ts
│       │   ├── index.js
│       │   ├── locales
│       │   │   ├── ar.cjs
│       │   │   ├── ar.d.cts
│       │   │   ├── ar.d.ts
│       │   │   ├── ar.js
│       │   │   ├── az.cjs
│       │   │   ├── az.d.cts
│       │   │   ├── az.d.ts
│       │   │   ├── az.js
│       │   │   ├── be.cjs
│       │   │   ├── be.d.cts
│       │   │   ├── be.d.ts
│       │   │   ├── be.js
│       │   │   ├── ca.cjs
│       │   │   ├── ca.d.cts
│       │   │   ├── ca.d.ts
│       │   │   ├── ca.js
│       │   │   ├── cs.cjs
│       │   │   ├── cs.d.cts
│       │   │   ├── cs.d.ts
│       │   │   ├── cs.js
│       │   │   ├── de.cjs
│       │   │   ├── de.d.cts
│       │   │   ├── de.d.ts
│       │   │   ├── de.js
│       │   │   ├── en.cjs
│       │   │   ├── en.d.cts
│       │   │   ├── en.d.ts
│       │   │   ├── en.js
│       │   │   ├── eo.cjs
│       │   │   ├── eo.d.cts
│       │   │   ├── eo.d.ts
│       │   │   ├── eo.js
│       │   │   ├── es.cjs
│       │   │   ├── es.d.cts
│       │   │   ├── es.d.ts
│       │   │   ├── es.js
│       │   │   ├── fa.cjs
│       │   │   ├── fa.d.cts
│       │   │   ├── fa.d.ts
│       │   │   ├── fa.js
│       │   │   ├── fi.cjs
│       │   │   ├── fi.d.cts
│       │   │   ├── fi.d.ts
│       │   │   ├── fi.js
│       │   │   ├── fr-CA.cjs
│       │   │   ├── fr-CA.d.cts
│       │   │   ├── fr-CA.d.ts
│       │   │   ├── fr-CA.js
│       │   │   ├── fr.cjs
│       │   │   ├── fr.d.cts
│       │   │   ├── fr.d.ts
│       │   │   ├── fr.js
│       │   │   ├── he.cjs
│       │   │   ├── he.d.cts
│       │   │   ├── he.d.ts
│       │   │   ├── he.js
│       │   │   ├── hu.cjs
│       │   │   ├── hu.d.cts
│       │   │   ├── hu.d.ts
│       │   │   ├── hu.js
│       │   │   ├── id.cjs
│       │   │   ├── id.d.cts
│       │   │   ├── id.d.ts
│       │   │   ├── id.js
│       │   │   ├── index.cjs
│       │   │   ├── index.d.cts
│       │   │   ├── index.d.ts
│       │   │   ├── index.js
│       │   │   ├── it.cjs
│       │   │   ├── it.d.cts
│       │   │   ├── it.d.ts
│       │   │   ├── it.js
│       │   │   ├── ja.cjs
│       │   │   ├── ja.d.cts
│       │   │   ├── ja.d.ts
│       │   │   ├── ja.js
│       │   │   ├── kh.cjs
│       │   │   ├── kh.d.cts
│       │   │   ├── kh.d.ts
│       │   │   ├── kh.js
│       │   │   ├── ko.cjs
│       │   │   ├── ko.d.cts
│       │   │   ├── ko.d.ts
│       │   │   ├── ko.js
│       │   │   ├── mk.cjs
│       │   │   ├── mk.d.cts
│       │   │   ├── mk.d.ts
│       │   │   ├── mk.js
│       │   │   ├── ms.cjs
│       │   │   ├── ms.d.cts
│       │   │   ├── ms.d.ts
│       │   │   ├── ms.js
│       │   │   ├── nl.cjs
│       │   │   ├── nl.d.cts
│       │   │   ├── nl.d.ts
│       │   │   ├── nl.js
│       │   │   ├── no.cjs
│       │   │   ├── no.d.cts
│       │   │   ├── no.d.ts
│       │   │   ├── no.js
│       │   │   ├── ota.cjs
│       │   │   ├── ota.d.cts
│       │   │   ├── ota.d.ts
│       │   │   ├── ota.js
│       │   │   ├── pl.cjs
│       │   │   ├── pl.d.cts
│       │   │   ├── pl.d.ts
│       │   │   ├── pl.js
│       │   │   ├── ps.cjs
│       │   │   ├── ps.d.cts
│       │   │   ├── ps.d.ts
│       │   │   ├── ps.js
│       │   │   ├── pt.cjs
│       │   │   ├── pt.d.cts
│       │   │   ├── pt.d.ts
│       │   │   ├── pt.js
│       │   │   ├── ru.cjs
│       │   │   ├── ru.d.cts
│       │   │   ├── ru.d.ts
│       │   │   ├── ru.js
│       │   │   ├── sl.cjs
│       │   │   ├── sl.d.cts
│       │   │   ├── sl.d.ts
│       │   │   ├── sl.js
│       │   │   ├── sv.cjs
│       │   │   ├── sv.d.cts
│       │   │   ├── sv.d.ts
│       │   │   ├── sv.js
│       │   │   ├── ta.cjs
│       │   │   ├── ta.d.cts
│       │   │   ├── ta.d.ts
│       │   │   ├── ta.js
│       │   │   ├── th.cjs
│       │   │   ├── th.d.cts
│       │   │   ├── th.d.ts
│       │   │   ├── th.js
│       │   │   ├── tr.cjs
│       │   │   ├── tr.d.cts
│       │   │   ├── tr.d.ts
│       │   │   ├── tr.js
│       │   │   ├── ua.cjs
│       │   │   ├── ua.d.cts
│       │   │   ├── ua.d.ts
│       │   │   ├── ua.js
│       │   │   ├── ur.cjs
│       │   │   ├── ur.d.cts
│       │   │   ├── ur.d.ts
│       │   │   ├── ur.js
│       │   │   ├── vi.cjs
│       │   │   ├── vi.d.cts
│       │   │   ├── vi.d.ts
│       │   │   ├── vi.js
│       │   │   ├── zh-CN.cjs
│       │   │   ├── zh-CN.d.cts
│       │   │   ├── zh-CN.d.ts
│       │   │   ├── zh-CN.js
│       │   │   ├── zh-TW.cjs
│       │   │   ├── zh-TW.d.cts
│       │   │   ├── zh-TW.d.ts
│       │   │   └── zh-TW.js
│       │   └── mini
│       │       ├── checks.cjs
│       │       ├── checks.d.cts
│       │       ├── checks.d.ts
│       │       ├── checks.js
│       │       ├── coerce.cjs
│       │       ├── coerce.d.cts
│       │       ├── coerce.d.ts
│       │       ├── coerce.js
│       │       ├── external.cjs
│       │       ├── external.d.cts
│       │       ├── external.d.ts
│       │       ├── external.js
│       │       ├── index.cjs
│       │       ├── index.d.cts
│       │       ├── index.d.ts
│       │       ├── index.js
│       │       ├── iso.cjs
│       │       ├── iso.d.cts
│       │       ├── iso.d.ts
│       │       ├── iso.js
│       │       ├── parse.cjs
│       │       ├── parse.d.cts
│       │       ├── parse.d.ts
│       │       ├── parse.js
│       │       ├── schemas.cjs
│       │       ├── schemas.d.cts
│       │       ├── schemas.d.ts
│       │       └── schemas.js
│       └── v4-mini
│           ├── index.cjs
│           ├── index.d.cts
│           ├── index.d.ts
│           └── index.js
├── package-lock.json
├── package.json
├── README.ko.md
├── README.kr.md
├── README.md
├── src
│   ├── agentDownloader.ts
│   ├── agentManager.ts
│   ├── aiAnalysisService.ts
│   ├── analytics.ts
│   ├── githubIntegration.ts
│   ├── index.ts
│   ├── projectAnalyzer.ts
│   └── splashCommand.ts
├── start.sh
├── test-CLAUDE.md
├── test-server.js
├── TROUBLESHOOTING.md
├── tsconfig.json
└── USER_GUIDE.md
```

# Files

--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------

```html
  1 | <!DOCTYPE html>
  2 | <html lang="en">
  3 | <head>
  4 |     <meta charset="UTF-8">
  5 |     <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6 |     <title>Pair-Role MCP Server - Smart Role Assignment for Development Teams</title>
  7 |     <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/tailwind.min.css" rel="stylesheet">
  8 |     <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
  9 |     <style>
 10 |         .gradient-bg {
 11 |             background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
 12 |         }
 13 |         .role-card {
 14 |             transition: all 0.3s ease;
 15 |         }
 16 |         .role-card:hover {
 17 |             transform: translateY(-5px);
 18 |             box-shadow: 0 10px 30px rgba(0,0,0,0.2);
 19 |         }
 20 |         .category-badge {
 21 |             transition: all 0.2s ease;
 22 |         }
 23 |         .category-badge:hover {
 24 |             transform: scale(1.05);
 25 |         }
 26 |         .feature-icon {
 27 |             transition: all 0.3s ease;
 28 |         }
 29 |         .feature-icon:hover {
 30 |             transform: rotate(10deg) scale(1.1);
 31 |         }
 32 |         .code-block {
 33 |             background-color: #1e1e1e;
 34 |             color: #d4d4d4;
 35 |             border-radius: 8px;
 36 |             padding: 16px;
 37 |             font-family: 'Consolas', 'Monaco', monospace;
 38 |             overflow-x: auto;
 39 |         }
 40 |         .tab-content {
 41 |             display: none;
 42 |         }
 43 |         .tab-content.active {
 44 |             display: block;
 45 |         }
 46 |         .hero-animation {
 47 |             animation: float 6s ease-in-out infinite;
 48 |         }
 49 |         @keyframes float {
 50 |             0% { transform: translatey(0px); }
 51 |             50% { transform: translatey(-20px); }
 52 |             100% { transform: translatey(0px); }
 53 |         }
 54 |     </style>
 55 | </head>
 56 | <body class="bg-gray-50">
 57 |     <!-- Navigation -->
 58 |     <nav class="bg-white shadow-lg sticky top-0 z-50">
 59 |         <div class="container mx-auto px-6 py-4">
 60 |             <div class="flex items-center justify-between">
 61 |                 <div class="flex items-center">
 62 |                     <i class="fas fa-users-cog text-3xl text-purple-600 mr-3"></i>
 63 |                     <h1 class="text-2xl font-bold text-gray-800">Pair-Role MCP Server</h1>
 64 |                 </div>
 65 |                 <div class="flex space-x-6">
 66 |                     <a href="#features" class="text-gray-700 hover:text-purple-600 transition">Features</a>
 67 |                     <a href="#roles" class="text-gray-700 hover:text-purple-600 transition">Roles</a>
 68 |                     <a href="#usage" class="text-gray-700 hover:text-purple-600 transition">Usage</a>
 69 |                     <a href="#installation" class="text-gray-700 hover:text-purple-600 transition">Installation</a>
 70 |                     <a href="https://github.com/hongsw/claude-agents-power-mcp-server" class="text-gray-700 hover:text-purple-600 transition">
 71 |                         <i class="fab fa-github text-2xl"></i>
 72 |                     </a>
 73 |                 </div>
 74 |             </div>
 75 |         </div>
 76 |     </nav>
 77 | 
 78 |     <!-- Hero Section -->
 79 |     <section class="gradient-bg text-white py-20">
 80 |         <div class="container mx-auto px-6">
 81 |             <div class="flex flex-col md:flex-row items-center">
 82 |                 <div class="md:w-1/2 mb-10 md:mb-0">
 83 |                     <h2 class="text-4xl md:text-5xl font-bold mb-6">
 84 |                         🎯 Smart Role Assignment for Development Teams
 85 |                     </h2>
 86 |                     <p class="text-xl mb-8 text-purple-100">
 87 |                         An intelligent MCP server that analyzes your project and recommends the perfect team composition from 100+ professional roles across all company departments.
 88 |                     </p>
 89 |                     <div class="flex space-x-4">
 90 |                         <a href="#installation" class="bg-white text-purple-700 px-8 py-3 rounded-lg font-bold hover:bg-purple-100 transition">
 91 |                             Get Started
 92 |                         </a>
 93 |                         <a href="https://github.com/hongsw/claude-agents-power-mcp-server" class="border-2 border-white text-white px-8 py-3 rounded-lg font-bold hover:bg-white hover:text-purple-700 transition">
 94 |                             View on GitHub
 95 |                         </a>
 96 |                     </div>
 97 |                 </div>
 98 |                 <div class="md:w-1/2 flex justify-center">
 99 |                     <div class="hero-animation">
100 |                         <div class="bg-white bg-opacity-20 backdrop-blur-lg rounded-lg p-8 shadow-2xl">
101 |                             <div class="text-center mb-4">
102 |                                 <i class="fas fa-project-diagram text-6xl mb-4"></i>
103 |                                 <h3 class="text-2xl font-bold">AI-Powered Team Builder</h3>
104 |                             </div>
105 |                             <div class="space-y-2">
106 |                                 <div class="bg-white bg-opacity-20 rounded px-4 py-2">
107 |                                     <i class="fas fa-check-circle mr-2"></i> Analyze Project
108 |                                 </div>
109 |                                 <div class="bg-white bg-opacity-20 rounded px-4 py-2">
110 |                                     <i class="fas fa-users mr-2"></i> Recommend Roles
111 |                                 </div>
112 |                                 <div class="bg-white bg-opacity-20 rounded px-4 py-2">
113 |                                     <i class="fas fa-download mr-2"></i> Install Agents
114 |                                 </div>
115 |                             </div>
116 |                         </div>
117 |                     </div>
118 |                 </div>
119 |             </div>
120 |         </div>
121 |     </section>
122 | 
123 |     <!-- Stats Section -->
124 |     <section class="py-12 bg-white">
125 |         <div class="container mx-auto px-6">
126 |             <div class="grid grid-cols-2 md:grid-cols-4 gap-6 text-center">
127 |                 <div class="p-6">
128 |                     <div class="text-4xl font-bold text-purple-600">100+</div>
129 |                     <div class="text-gray-600 mt-2">Professional Roles</div>
130 |                 </div>
131 |                 <div class="p-6">
132 |                     <div class="text-4xl font-bold text-purple-600">8</div>
133 |                     <div class="text-gray-600 mt-2">Departments</div>
134 |                 </div>
135 |                 <div class="p-6">
136 |                     <div class="text-4xl font-bold text-purple-600">2</div>
137 |                     <div class="text-gray-600 mt-2">Languages</div>
138 |                 </div>
139 |                 <div class="p-6">
140 |                     <div class="text-4xl font-bold text-purple-600">∞</div>
141 |                     <div class="text-gray-600 mt-2">Team Combinations</div>
142 |                 </div>
143 |             </div>
144 |         </div>
145 |     </section>
146 | 
147 |     <!-- Features Section -->
148 |     <section id="features" class="py-20 bg-gray-50">
149 |         <div class="container mx-auto px-6">
150 |             <h2 class="text-3xl font-bold text-center text-gray-800 mb-16">
151 |                 🌟 Key Features
152 |             </h2>
153 |             <div class="grid md:grid-cols-3 gap-8">
154 |                 <div class="bg-white rounded-lg shadow-lg p-8 text-center role-card">
155 |                     <div class="feature-icon inline-block mb-4">
156 |                         <i class="fas fa-search text-5xl text-purple-600"></i>
157 |                     </div>
158 |                     <h3 class="text-xl font-bold mb-4">Intelligent Project Analysis</h3>
159 |                     <p class="text-gray-600">
160 |                         Automatically detects project type, frameworks, and complexity to provide smart role recommendations based on your tech stack.
161 |                     </p>
162 |                 </div>
163 |                 <div class="bg-white rounded-lg shadow-lg p-8 text-center role-card">
164 |                     <div class="feature-icon inline-block mb-4">
165 |                         <i class="fas fa-users text-5xl text-purple-600"></i>
166 |                     </div>
167 |                     <h3 class="text-xl font-bold mb-4">100+ Professional Roles</h3>
168 |                     <p class="text-gray-600">
169 |                         Comprehensive coverage across Technology, Data, Product, Marketing, Operations, Finance, HR, and Executive roles.
170 |                     </p>
171 |                 </div>
172 |                 <div class="bg-white rounded-lg shadow-lg p-8 text-center role-card">
173 |                     <div class="feature-icon inline-block mb-4">
174 |                         <i class="fas fa-globe text-5xl text-purple-600"></i>
175 |                     </div>
176 |                     <h3 class="text-xl font-bold mb-4">Multi-Language Support</h3>
177 |                     <p class="text-gray-600">
178 |                         Available in English and Korean, supporting global standards and local business contexts.
179 |                     </p>
180 |                 </div>
181 |             </div>
182 |         </div>
183 |     </section>
184 | 
185 |     <!-- Roles Section -->
186 |     <section id="roles" class="py-20 bg-white">
187 |         <div class="container mx-auto px-6">
188 |             <h2 class="text-3xl font-bold text-center text-gray-800 mb-16">
189 |                 📋 Available Roles by Department
190 |             </h2>
191 |             
192 |             <!-- Department Tabs -->
193 |             <div class="flex flex-wrap justify-center mb-8 gap-2">
194 |                 <button onclick="showDepartment('tech')" class="category-badge bg-purple-600 text-white px-4 py-2 rounded-full text-sm font-semibold">
195 |                     🔧 Technology (20)
196 |                 </button>
197 |                 <button onclick="showDepartment('data')" class="category-badge bg-blue-600 text-white px-4 py-2 rounded-full text-sm font-semibold">
198 |                     📊 Data & Analytics (15)
199 |                 </button>
200 |                 <button onclick="showDepartment('product')" class="category-badge bg-pink-600 text-white px-4 py-2 rounded-full text-sm font-semibold">
201 |                     🎨 Product & Design (10)
202 |                 </button>
203 |                 <button onclick="showDepartment('marketing')" class="category-badge bg-green-600 text-white px-4 py-2 rounded-full text-sm font-semibold">
204 |                     📈 Marketing & Sales (10)
205 |                 </button>
206 |                 <button onclick="showDepartment('operations')" class="category-badge bg-yellow-600 text-white px-4 py-2 rounded-full text-sm font-semibold">
207 |                     ⚙️ Operations (15)
208 |                 </button>
209 |                 <button onclick="showDepartment('finance')" class="category-badge bg-red-600 text-white px-4 py-2 rounded-full text-sm font-semibold">
210 |                     💰 Finance (10)
211 |                 </button>
212 |                 <button onclick="showDepartment('hr')" class="category-badge bg-indigo-600 text-white px-4 py-2 rounded-full text-sm font-semibold">
213 |                     👥 HR (10)
214 |                 </button>
215 |                 <button onclick="showDepartment('executive')" class="category-badge bg-gray-800 text-white px-4 py-2 rounded-full text-sm font-semibold">
216 |                     🏢 Executive (10)
217 |                 </button>
218 |             </div>
219 | 
220 |             <!-- Department Content -->
221 |             <div id="tech" class="tab-content active">
222 |                 <div class="grid md:grid-cols-3 gap-6">
223 |                     <div class="role-card bg-gray-50 p-6 rounded-lg">
224 |                         <h4 class="font-bold text-lg mb-2">Software Engineer</h4>
225 |                         <p class="text-gray-600 text-sm mb-3">Full-stack development, system design</p>
226 |                         <div class="flex flex-wrap gap-2">
227 |                             <span class="bg-purple-100 text-purple-800 px-2 py-1 rounded text-xs">Bash</span>
228 |                             <span class="bg-purple-100 text-purple-800 px-2 py-1 rounded text-xs">Read</span>
229 |                             <span class="bg-purple-100 text-purple-800 px-2 py-1 rounded text-xs">Write</span>
230 |                             <span class="bg-purple-100 text-purple-800 px-2 py-1 rounded text-xs">Edit</span>
231 |                         </div>
232 |                     </div>
233 |                     <div class="role-card bg-gray-50 p-6 rounded-lg">
234 |                         <h4 class="font-bold text-lg mb-2">Frontend Developer</h4>
235 |                         <p class="text-gray-600 text-sm mb-3">React, Vue, Angular, UI/UX</p>
236 |                         <div class="flex flex-wrap gap-2">
237 |                             <span class="bg-purple-100 text-purple-800 px-2 py-1 rounded text-xs">Read</span>
238 |                             <span class="bg-purple-100 text-purple-800 px-2 py-1 rounded text-xs">Write</span>
239 |                             <span class="bg-purple-100 text-purple-800 px-2 py-1 rounded text-xs">Edit</span>
240 |                             <span class="bg-purple-100 text-purple-800 px-2 py-1 rounded text-xs">Bash</span>
241 |                         </div>
242 |                     </div>
243 |                     <div class="role-card bg-gray-50 p-6 rounded-lg">
244 |                         <h4 class="font-bold text-lg mb-2">Backend Developer</h4>
245 |                         <p class="text-gray-600 text-sm mb-3">APIs, databases, server architecture</p>
246 |                         <div class="flex flex-wrap gap-2">
247 |                             <span class="bg-purple-100 text-purple-800 px-2 py-1 rounded text-xs">Bash</span>
248 |                             <span class="bg-purple-100 text-purple-800 px-2 py-1 rounded text-xs">Read</span>
249 |                             <span class="bg-purple-100 text-purple-800 px-2 py-1 rounded text-xs">Write</span>
250 |                             <span class="bg-purple-100 text-purple-800 px-2 py-1 rounded text-xs">Edit</span>
251 |                         </div>
252 |                     </div>
253 |                     <!-- More roles... -->
254 |                 </div>
255 |                 <p class="text-center mt-6 text-gray-600">
256 |                     + 17 more technology roles including DevOps, Security, Cloud, Mobile, QA, and more!
257 |                 </p>
258 |             </div>
259 | 
260 |             <div id="data" class="tab-content">
261 |                 <div class="grid md:grid-cols-3 gap-6">
262 |                     <div class="role-card bg-gray-50 p-6 rounded-lg">
263 |                         <h4 class="font-bold text-lg mb-2">Data Scientist</h4>
264 |                         <p class="text-gray-600 text-sm mb-3">ML modeling, statistical analysis</p>
265 |                         <div class="flex flex-wrap gap-2">
266 |                             <span class="bg-blue-100 text-blue-800 px-2 py-1 rounded text-xs">Bash</span>
267 |                             <span class="bg-blue-100 text-blue-800 px-2 py-1 rounded text-xs">Read</span>
268 |                             <span class="bg-blue-100 text-blue-800 px-2 py-1 rounded text-xs">Write</span>
269 |                         </div>
270 |                     </div>
271 |                     <div class="role-card bg-gray-50 p-6 rounded-lg">
272 |                         <h4 class="font-bold text-lg mb-2">Data Analyst</h4>
273 |                         <p class="text-gray-600 text-sm mb-3">Business insights, reporting</p>
274 |                         <div class="flex flex-wrap gap-2">
275 |                             <span class="bg-blue-100 text-blue-800 px-2 py-1 rounded text-xs">Read</span>
276 |                             <span class="bg-blue-100 text-blue-800 px-2 py-1 rounded text-xs">Write</span>
277 |                             <span class="bg-blue-100 text-blue-800 px-2 py-1 rounded text-xs">Bash</span>
278 |                         </div>
279 |                     </div>
280 |                     <div class="role-card bg-gray-50 p-6 rounded-lg">
281 |                         <h4 class="font-bold text-lg mb-2">Business Intelligence Analyst</h4>
282 |                         <p class="text-gray-600 text-sm mb-3">Dashboards, BI tools</p>
283 |                         <div class="flex flex-wrap gap-2">
284 |                             <span class="bg-blue-100 text-blue-800 px-2 py-1 rounded text-xs">Read</span>
285 |                             <span class="bg-blue-100 text-blue-800 px-2 py-1 rounded text-xs">Write</span>
286 |                             <span class="bg-blue-100 text-blue-800 px-2 py-1 rounded text-xs">Bash</span>
287 |                         </div>
288 |                     </div>
289 |                 </div>
290 |                 <p class="text-center mt-6 text-gray-600">
291 |                     + 12 more data & analytics roles including Analytics Engineer, Marketing Analyst, and more!
292 |                 </p>
293 |             </div>
294 | 
295 |             <div id="product" class="tab-content">
296 |                 <div class="grid md:grid-cols-3 gap-6">
297 |                     <div class="role-card bg-gray-50 p-6 rounded-lg">
298 |                         <h4 class="font-bold text-lg mb-2">Product Manager</h4>
299 |                         <p class="text-gray-600 text-sm mb-3">Product strategy, roadmap</p>
300 |                         <div class="flex flex-wrap gap-2">
301 |                             <span class="bg-pink-100 text-pink-800 px-2 py-1 rounded text-xs">Read</span>
302 |                             <span class="bg-pink-100 text-pink-800 px-2 py-1 rounded text-xs">Write</span>
303 |                         </div>
304 |                     </div>
305 |                     <div class="role-card bg-gray-50 p-6 rounded-lg">
306 |                         <h4 class="font-bold text-lg mb-2">UX Designer</h4>
307 |                         <p class="text-gray-600 text-sm mb-3">User research, wireframes</p>
308 |                         <div class="flex flex-wrap gap-2">
309 |                             <span class="bg-pink-100 text-pink-800 px-2 py-1 rounded text-xs">Read</span>
310 |                             <span class="bg-pink-100 text-pink-800 px-2 py-1 rounded text-xs">Write</span>
311 |                         </div>
312 |                     </div>
313 |                     <div class="role-card bg-gray-50 p-6 rounded-lg">
314 |                         <h4 class="font-bold text-lg mb-2">UI Designer</h4>
315 |                         <p class="text-gray-600 text-sm mb-3">Visual design, prototypes</p>
316 |                         <div class="flex flex-wrap gap-2">
317 |                             <span class="bg-pink-100 text-pink-800 px-2 py-1 rounded text-xs">Read</span>
318 |                             <span class="bg-pink-100 text-pink-800 px-2 py-1 rounded text-xs">Write</span>
319 |                         </div>
320 |                     </div>
321 |                 </div>
322 |                 <p class="text-center mt-6 text-gray-600">
323 |                     + 7 more product & design roles including Product Designer, UX Researcher, and more!
324 |                 </p>
325 |             </div>
326 | 
327 |             <!-- Other department tabs... -->
328 |         </div>
329 |     </section>
330 | 
331 |     <!-- Usage Examples Section -->
332 |     <section id="usage" class="py-20 bg-gray-50">
333 |         <div class="container mx-auto px-6">
334 |             <h2 class="text-3xl font-bold text-center text-gray-800 mb-16">
335 |                 🎯 Usage Examples
336 |             </h2>
337 |             
338 |             <div class="grid md:grid-cols-3 gap-8">
339 |                 <!-- Startup Example -->
340 |                 <div class="bg-white rounded-lg shadow-lg p-8">
341 |                     <div class="text-2xl mb-4">🚀</div>
342 |                     <h3 class="text-xl font-bold mb-4">Startup MVP Development</h3>
343 |                     <div class="code-block mb-4">
344 |                         <pre><code># Analyze project
345 | mcp__pair-role__analyze-project
346 | 
347 | # Install startup team
348 | mcp__pair-role__install-agents [
349 |   "product-manager",
350 |   "frontend-developer",
351 |   "backend-developer",
352 |   "growth-marketing-manager"
353 | ]</code></pre>
354 |                     </div>
355 |                     <p class="text-gray-600">Perfect for building your minimum viable product with a lean team.</p>
356 |                 </div>
357 | 
358 |                 <!-- Enterprise Example -->
359 |                 <div class="bg-white rounded-lg shadow-lg p-8">
360 |                     <div class="text-2xl mb-4">🏢</div>
361 |                     <h3 class="text-xl font-bold mb-4">Enterprise Application</h3>
362 |                     <div class="code-block mb-4">
363 |                         <pre><code># Get enterprise recommendations
364 | mcp__pair-role__recommend-by-keywords [
365 |   "enterprise", "security", 
366 |   "scalability", "compliance"
367 | ]
368 | 
369 | # Install enterprise team
370 | mcp__pair-role__install-agents [
371 |   "solution-architect",
372 |   "security-engineer",
373 |   "devops-engineer",
374 |   "compliance-manager"
375 | ]</code></pre>
376 |                     </div>
377 |                     <p class="text-gray-600">Build secure, scalable enterprise solutions with the right expertise.</p>
378 |                 </div>
379 | 
380 |                 <!-- Data Platform Example -->
381 |                 <div class="bg-white rounded-lg shadow-lg p-8">
382 |                     <div class="text-2xl mb-4">📊</div>
383 |                     <h3 class="text-xl font-bold mb-4">Data Platform</h3>
384 |                     <div class="code-block mb-4">
385 |                         <pre><code># Search data roles
386 | mcp__pair-role__search-agents \
387 |   "data analytics machine learning"
388 | 
389 | # Install data team
390 | mcp__pair-role__install-agents [
391 |   "data-scientist",
392 |   "data-engineer",
393 |   "machine-learning-engineer",
394 |   "analytics-engineer"
395 | ]</code></pre>
396 |                     </div>
397 |                     <p class="text-gray-600">Create powerful data platforms with specialized data professionals.</p>
398 |                 </div>
399 |             </div>
400 |         </div>
401 |     </section>
402 | 
403 |     <!-- Installation Section -->
404 |     <section id="installation" class="py-20 bg-white">
405 |         <div class="container mx-auto px-6">
406 |             <h2 class="text-3xl font-bold text-center text-gray-800 mb-16">
407 |                 ⚡ Quick Installation
408 |             </h2>
409 |             
410 |             <div class="max-w-3xl mx-auto">
411 |                 <div class="mb-8">
412 |                     <h3 class="text-xl font-bold mb-4">1. Clone and Build</h3>
413 |                     <div class="code-block">
414 |                         <pre><code>git clone https://github.com/hongsw/claude-agents-power-mcp-server.git
415 | cd claude-agents-power-mcp-server
416 | npm install
417 | npm run build</code></pre>
418 |                     </div>
419 |                 </div>
420 | 
421 |                 <div class="mb-8">
422 |                     <h3 class="text-xl font-bold mb-4">2. Configure MCP</h3>
423 |                     <p class="text-gray-600 mb-4">Add to your <code class="bg-gray-200 px-2 py-1 rounded">~/.config/claude/mcp_servers.json</code>:</p>
424 |                     <div class="code-block">
425 |                         <pre><code>{
426 |   "mcpServers": {
427 |     "pair-role": {
428 |       "command": "node",
429 |       "args": ["/path/to/claude-agents-power-mcp-server/dist/index.js"],
430 |       "cwd": "/path/to/your/project",
431 |       "env": {}
432 |     }
433 |   }
434 | }</code></pre>
435 |                     </div>
436 |                 </div>
437 | 
438 |                 <div>
439 |                     <h3 class="text-xl font-bold mb-4">3. Start Using</h3>
440 |                     <p class="text-gray-600 mb-4">Restart Claude Code and start building your perfect team!</p>
441 |                     <div class="code-block">
442 |                         <pre><code># Analyze your project
443 | mcp__pair-role__analyze-project
444 | 
445 | # Get recommendations
446 | mcp__pair-role__recommend-by-keywords ["your", "tech", "stack"]
447 | 
448 | # Install agents
449 | mcp__pair-role__install-agents ["selected", "roles"]</code></pre>
450 |                     </div>
451 |                 </div>
452 |             </div>
453 |         </div>
454 |     </section>
455 | 
456 |     <!-- CTA Section -->
457 |     <section class="gradient-bg text-white py-20">
458 |         <div class="container mx-auto px-6 text-center">
459 |             <h2 class="text-3xl font-bold mb-6">
460 |                 Ready to Build Your Perfect Team?
461 |             </h2>
462 |             <p class="text-xl mb-8 text-purple-100">
463 |                 Start using Pair-Role MCP Server today and revolutionize how you build development teams.
464 |             </p>
465 |             <div class="flex justify-center space-x-4">
466 |                 <a href="https://github.com/hongsw/claude-agents-power-mcp-server" class="bg-white text-purple-700 px-8 py-3 rounded-lg font-bold hover:bg-purple-100 transition">
467 |                     <i class="fab fa-github mr-2"></i> View on GitHub
468 |                 </a>
469 |                 <a href="https://github.com/hongsw/claude-agents-power-mcp-server/issues" class="border-2 border-white text-white px-8 py-3 rounded-lg font-bold hover:bg-white hover:text-purple-700 transition">
470 |                     <i class="fas fa-comment mr-2"></i> Get Support
471 |                 </a>
472 |             </div>
473 |         </div>
474 |     </section>
475 | 
476 |     <!-- Footer -->
477 |     <footer class="bg-gray-800 text-white py-8">
478 |         <div class="container mx-auto px-6 text-center">
479 |             <p class="mb-4">
480 |                 Made with ❤️ for the Claude Code community
481 |             </p>
482 |             <div class="flex justify-center space-x-6">
483 |                 <a href="https://github.com/hongsw/claude-agents-power-mcp-server" class="hover:text-purple-400 transition">
484 |                     <i class="fab fa-github text-2xl"></i>
485 |                 </a>
486 |                 <a href="https://miri.dev" class="hover:text-purple-400 transition">
487 |                     <i class="fas fa-globe text-2xl"></i>
488 |                 </a>
489 |                 <a href="https://discord.gg/claudecode" class="hover:text-purple-400 transition">
490 |                     <i class="fab fa-discord text-2xl"></i>
491 |                 </a>
492 |             </div>
493 |             <p class="mt-4 text-gray-400">
494 |                 © 2024 Pair-Role MCP Server. MIT License.
495 |             </p>
496 |         </div>
497 |     </footer>
498 | 
499 |     <script>
500 |         function showDepartment(dept) {
501 |             // Hide all tabs
502 |             const tabs = document.querySelectorAll('.tab-content');
503 |             tabs.forEach(tab => tab.classList.remove('active'));
504 |             
505 |             // Show selected tab
506 |             document.getElementById(dept).classList.add('active');
507 |             
508 |             // Update button styles
509 |             const buttons = document.querySelectorAll('.category-badge');
510 |             buttons.forEach(button => {
511 |                 button.style.opacity = '0.7';
512 |             });
513 |             event.target.style.opacity = '1';
514 |         }
515 | 
516 |         // Smooth scrolling for navigation links
517 |         document.querySelectorAll('a[href^="#"]').forEach(anchor => {
518 |             anchor.addEventListener('click', function (e) {
519 |                 e.preventDefault();
520 |                 document.querySelector(this.getAttribute('href')).scrollIntoView({
521 |                     behavior: 'smooth'
522 |                 });
523 |             });
524 |         });
525 |     </script>
526 | </body>
527 | </html>
```

--------------------------------------------------------------------------------
/src/aiAnalysisService.ts:
--------------------------------------------------------------------------------

```typescript
  1 | import fs from 'fs';
  2 | import path from 'path';
  3 | import { glob } from 'glob';
  4 | 
  5 | export interface AIProjectAnalysis {
  6 |   projectType: string;
  7 |   technologies: string[];
  8 |   frameworks: string[];
  9 |   complexity: number;
 10 |   phase: string;
 11 |   teamSize: number;
 12 |   description?: string;
 13 |   goals?: string[];
 14 |   requirements?: string[];
 15 |   architecturalPatterns?: string[];
 16 |   developmentPractices?: string[];
 17 |   qualityIndicators?: {
 18 |     hasTests: boolean;
 19 |     hasDocumentation: boolean;
 20 |     hasCI: boolean;
 21 |     hasLinting: boolean;
 22 |     codeComplexity: 'low' | 'medium' | 'high';
 23 |   };
 24 | }
 25 | 
 26 | export interface AIAgentRecommendation {
 27 |   name: string;
 28 |   description: string;
 29 |   relevanceScore: number;
 30 |   reasoning: string;
 31 |   tools: string[];
 32 |   category: string;
 33 |   priority: 'essential' | 'recommended' | 'optional';
 34 |   color?: string; // HEX color code for agent visualization
 35 |   specificTasks?: string[];
 36 |   integrationPoints?: string[];
 37 | }
 38 | 
 39 | /**
 40 |  * AI-Powered Project Analysis Service
 41 |  * Uses intelligent analysis instead of static rules to understand projects
 42 |  */
 43 | export class AIAnalysisService {
 44 |   
 45 |   /**
 46 |    * Perform comprehensive AI analysis of a project
 47 |    */
 48 |   async analyzeProject(claudeMdPath: string, projectRoot?: string): Promise<AIProjectAnalysis> {
 49 |     const projectPath = projectRoot || path.dirname(claudeMdPath);
 50 |     
 51 |     // Gather comprehensive project context
 52 |     const context = await this.gatherProjectContext(claudeMdPath, projectPath);
 53 |     
 54 |     // Perform AI analysis
 55 |     const analysis = await this.performAIAnalysis(context);
 56 |     
 57 |     return analysis;
 58 |   }
 59 | 
 60 |   /**
 61 |    * Generate agent recommendations based on AI analysis
 62 |    */
 63 |   async generateRecommendations(analysis: AIProjectAnalysis): Promise<AIAgentRecommendation[]> {
 64 |     // Use AI to generate intelligent recommendations
 65 |     return this.performAIRecommendation(analysis);
 66 |   }
 67 | 
 68 |   /**
 69 |    * Gather comprehensive project context for AI analysis
 70 |    */
 71 |   private async gatherProjectContext(claudeMdPath: string, projectPath: string): Promise<{
 72 |     claudeMdContent?: string;
 73 |     fileStructure: string[];
 74 |     packageInfo?: any;
 75 |     configFiles: string[];
 76 |     codeMetrics: {
 77 |       totalFiles: number;
 78 |       codeFiles: number;
 79 |       testFiles: number;
 80 |       docFiles: number;
 81 |       languages: string[];
 82 |     };
 83 |     dependencies?: any;
 84 |     gitInfo?: {
 85 |       hasGit: boolean;
 86 |       recentCommits?: string[];
 87 |       branches?: string[];
 88 |     };
 89 |   }> {
 90 |     const context: any = {
 91 |       fileStructure: [],
 92 |       configFiles: [],
 93 |       codeMetrics: {
 94 |         totalFiles: 0,
 95 |         codeFiles: 0,
 96 |         testFiles: 0,
 97 |         docFiles: 0,
 98 |         languages: []
 99 |       }
100 |     };
101 | 
102 |     // Read CLAUDE.md if exists
103 |     try {
104 |       if (fs.existsSync(claudeMdPath)) {
105 |         context.claudeMdContent = fs.readFileSync(claudeMdPath, 'utf8');
106 |       }
107 |     } catch (error) {
108 |       // Continue without CLAUDE.md
109 |     }
110 | 
111 |     try {
112 |       // Get file structure (limited depth to avoid performance issues)
113 |       const files = await glob('**/*', { 
114 |         cwd: projectPath,
115 |         ignore: ['node_modules/**', 'dist/**', 'build/**', '.git/**', 'venv/**', '__pycache__/**'],
116 |         nodir: true,
117 |         maxDepth: 4
118 |       });
119 | 
120 |       context.fileStructure = files.slice(0, 100); // Limit for performance
121 |       context.codeMetrics.totalFiles = files.length;
122 | 
123 |       // Analyze file types
124 |       const codeExtensions = ['.js', '.ts', '.jsx', '.tsx', '.py', '.java', '.go', '.rs', '.php', '.rb', '.cs', '.cpp', '.c', '.h'];
125 |       const testExtensions = ['.test.', '.spec.', '_test.', '_spec.'];
126 |       const docExtensions = ['.md', '.rst', '.txt', '.doc'];
127 | 
128 |       files.forEach(file => {
129 |         const ext = path.extname(file);
130 |         const basename = path.basename(file);
131 |         
132 |         if (codeExtensions.includes(ext)) {
133 |           context.codeMetrics.codeFiles++;
134 |           const lang = this.getLanguageFromExtension(ext);
135 |           if (lang && !context.codeMetrics.languages.includes(lang)) {
136 |             context.codeMetrics.languages.push(lang);
137 |           }
138 |         }
139 |         
140 |         if (testExtensions.some(testExt => basename.includes(testExt))) {
141 |           context.codeMetrics.testFiles++;
142 |         }
143 |         
144 |         if (docExtensions.includes(ext)) {
145 |           context.codeMetrics.docFiles++;
146 |         }
147 |       });
148 | 
149 |       // Identify config files
150 |       const configPatterns = [
151 |         'package.json', 'package-lock.json', 'yarn.lock',
152 |         'requirements.txt', 'pyproject.toml', 'setup.py',
153 |         'Cargo.toml', 'go.mod', 'pom.xml', 'build.gradle',
154 |         'Dockerfile', 'docker-compose.yml',
155 |         '.gitignore', '.eslintrc*', '.prettierrc*',
156 |         'tsconfig.json', 'webpack.config.js', 'vite.config.*',
157 |         'tailwind.config.js', 'next.config.js', 'nuxt.config.js'
158 |       ];
159 | 
160 |       context.configFiles = files.filter(file => 
161 |         configPatterns.some(pattern => 
162 |           pattern.includes('*') ? 
163 |             file.includes(pattern.replace('*', '')) : 
164 |             path.basename(file) === pattern
165 |         )
166 |       );
167 | 
168 |       // Read package.json for detailed dependency analysis
169 |       const packageJsonPath = path.join(projectPath, 'package.json');
170 |       if (fs.existsSync(packageJsonPath)) {
171 |         try {
172 |           context.packageInfo = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
173 |           context.dependencies = {
174 |             ...context.packageInfo.dependencies,
175 |             ...context.packageInfo.devDependencies
176 |           };
177 |         } catch (e) {
178 |           // Continue without package.json parsing
179 |         }
180 |       }
181 | 
182 |       // Check for git repository
183 |       const gitPath = path.join(projectPath, '.git');
184 |       context.gitInfo = {
185 |         hasGit: fs.existsSync(gitPath)
186 |       };
187 | 
188 |     } catch (error) {
189 |       console.warn('Error gathering project context:', error);
190 |     }
191 | 
192 |     return context;
193 |   }
194 | 
195 |   /**
196 |    * Perform AI-powered analysis of the project context
197 |    */
198 |   private async performAIAnalysis(context: any): Promise<AIProjectAnalysis> {
199 |     // This is where we would integrate with Claude API or use AI reasoning
200 |     // For now, implementing intelligent rule-based analysis that mimics AI decision making
201 |     
202 |     const analysis: AIProjectAnalysis = {
203 |       projectType: 'unknown',
204 |       technologies: [],
205 |       frameworks: [],
206 |       complexity: 5,
207 |       phase: 'development',
208 |       teamSize: 5,
209 |       description: '',
210 |       goals: [],
211 |       requirements: [],
212 |       architecturalPatterns: [],
213 |       developmentPractices: [],
214 |       qualityIndicators: {
215 |         hasTests: context.codeMetrics.testFiles > 0,
216 |         hasDocumentation: context.codeMetrics.docFiles > 5,
217 |         hasCI: context.configFiles.some((file: string) => file.includes('.github/workflows') || file.includes('.gitlab-ci')),
218 |         hasLinting: context.configFiles.some((file: string) => file.includes('eslint') || file.includes('prettier')),
219 |         codeComplexity: context.codeMetrics.totalFiles > 100 ? 'high' : context.codeMetrics.totalFiles > 30 ? 'medium' : 'low'
220 |       }
221 |     };
222 | 
223 |     // Extract information from CLAUDE.md with intelligent parsing
224 |     if (context.claudeMdContent) {
225 |       analysis.description = this.extractProjectDescription(context.claudeMdContent);
226 |       analysis.goals = this.extractProjectGoals(context.claudeMdContent);
227 |       analysis.requirements = this.extractProjectRequirements(context.claudeMdContent);
228 |     }
229 | 
230 |     // Intelligent project type detection
231 |     analysis.projectType = this.determineProjectType(context);
232 |     
233 |     // Technology and framework detection with context awareness
234 |     analysis.technologies = this.detectTechnologies(context);
235 |     analysis.frameworks = this.detectFrameworks(context);
236 |     
237 |     // Complexity assessment using multiple factors
238 |     analysis.complexity = this.calculateComplexity(context, analysis);
239 |     
240 |     // Development phase detection
241 |     analysis.phase = this.determineDevelopmentPhase(context, analysis);
242 |     
243 |     // Optimal team size recommendation
244 |     analysis.teamSize = this.recommendTeamSize(analysis);
245 |     
246 |     // Architectural patterns detection
247 |     analysis.architecturalPatterns = this.detectArchitecturalPatterns(context);
248 |     
249 |     // Development practices assessment
250 |     analysis.developmentPractices = this.assessDevelopmentPractices(context);
251 | 
252 |     return analysis;
253 |   }
254 | 
255 |   /**
256 |    * Generate intelligent agent recommendations based on analysis
257 |    */
258 |   private async performAIRecommendation(analysis: AIProjectAnalysis): Promise<AIAgentRecommendation[]> {
259 |     const recommendations: AIAgentRecommendation[] = [];
260 | 
261 |     // Intelligent recommendation rules based on comprehensive analysis
262 |     const recommendationRules = this.createIntelligentRecommendationRules();
263 | 
264 |     for (const rule of recommendationRules) {
265 |       const relevance = rule.evaluate(analysis);
266 |       if (relevance.isRelevant) {
267 |         recommendations.push({
268 |           name: rule.agentName,
269 |           description: rule.description,
270 |           relevanceScore: relevance.score,
271 |           reasoning: relevance.reasoning,
272 |           tools: rule.tools,
273 |           category: rule.category,
274 |           priority: relevance.priority,
275 |           color: this.getAgentColor(rule.agentName, rule.category),
276 |           specificTasks: relevance.specificTasks,
277 |           integrationPoints: relevance.integrationPoints
278 |         });
279 |       }
280 |     }
281 | 
282 |     // Sort by relevance score and apply intelligent filtering
283 |     return recommendations
284 |       .sort((a, b) => b.relevanceScore - a.relevanceScore)
285 |       .slice(0, analysis.teamSize + 2); // Recommend slightly more than team size
286 |   }
287 | 
288 |   /**
289 |    * Create intelligent recommendation rules
290 |    */
291 |   private createIntelligentRecommendationRules() {
292 |     return [
293 |       // Frontend Development Rules
294 |       {
295 |         agentName: 'frontend-developer',
296 |         description: 'UI/UX implementation specialist with modern web technologies expertise',
297 |         category: 'development',
298 |         tools: ['Read', 'Write', 'Edit', 'MultiEdit', 'Bash'],
299 |         evaluate: (analysis: AIProjectAnalysis) => {
300 |           const hasFrontend = analysis.frameworks.some(f => ['React', 'Vue', 'Angular', 'Svelte'].includes(f)) ||
301 |                              analysis.technologies.includes('JavaScript') ||
302 |                              analysis.projectType.includes('web');
303 |           
304 |           if (!hasFrontend) return { isRelevant: false, score: 0, reasoning: '', priority: 'optional' as const };
305 | 
306 |           let score = 90;
307 |           let reasoning = 'Essential for frontend development with ';
308 |           const tasks = ['Implement user interfaces', 'Optimize performance', 'Ensure accessibility'];
309 |           const integrationPoints = ['Backend APIs', 'Design system', 'Testing framework'];
310 | 
311 |           if (analysis.frameworks.length > 0) {
312 |             score += 5;
313 |             reasoning += analysis.frameworks.join(', ');
314 |           } else {
315 |             reasoning += 'modern web technologies';
316 |           }
317 | 
318 |           if (analysis.qualityIndicators?.hasTests) {
319 |             tasks.push('Write frontend tests');
320 |             score += 3;
321 |           }
322 | 
323 |           return {
324 |             isRelevant: true,
325 |             score,
326 |             reasoning,
327 |             priority: 'essential' as const,
328 |             specificTasks: tasks,
329 |             integrationPoints
330 |           };
331 |         }
332 |       },
333 | 
334 |       // Backend Development Rules  
335 |       {
336 |         agentName: 'backend-engineer',
337 |         description: 'Server-side development and API specialist',
338 |         category: 'development',
339 |         tools: ['Read', 'Write', 'Edit', 'MultiEdit', 'Bash'],
340 |         evaluate: (analysis: AIProjectAnalysis) => {
341 |           const hasBackend = analysis.technologies.includes('Node.js') ||
342 |                             analysis.technologies.includes('Python') ||
343 |                             analysis.technologies.includes('Java') ||
344 |                             analysis.projectType.includes('api') ||
345 |                             analysis.projectType.includes('server');
346 | 
347 |           if (!hasBackend) return { isRelevant: false, score: 0, reasoning: '', priority: 'optional' as const };
348 | 
349 |           let score = 95;
350 |           let reasoning = 'Critical for backend development and API design';
351 |           const tasks = ['Design APIs', 'Implement business logic', 'Database integration'];
352 |           const integrationPoints = ['Frontend applications', 'Database systems', 'External services'];
353 | 
354 |           if (analysis.complexity > 7) {
355 |             score += 3;
356 |             tasks.push('Optimize performance');
357 |             reasoning += ' with complex system requirements';
358 |           }
359 | 
360 |           if (analysis.qualityIndicators?.hasTests) {
361 |             tasks.push('API testing and validation');
362 |           }
363 | 
364 |           return {
365 |             isRelevant: true,
366 |             score,
367 |             reasoning,
368 |             priority: 'essential' as const,
369 |             specificTasks: tasks,
370 |             integrationPoints
371 |           };
372 |         }
373 |       },
374 | 
375 |       // Full-Stack Development Rules
376 |       {
377 |         agentName: 'full-stack-developer',
378 |         description: 'End-to-end development specialist',
379 |         category: 'development',
380 |         tools: ['Read', 'Write', 'Edit', 'MultiEdit', 'Bash', 'WebSearch'],
381 |         evaluate: (analysis: AIProjectAnalysis) => {
382 |           const hasBothEnds = analysis.frameworks.length > 0 && 
383 |                              (analysis.technologies.includes('Node.js') || analysis.technologies.includes('Python'));
384 | 
385 |           if (!hasBothEnds) return { isRelevant: false, score: 0, reasoning: '', priority: 'optional' as const };
386 | 
387 |           let score = 88;
388 |           const reasoning = 'Perfect for full-stack applications requiring end-to-end integration';
389 |           const tasks = ['Coordinate frontend-backend integration', 'Implement full features', 'System architecture'];
390 |           const integrationPoints = ['Frontend frameworks', 'Backend services', 'Database layer'];
391 | 
392 |           if (analysis.teamSize <= 3) {
393 |             score += 7; // More valuable for smaller teams
394 |           }
395 | 
396 |           return {
397 |             isRelevant: true,
398 |             score,
399 |             reasoning,
400 |             priority: 'essential' as const,
401 |             specificTasks: tasks,
402 |             integrationPoints
403 |           };
404 |         }
405 |       },
406 | 
407 |       // DevOps and Infrastructure Rules
408 |       {
409 |         agentName: 'devops-engineer',
410 |         description: 'Infrastructure and deployment specialist',
411 |         category: 'infrastructure',
412 |         tools: ['Read', 'Write', 'Bash', 'Edit'],
413 |         evaluate: (analysis: AIProjectAnalysis) => {
414 |           const needsDevOps = analysis.complexity > 6 ||
415 |                              analysis.technologies.includes('Docker') ||
416 |                              analysis.qualityIndicators?.hasCI ||
417 |                              analysis.phase === 'deployment';
418 | 
419 |           if (!needsDevOps) return { isRelevant: false, score: 0, reasoning: '', priority: 'optional' as const };
420 | 
421 |           let score = 82;
422 |           let reasoning = 'Required for deployment and infrastructure management';
423 |           const tasks = ['Setup CI/CD pipelines', 'Configure deployment', 'Monitor systems'];
424 |           const integrationPoints = ['Development workflow', 'Production environment', 'Monitoring tools'];
425 | 
426 |           if (analysis.technologies.includes('Docker')) {
427 |             score += 8;
428 |             reasoning += ' with containerization expertise';
429 |           }
430 | 
431 |           if (analysis.complexity > 8) {
432 |             score += 5;
433 |             tasks.push('Scale infrastructure');
434 |           }
435 | 
436 |           return {
437 |             isRelevant: true,
438 |             score,
439 |             reasoning,
440 |             priority: analysis.phase === 'deployment' ? 'essential' as const : 'recommended' as const,
441 |             specificTasks: tasks,
442 |             integrationPoints
443 |           };
444 |         }
445 |       },
446 | 
447 |       // Quality Assurance Rules
448 |       {
449 |         agentName: 'qa-engineer',
450 |         description: 'Quality assurance and testing specialist',
451 |         category: 'quality',
452 |         tools: ['Read', 'Write', 'Bash'],
453 |         evaluate: (analysis: AIProjectAnalysis) => {
454 |           const needsQA = analysis.complexity > 5 || 
455 |                          analysis.projectType.includes('web') ||
456 |                          !analysis.qualityIndicators?.hasTests;
457 | 
458 |           if (!needsQA) return { isRelevant: false, score: 0, reasoning: '', priority: 'optional' as const };
459 | 
460 |           let score = 75;
461 |           let reasoning = 'Important for quality assurance and testing strategy';
462 |           const tasks = ['Design test strategies', 'Implement automated testing', 'Quality validation'];
463 |           const integrationPoints = ['Development workflow', 'CI/CD pipeline', 'User acceptance'];
464 | 
465 |           if (!analysis.qualityIndicators?.hasTests) {
466 |             score += 10;
467 |             reasoning += ' - no existing tests detected';
468 |             tasks.unshift('Establish testing framework');
469 |           }
470 | 
471 |           if (analysis.complexity > 8) {
472 |             score += 5;
473 |             tasks.push('Performance testing');
474 |           }
475 | 
476 |           return {
477 |             isRelevant: true,
478 |             score,
479 |             reasoning,
480 |             priority: 'recommended' as const,
481 |             specificTasks: tasks,
482 |             integrationPoints
483 |           };
484 |         }
485 |       },
486 | 
487 |       // Security Engineering Rules
488 |       {
489 |         agentName: 'security-engineer',
490 |         description: 'Security and compliance specialist',
491 |         category: 'security',
492 |         tools: ['Read', 'Bash', 'Edit'],
493 |         evaluate: (analysis: AIProjectAnalysis) => {
494 |           const needsSecurity = analysis.projectType.includes('web') ||
495 |                                analysis.complexity > 7 ||
496 |                                analysis.technologies.some(t => ['authentication', 'payment', 'data'].some(s => t.toLowerCase().includes(s)));
497 | 
498 |           if (!needsSecurity) return { isRelevant: false, score: 0, reasoning: '', priority: 'optional' as const };
499 | 
500 |           let score = 78;
501 |           let reasoning = 'Critical for security and compliance requirements';
502 |           const tasks = ['Security audits', 'Implement security measures', 'Compliance validation'];
503 |           const integrationPoints = ['Authentication systems', 'Data protection', 'API security'];
504 | 
505 |           if (analysis.projectType.includes('web')) {
506 |             score += 7;
507 |             tasks.push('Web application security');
508 |           }
509 | 
510 |           if (analysis.complexity > 8) {
511 |             score += 5;
512 |             reasoning += ' for complex systems';
513 |           }
514 | 
515 |           return {
516 |             isRelevant: true,
517 |             score,
518 |             reasoning,
519 |             priority: 'recommended' as const,
520 |             specificTasks: tasks,
521 |             integrationPoints
522 |           };
523 |         }
524 |       },
525 | 
526 |       // Technical Leadership Rules
527 |       {
528 |         agentName: 'tech-lead',
529 |         description: 'Technical leadership and architecture specialist',
530 |         category: 'management',
531 |         tools: ['Read', 'Write'],
532 |         evaluate: (analysis: AIProjectAnalysis) => {
533 |           const needsLeadership = analysis.complexity > 7 ||
534 |                                  analysis.technologies.length > 4 ||
535 |                                  analysis.teamSize > 5;
536 | 
537 |           if (!needsLeadership) return { isRelevant: false, score: 0, reasoning: '', priority: 'optional' as const };
538 | 
539 |           let score = 83;
540 |           const reasoning = 'Essential for technical leadership and coordination in complex projects';
541 |           const tasks = ['Technical decision making', 'Team coordination', 'Architecture oversight'];
542 |           const integrationPoints = ['Development team', 'Project stakeholders', 'Architecture decisions'];
543 | 
544 |           if (analysis.teamSize > 7) {
545 |             score += 5;
546 |           }
547 | 
548 |           return {
549 |             isRelevant: true,
550 |             score,
551 |             reasoning,
552 |             priority: 'recommended' as const,
553 |             specificTasks: tasks,
554 |             integrationPoints
555 |           };
556 |         }
557 |       },
558 | 
559 |       // Documentation Specialist Rules
560 |       {
561 |         agentName: 'technical-writer',
562 |         description: 'Documentation and content specialist',
563 |         category: 'documentation',
564 |         tools: ['Read', 'Write', 'Edit'],
565 |         evaluate: (analysis: AIProjectAnalysis) => {
566 |           const needsDocs = analysis.complexity > 6 ||
567 |                            !analysis.qualityIndicators?.hasDocumentation ||
568 |                            analysis.projectType.includes('api');
569 | 
570 |           if (!needsDocs) return { isRelevant: false, score: 0, reasoning: '', priority: 'optional' as const };
571 | 
572 |           let score = 65;
573 |           let reasoning = 'Important for documentation and user guides';
574 |           const tasks = ['Create technical documentation', 'API documentation', 'User guides'];
575 |           const integrationPoints = ['Development workflow', 'User experience', 'Knowledge management'];
576 | 
577 |           if (!analysis.qualityIndicators?.hasDocumentation) {
578 |             score += 8;
579 |             reasoning += ' - insufficient documentation detected';
580 |           }
581 | 
582 |           if (analysis.projectType.includes('api')) {
583 |             score += 7;
584 |             tasks.push('API documentation');
585 |           }
586 | 
587 |           return {
588 |             isRelevant: true,
589 |             score,
590 |             reasoning,
591 |             priority: 'optional' as const,
592 |             specificTasks: tasks,
593 |             integrationPoints
594 |           };
595 |         }
596 |       }
597 |     ];
598 |   }
599 | 
600 |   // Helper methods for analysis
601 | 
602 |   private getLanguageFromExtension(ext: string): string | null {
603 |     const langMap: Record<string, string> = {
604 |       '.js': 'JavaScript',
605 |       '.ts': 'TypeScript', 
606 |       '.jsx': 'React',
607 |       '.tsx': 'React TypeScript',
608 |       '.py': 'Python',
609 |       '.java': 'Java',
610 |       '.go': 'Go',
611 |       '.rs': 'Rust',
612 |       '.php': 'PHP',
613 |       '.rb': 'Ruby',
614 |       '.cs': 'C#',
615 |       '.cpp': 'C++',
616 |       '.c': 'C'
617 |     };
618 |     return langMap[ext] || null;
619 |   }
620 | 
621 |   private extractProjectDescription(content: string): string {
622 |     // Extract description from CLAUDE.md
623 |     const lines = content.split('\n');
624 |     for (let i = 0; i < lines.length; i++) {
625 |       const line = lines[i].trim();
626 |       if (line.startsWith('# ') && line.length > 2) {
627 |         return line.substring(2).trim();
628 |       }
629 |     }
630 |     return 'Project description not available';
631 |   }
632 | 
633 |   private extractProjectGoals(content: string): string[] {
634 |     const goals: string[] = [];
635 |     const lines = content.split('\n');
636 |     let inGoalsSection = false;
637 | 
638 |     for (const line of lines) {
639 |       const trimmed = line.trim();
640 |       if (trimmed.toLowerCase().includes('goal') || trimmed.toLowerCase().includes('objective')) {
641 |         inGoalsSection = true;
642 |         continue;
643 |       }
644 |       if (inGoalsSection && trimmed.startsWith('- ')) {
645 |         goals.push(trimmed.substring(2));
646 |       } else if (inGoalsSection && trimmed.startsWith('#')) {
647 |         break;
648 |       }
649 |     }
650 | 
651 |     return goals;
652 |   }
653 | 
654 |   private extractProjectRequirements(content: string): string[] {
655 |     const requirements: string[] = [];
656 |     const lines = content.split('\n');
657 |     let inReqSection = false;
658 | 
659 |     for (const line of lines) {
660 |       const trimmed = line.trim();
661 |       if (trimmed.toLowerCase().includes('requirement') || trimmed.toLowerCase().includes('need')) {
662 |         inReqSection = true;
663 |         continue;
664 |       }
665 |       if (inReqSection && trimmed.startsWith('- ')) {
666 |         requirements.push(trimmed.substring(2));
667 |       } else if (inReqSection && trimmed.startsWith('#')) {
668 |         break;
669 |       }
670 |     }
671 | 
672 |     return requirements;
673 |   }
674 | 
675 |   private determineProjectType(context: any): string {
676 |     const files = context.fileStructure;
677 |     const deps = context.dependencies || {};
678 | 
679 |     // Web application detection
680 |     if (files.some((f: string) => f.includes('index.html')) || 
681 |         Object.keys(deps).some(dep => ['react', 'vue', 'angular'].includes(dep))) {
682 |       return 'web-application';
683 |     }
684 | 
685 |     // API detection
686 |     if (files.some((f: string) => f.includes('api/') || f.includes('server.')) || 
687 |         Object.keys(deps).some(dep => ['express', 'fastapi', 'nest'].includes(dep))) {
688 |       return 'api-service';
689 |     }
690 | 
691 |     // Mobile app detection
692 |     if (files.some((f: string) => f.includes('pubspec.yaml') || f.includes('Info.plist')) ||
693 |         Object.keys(deps).some(dep => ['react-native', 'ionic', 'flutter'].includes(dep))) {
694 |       return 'mobile-application';
695 |     }
696 | 
697 |     // CLI tool detection
698 |     if (files.some((f: string) => f.includes('bin/') || f.includes('cli.')) ||
699 |         context.packageInfo?.bin) {
700 |       return 'cli-tool';
701 |     }
702 | 
703 |     // Library detection
704 |     if (context.packageInfo?.main && !context.packageInfo?.private) {
705 |       return 'library';
706 |     }
707 | 
708 |     return 'application';
709 |   }
710 | 
711 |   private detectTechnologies(context: any): string[] {
712 |     const technologies = new Set<string>();
713 |     const deps = context.dependencies || {};
714 |     const languages = context.codeMetrics.languages || [];
715 | 
716 |     // Add detected languages
717 |     languages.forEach((lang: string) => technologies.add(lang));
718 | 
719 |     // Database technologies
720 |     if (Object.keys(deps).some(dep => dep.includes('postgres'))) technologies.add('PostgreSQL');
721 |     if (Object.keys(deps).some(dep => dep.includes('mongo'))) technologies.add('MongoDB');
722 |     if (Object.keys(deps).some(dep => dep.includes('redis'))) technologies.add('Redis');
723 |     if (Object.keys(deps).some(dep => dep.includes('mysql'))) technologies.add('MySQL');
724 | 
725 |     // Cloud and infrastructure
726 |     if (Object.keys(deps).some(dep => dep.includes('aws'))) technologies.add('AWS');
727 |     if (context.fileStructure.some((f: string) => f.includes('Dockerfile'))) technologies.add('Docker');
728 |     if (context.fileStructure.some((f: string) => f.includes('kubernetes'))) technologies.add('Kubernetes');
729 | 
730 |     // Build tools and bundlers
731 |     if (Object.keys(deps).some(dep => ['webpack', 'vite', 'rollup', 'parcel'].includes(dep))) {
732 |       technologies.add('Build Tools');
733 |     }
734 | 
735 |     return Array.from(technologies);
736 |   }
737 | 
738 |   private detectFrameworks(context: any): string[] {
739 |     const frameworks = new Set<string>();
740 |     const deps = context.dependencies || {};
741 | 
742 |     // Frontend frameworks
743 |     if (Object.keys(deps).some(dep => dep.includes('react'))) frameworks.add('React');
744 |     if (Object.keys(deps).some(dep => dep.includes('vue'))) frameworks.add('Vue');
745 |     if (Object.keys(deps).some(dep => dep.includes('angular'))) frameworks.add('Angular');
746 |     if (Object.keys(deps).some(dep => dep.includes('svelte'))) frameworks.add('Svelte');
747 |     if (Object.keys(deps).some(dep => dep.includes('next'))) frameworks.add('Next.js');
748 |     if (Object.keys(deps).some(dep => dep.includes('nuxt'))) frameworks.add('Nuxt.js');
749 | 
750 |     // Backend frameworks
751 |     if (Object.keys(deps).some(dep => dep.includes('express'))) frameworks.add('Express');
752 |     if (Object.keys(deps).some(dep => dep.includes('nest'))) frameworks.add('NestJS');
753 |     if (Object.keys(deps).some(dep => dep.includes('koa'))) frameworks.add('Koa');
754 | 
755 |     // Testing frameworks
756 |     if (Object.keys(deps).some(dep => ['jest', 'mocha', 'chai', 'cypress'].includes(dep))) {
757 |       frameworks.add('Testing Framework');
758 |     }
759 | 
760 |     return Array.from(frameworks);
761 |   }
762 | 
763 |   private calculateComplexity(context: any, analysis: AIProjectAnalysis): number {
764 |     let complexity = 5; // Base complexity
765 | 
766 |     // File count impact
767 |     if (context.codeMetrics.totalFiles > 100) complexity += 2;
768 |     if (context.codeMetrics.totalFiles > 50) complexity += 1;
769 | 
770 |     // Technology diversity
771 |     complexity += Math.min(analysis.technologies.length * 0.5, 2);
772 |     
773 |     // Framework complexity
774 |     if (analysis.frameworks.length > 2) complexity += 1;
775 | 
776 |     // Language diversity
777 |     if (context.codeMetrics.languages.length > 2) complexity += 1;
778 | 
779 |     // Architecture indicators
780 |     if (context.fileStructure.some((f: string) => f.includes('microservice'))) complexity += 2;
781 |     if (context.fileStructure.some((f: string) => f.includes('api/') && f.includes('v1/'))) complexity += 1;
782 | 
783 |     // Quality indicators (well-structured projects are more complex to maintain)
784 |     if (analysis.qualityIndicators?.hasTests) complexity += 0.5;
785 |     if (analysis.qualityIndicators?.hasCI) complexity += 0.5;
786 |     if (analysis.qualityIndicators?.hasLinting) complexity += 0.5;
787 | 
788 |     return Math.min(Math.round(complexity * 10) / 10, 10);
789 |   }
790 | 
791 |   private determineDevelopmentPhase(context: any, analysis: AIProjectAnalysis): string {
792 |     // Phase detection based on project indicators
793 |     if (context.codeMetrics.totalFiles < 10) return 'planning';
794 |     if (!analysis.qualityIndicators?.hasTests && context.codeMetrics.codeFiles > 0) return 'development';
795 |     if (analysis.qualityIndicators?.hasTests && analysis.qualityIndicators?.hasCI) return 'testing';
796 |     if (context.fileStructure.some((f: string) => f.includes('docker') || f.includes('deploy'))) return 'deployment';
797 |     if (analysis.qualityIndicators?.hasDocumentation && analysis.qualityIndicators?.hasCI) return 'maintenance';
798 |     
799 |     return 'development';
800 |   }
801 | 
802 |   private recommendTeamSize(analysis: AIProjectAnalysis): number {
803 |     let teamSize = 3; // Base team size
804 | 
805 |     // Complexity impact
806 |     if (analysis.complexity > 8) teamSize += 3;
807 |     else if (analysis.complexity > 6) teamSize += 2;
808 |     else if (analysis.complexity > 4) teamSize += 1;
809 | 
810 |     // Technology diversity impact
811 |     if (analysis.technologies.length > 5) teamSize += 2;
812 |     else if (analysis.technologies.length > 3) teamSize += 1;
813 | 
814 |     // Project type impact
815 |     if (analysis.projectType.includes('enterprise')) teamSize += 2;
816 |     if (analysis.projectType.includes('microservice')) teamSize += 1;
817 | 
818 |     return Math.min(teamSize, 12); // Cap at 12 for practical reasons
819 |   }
820 | 
821 |   private detectArchitecturalPatterns(context: any): string[] {
822 |     const patterns: string[] = [];
823 |     const files = context.fileStructure;
824 | 
825 |     if (files.some((f: string) => f.includes('component') && f.includes('service'))) {
826 |       patterns.push('Component-Service Architecture');
827 |     }
828 |     if (files.some((f: string) => f.includes('api/v'))) {
829 |       patterns.push('Versioned API');
830 |     }
831 |     if (files.some((f: string) => f.includes('middleware'))) {
832 |       patterns.push('Middleware Pattern');
833 |     }
834 |     if (files.some((f: string) => f.includes('repository') || f.includes('dao'))) {
835 |       patterns.push('Repository Pattern');
836 |     }
837 |     if (files.some((f: string) => f.includes('model') && f.includes('view') && f.includes('controller'))) {
838 |       patterns.push('MVC Architecture');
839 |     }
840 | 
841 |     return patterns;
842 |   }
843 | 
844 |   private assessDevelopmentPractices(context: any): string[] {
845 |     const practices: string[] = [];
846 | 
847 |     if (context.qualityIndicators?.hasTests) practices.push('Automated Testing');
848 |     if (context.qualityIndicators?.hasCI) practices.push('Continuous Integration');
849 |     if (context.qualityIndicators?.hasLinting) practices.push('Code Quality Tools');
850 |     if (context.qualityIndicators?.hasDocumentation) practices.push('Documentation');
851 |     if (context.gitInfo?.hasGit) practices.push('Version Control');
852 |     if (context.fileStructure.some((f: string) => f.includes('docker'))) practices.push('Containerization');
853 | 
854 |     return practices;
855 |   }
856 | 
857 |   /**
858 |    * Get color code for agent based on name and category
859 |    */
860 |   private getAgentColor(agentName: string, category: string): string {
861 |     // Color palette based on agent types and categories
862 |     const colorMap: Record<string, string> = {
863 |       // Core Development (Blue shades)
864 |       'frontend-developer': '#3B82F6',
865 |       'backend-engineer': '#1E40AF',
866 |       'full-stack-developer': '#2563EB',
867 |       'mobile-developer': '#60A5FA',
868 |       
869 |       // Architecture & Design (Purple shades)
870 |       'system-architect': '#8B5CF6',
871 |       'solution-architect': '#7C3AED',
872 |       'technical-architect': '#9333EA',
873 |       'api-designer': '#A78BFA',
874 |       
875 |       // Data & AI (Green shades)
876 |       'data-scientist': '#10B981',
877 |       'ml-engineer': '#059669',
878 |       'data-engineer': '#34D399',
879 |       'ai-specialist': '#6EE7B7',
880 |       
881 |       // Security (Red shades)
882 |       'security-engineer': '#EF4444',
883 |       'security-architect': '#DC2626',
884 |       'compliance-auditor': '#F87171',
885 |       'vulnerability-scanner': '#FCA5A5',
886 |       
887 |       // DevOps & Infrastructure (Orange shades)
888 |       'devops-engineer': '#F97316',
889 |       'sre-engineer': '#EA580C',
890 |       'cloud-architect': '#FB923C',
891 |       'cicd-engineer': '#FDBA74',
892 |       
893 |       // Testing & QA (Yellow shades)
894 |       'qa-engineer': '#F59E0B',
895 |       'test-automation': '#D97706',
896 |       'performance-tester': '#FCD34D',
897 |       'security-tester': '#FDE68A',
898 |       
899 |       // Product & Business (Pink shades)
900 |       'product-manager': '#EC4899',
901 |       'business-analyst': '#DB2777',
902 |       'scrum-master': '#F472B6',
903 |       'project-manager': '#FBCFE8',
904 |       
905 |       // Documentation & Support (Teal shades)
906 |       'technical-writer': '#14B8A6',
907 |       'documentation-specialist': '#0D9488',
908 |       'api-documenter': '#5EEAD4',
909 |       'support-engineer': '#99F6E4',
910 |     };
911 | 
912 |     // Return specific color if mapped, otherwise generate based on category
913 |     if (colorMap[agentName]) {
914 |       return colorMap[agentName];
915 |     }
916 | 
917 |     // Default colors by category
918 |     const categoryColors: Record<string, string> = {
919 |       'development': '#3B82F6',
920 |       'architecture': '#8B5CF6',
921 |       'data': '#10B981',
922 |       'security': '#EF4444',
923 |       'infrastructure': '#F97316',
924 |       'testing': '#F59E0B',
925 |       'management': '#EC4899',
926 |       'documentation': '#14B8A6',
927 |       'design': '#A78BFA',
928 |       'operations': '#F97316',
929 |     };
930 | 
931 |     // Return category color or default
932 |     return categoryColors[category.toLowerCase()] || '#6B7280';
933 |   }
934 | }
```
Page 4/5FirstPrevNextLast