#
tokens: 48779/50000 11/15 files (page 1/3)
lines: on (toggle) GitHub
raw markdown copy reset
This is page 1 of 3. Use http://codebase.md/jacck/mcp-reasoner?lines=true&page={x} to view the full context.

# Directory Structure

```
├── .gitignore
├── dist
│   ├── index.d.ts
│   ├── index.js
│   ├── reasoner.d.ts
│   ├── reasoner.js
│   ├── state.d.ts
│   ├── state.js
│   ├── strategies
│   │   ├── base.d.ts
│   │   ├── base.js
│   │   ├── beam-search.d.ts
│   │   ├── beam-search.js
│   │   ├── factory.d.ts
│   │   ├── factory.js
│   │   ├── mcts.d.ts
│   │   └── mcts.js
│   ├── types.d.ts
│   └── types.js
├── LICENSE
├── node_modules
│   ├── .bin
│   │   ├── resolve
│   │   ├── resolve.cmd
│   │   ├── resolve.ps1
│   │   ├── shjs
│   │   ├── shjs.cmd
│   │   ├── shjs.ps1
│   │   ├── shx
│   │   ├── shx.cmd
│   │   ├── shx.ps1
│   │   ├── tsc
│   │   ├── tsc.cmd
│   │   ├── tsc.ps1
│   │   ├── tsserver
│   │   ├── tsserver.cmd
│   │   └── tsserver.ps1
│   ├── .package-lock.json
│   ├── @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
│   │       ├── LICENSE
│   │       ├── package.json
│   │       └── README.md
│   ├── @types
│   │   └── 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
│   ├── balanced-match
│   │   ├── .github
│   │   │   └── FUNDING.yml
│   │   ├── index.js
│   │   ├── LICENSE.md
│   │   ├── package.json
│   │   └── README.md
│   ├── brace-expansion
│   │   ├── index.js
│   │   ├── LICENSE
│   │   ├── package.json
│   │   └── README.md
│   ├── bytes
│   │   ├── History.md
│   │   ├── index.js
│   │   ├── LICENSE
│   │   ├── package.json
│   │   └── Readme.md
│   ├── chalk
│   │   ├── license
│   │   ├── package.json
│   │   ├── readme.md
│   │   └── source
│   │       ├── index.d.ts
│   │       ├── index.js
│   │       ├── utilities.js
│   │       └── vendor
│   │           ├── ansi-styles
│   │           │   ├── index.d.ts
│   │           │   └── index.js
│   │           └── supports-color
│   │               ├── browser.d.ts
│   │               ├── browser.js
│   │               ├── index.d.ts
│   │               └── index.js
│   ├── concat-map
│   │   ├── .travis.yml
│   │   ├── example
│   │   │   └── map.js
│   │   ├── index.js
│   │   ├── LICENSE
│   │   ├── package.json
│   │   ├── README.markdown
│   │   └── test
│   │       └── map.js
│   ├── content-type
│   │   ├── HISTORY.md
│   │   ├── index.js
│   │   ├── LICENSE
│   │   ├── package.json
│   │   └── README.md
│   ├── depd
│   │   ├── History.md
│   │   ├── index.js
│   │   ├── lib
│   │   │   └── browser
│   │   │       └── index.js
│   │   ├── LICENSE
│   │   ├── package.json
│   │   └── Readme.md
│   ├── fs.realpath
│   │   ├── index.js
│   │   ├── LICENSE
│   │   ├── old.js
│   │   ├── package.json
│   │   └── README.md
│   ├── function-bind
│   │   ├── .eslintrc
│   │   ├── .github
│   │   │   ├── FUNDING.yml
│   │   │   └── SECURITY.md
│   │   ├── .nycrc
│   │   ├── CHANGELOG.md
│   │   ├── implementation.js
│   │   ├── index.js
│   │   ├── LICENSE
│   │   ├── package.json
│   │   ├── README.md
│   │   └── test
│   │       ├── .eslintrc
│   │       └── index.js
│   ├── glob
│   │   ├── common.js
│   │   ├── glob.js
│   │   ├── LICENSE
│   │   ├── package.json
│   │   ├── README.md
│   │   └── sync.js
│   ├── hasown
│   │   ├── .eslintrc
│   │   ├── .github
│   │   │   └── FUNDING.yml
│   │   ├── .nycrc
│   │   ├── CHANGELOG.md
│   │   ├── index.d.ts
│   │   ├── index.js
│   │   ├── LICENSE
│   │   ├── package.json
│   │   ├── README.md
│   │   └── tsconfig.json
│   ├── 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
│   ├── inflight
│   │   ├── inflight.js
│   │   ├── LICENSE
│   │   ├── package.json
│   │   └── README.md
│   ├── inherits
│   │   ├── inherits_browser.js
│   │   ├── inherits.js
│   │   ├── LICENSE
│   │   ├── package.json
│   │   └── README.md
│   ├── interpret
│   │   ├── CHANGELOG
│   │   ├── index.js
│   │   ├── LICENSE
│   │   ├── mjs-stub.js
│   │   ├── package.json
│   │   └── README.md
│   ├── is-core-module
│   │   ├── .eslintrc
│   │   ├── .nycrc
│   │   ├── CHANGELOG.md
│   │   ├── core.json
│   │   ├── index.js
│   │   ├── LICENSE
│   │   ├── package.json
│   │   ├── README.md
│   │   └── test
│   │       └── index.js
│   ├── minimatch
│   │   ├── LICENSE
│   │   ├── minimatch.js
│   │   ├── package.json
│   │   └── README.md
│   ├── minimist
│   │   ├── .eslintrc
│   │   ├── .github
│   │   │   └── FUNDING.yml
│   │   ├── .nycrc
│   │   ├── CHANGELOG.md
│   │   ├── example
│   │   │   └── parse.js
│   │   ├── index.js
│   │   ├── LICENSE
│   │   ├── package.json
│   │   ├── README.md
│   │   └── test
│   │       ├── all_bool.js
│   │       ├── bool.js
│   │       ├── dash.js
│   │       ├── default_bool.js
│   │       ├── dotted.js
│   │       ├── kv_short.js
│   │       ├── long.js
│   │       ├── num.js
│   │       ├── parse_modified.js
│   │       ├── parse.js
│   │       ├── proto.js
│   │       ├── short.js
│   │       ├── stop_early.js
│   │       ├── unknown.js
│   │       └── whitespace.js
│   ├── once
│   │   ├── LICENSE
│   │   ├── once.js
│   │   ├── package.json
│   │   └── README.md
│   ├── path-is-absolute
│   │   ├── index.js
│   │   ├── license
│   │   ├── package.json
│   │   └── readme.md
│   ├── path-parse
│   │   ├── index.js
│   │   ├── LICENSE
│   │   ├── package.json
│   │   └── README.md
│   ├── raw-body
│   │   ├── HISTORY.md
│   │   ├── index.d.ts
│   │   ├── index.js
│   │   ├── LICENSE
│   │   ├── package.json
│   │   ├── README.md
│   │   └── SECURITY.md
│   ├── rechoir
│   │   ├── .npmignore
│   │   ├── .travis.yml
│   │   ├── CHANGELOG
│   │   ├── index.js
│   │   ├── lib
│   │   │   ├── extension.js
│   │   │   ├── normalize.js
│   │   │   └── register.js
│   │   ├── LICENSE
│   │   ├── package.json
│   │   └── README.md
│   ├── resolve
│   │   ├── .editorconfig
│   │   ├── .eslintrc
│   │   ├── .github
│   │   │   └── FUNDING.yml
│   │   ├── async.js
│   │   ├── bin
│   │   │   └── resolve
│   │   ├── example
│   │   │   ├── async.js
│   │   │   └── sync.js
│   │   ├── index.js
│   │   ├── lib
│   │   │   ├── async.js
│   │   │   ├── caller.js
│   │   │   ├── core.js
│   │   │   ├── core.json
│   │   │   ├── homedir.js
│   │   │   ├── is-core.js
│   │   │   ├── node-modules-paths.js
│   │   │   ├── normalize-options.js
│   │   │   └── sync.js
│   │   ├── LICENSE
│   │   ├── package.json
│   │   ├── readme.markdown
│   │   ├── SECURITY.md
│   │   ├── sync.js
│   │   └── test
│   │       ├── core.js
│   │       ├── dotdot
│   │       │   ├── abc
│   │       │   │   └── index.js
│   │       │   └── index.js
│   │       ├── dotdot.js
│   │       ├── faulty_basedir.js
│   │       ├── filter_sync.js
│   │       ├── filter.js
│   │       ├── home_paths_sync.js
│   │       ├── home_paths.js
│   │       ├── list-exports
│   │       │   ├── .eslintignore
│   │       │   ├── .eslintrc
│   │       │   ├── .github
│   │       │   │   ├── FUNDING.yml
│   │       │   │   └── workflows
│   │       │   │       ├── conditions.yml
│   │       │   │       ├── fixtures.yml
│   │       │   │       ├── ls-engines.yml
│   │       │   │       ├── node-pretest.yml
│   │       │   │       ├── node.yml
│   │       │   │       ├── rebase.yml
│   │       │   │       └── require-allow-edits.yml
│   │       │   ├── LICENSE
│   │       │   ├── package.json
│   │       │   ├── packages
│   │       │   │   ├── list-exports
│   │       │   │   │   ├── .eslintrc
│   │       │   │   │   ├── index.js
│   │       │   │   │   ├── package.json
│   │       │   │   │   └── README.md
│   │       │   │   ├── ls-exports
│   │       │   │   │   ├── .eslintrc
│   │       │   │   │   ├── bin
│   │       │   │   │   │   └── ls-exports
│   │       │   │   │   ├── exportsTable.js
│   │       │   │   │   ├── getPackageJSONPath.js
│   │       │   │   │   ├── package.json
│   │       │   │   │   ├── README.md
│   │       │   │   │   └── table.js
│   │       │   │   └── tests
│   │       │   │       ├── .eslintignore
│   │       │   │       ├── .eslintrc
│   │       │   │       ├── conditions-expected.js
│   │       │   │       ├── conditions.js
│   │       │   │       ├── fixtures
│   │       │   │       │   ├── es-abstract
│   │       │   │       │   │   ├── expected
│   │       │   │       │   │   │   ├── broken-dir-slash-conditions.json
│   │       │   │       │   │   │   ├── conditions.json
│   │       │   │       │   │   │   ├── pattern-trailers-no-dir-slash.json
│   │       │   │       │   │   │   ├── patterns.json
│   │       │   │       │   │   │   └── pre-exports.json
│   │       │   │       │   │   └── project
│   │       │   │       │   │       ├── 2015
│   │       │   │       │   │       │   ├── AbstractEqualityComparison.js
│   │       │   │       │   │       │   ├── AbstractRelationalComparison.js
│   │       │   │       │   │       │   ├── AdvanceStringIndex.js
│   │       │   │       │   │       │   ├── ArrayCreate.js
│   │       │   │       │   │       │   ├── ArraySetLength.js
│   │       │   │       │   │       │   ├── ArraySpeciesCreate.js
│   │       │   │       │   │       │   ├── Call.js
│   │       │   │       │   │       │   ├── CanonicalNumericIndexString.js
│   │       │   │       │   │       │   ├── CompletePropertyDescriptor.js
│   │       │   │       │   │       │   ├── CreateDataProperty.js
│   │       │   │       │   │       │   ├── CreateDataPropertyOrThrow.js
│   │       │   │       │   │       │   ├── CreateHTML.js
│   │       │   │       │   │       │   ├── CreateIterResultObject.js
│   │       │   │       │   │       │   ├── CreateListFromArrayLike.js
│   │       │   │       │   │       │   ├── CreateMethodProperty.js
│   │       │   │       │   │       │   ├── DateFromTime.js
│   │       │   │       │   │       │   ├── Day.js
│   │       │   │       │   │       │   ├── DayFromYear.js
│   │       │   │       │   │       │   ├── DaysInYear.js
│   │       │   │       │   │       │   ├── DayWithinYear.js
│   │       │   │       │   │       │   ├── DefinePropertyOrThrow.js
│   │       │   │       │   │       │   ├── DeletePropertyOrThrow.js
│   │       │   │       │   │       │   ├── EnumerableOwnNames.js
│   │       │   │       │   │       │   ├── FromPropertyDescriptor.js
│   │       │   │       │   │       │   ├── Get.js
│   │       │   │       │   │       │   ├── GetIterator.js
│   │       │   │       │   │       │   ├── GetMethod.js
│   │       │   │       │   │       │   ├── GetOwnPropertyKeys.js
│   │       │   │       │   │       │   ├── GetPrototypeFromConstructor.js
│   │       │   │       │   │       │   ├── GetSubstitution.js
│   │       │   │       │   │       │   ├── GetV.js
│   │       │   │       │   │       │   ├── HasOwnProperty.js
│   │       │   │       │   │       │   ├── HasProperty.js
│   │       │   │       │   │       │   ├── HourFromTime.js
│   │       │   │       │   │       │   ├── InLeapYear.js
│   │       │   │       │   │       │   ├── InstanceofOperator.js
│   │       │   │       │   │       │   ├── Invoke.js
│   │       │   │       │   │       │   ├── IsAccessorDescriptor.js
│   │       │   │       │   │       │   ├── IsArray.js
│   │       │   │       │   │       │   ├── IsCallable.js
│   │       │   │       │   │       │   ├── IsConcatSpreadable.js
│   │       │   │       │   │       │   ├── IsConstructor.js
│   │       │   │       │   │       │   ├── IsDataDescriptor.js
│   │       │   │       │   │       │   ├── IsExtensible.js
│   │       │   │       │   │       │   ├── IsGenericDescriptor.js
│   │       │   │       │   │       │   ├── IsInteger.js
│   │       │   │       │   │       │   ├── IsPromise.js
│   │       │   │       │   │       │   ├── IsPropertyDescriptor.js
│   │       │   │       │   │       │   ├── IsPropertyKey.js
│   │       │   │       │   │       │   ├── IsRegExp.js
│   │       │   │       │   │       │   ├── IteratorClose.js
│   │       │   │       │   │       │   ├── IteratorComplete.js
│   │       │   │       │   │       │   ├── IteratorNext.js
│   │       │   │       │   │       │   ├── IteratorStep.js
│   │       │   │       │   │       │   ├── IteratorValue.js
│   │       │   │       │   │       │   ├── MakeDate.js
│   │       │   │       │   │       │   ├── MakeDay.js
│   │       │   │       │   │       │   ├── MakeTime.js
│   │       │   │       │   │       │   ├── MinFromTime.js
│   │       │   │       │   │       │   ├── modulo.js
│   │       │   │       │   │       │   ├── MonthFromTime.js
│   │       │   │       │   │       │   ├── msFromTime.js
│   │       │   │       │   │       │   ├── ObjectCreate.js
│   │       │   │       │   │       │   ├── OrdinaryDefineOwnProperty.js
│   │       │   │       │   │       │   ├── OrdinaryGetOwnProperty.js
│   │       │   │       │   │       │   ├── OrdinaryHasInstance.js
│   │       │   │       │   │       │   ├── OrdinaryHasProperty.js
│   │       │   │       │   │       │   ├── RegExpExec.js
│   │       │   │       │   │       │   ├── RequireObjectCoercible.js
│   │       │   │       │   │       │   ├── SameValue.js
│   │       │   │       │   │       │   ├── SameValueZero.js
│   │       │   │       │   │       │   ├── SecFromTime.js
│   │       │   │       │   │       │   ├── Set.js
│   │       │   │       │   │       │   ├── SetFunctionName.js
│   │       │   │       │   │       │   ├── SetIntegrityLevel.js
│   │       │   │       │   │       │   ├── SpeciesConstructor.js
│   │       │   │       │   │       │   ├── StrictEqualityComparison.js
│   │       │   │       │   │       │   ├── SymbolDescriptiveString.js
│   │       │   │       │   │       │   ├── TestIntegrityLevel.js
│   │       │   │       │   │       │   ├── thisBooleanValue.js
│   │       │   │       │   │       │   ├── thisNumberValue.js
│   │       │   │       │   │       │   ├── thisStringValue.js
│   │       │   │       │   │       │   ├── thisTimeValue.js
│   │       │   │       │   │       │   ├── TimeClip.js
│   │       │   │       │   │       │   ├── TimeFromYear.js
│   │       │   │       │   │       │   ├── TimeWithinDay.js
│   │       │   │       │   │       │   ├── ToBoolean.js
│   │       │   │       │   │       │   ├── ToDateString.js
│   │       │   │       │   │       │   ├── ToInt16.js
│   │       │   │       │   │       │   ├── ToInt32.js
│   │       │   │       │   │       │   ├── ToInt8.js
│   │       │   │       │   │       │   ├── ToInteger.js
│   │       │   │       │   │       │   ├── ToLength.js
│   │       │   │       │   │       │   ├── ToNumber.js
│   │       │   │       │   │       │   ├── ToObject.js
│   │       │   │       │   │       │   ├── ToPrimitive.js
│   │       │   │       │   │       │   ├── ToPropertyDescriptor.js
│   │       │   │       │   │       │   ├── ToPropertyKey.js
│   │       │   │       │   │       │   ├── ToString.js
│   │       │   │       │   │       │   ├── ToUint16.js
│   │       │   │       │   │       │   ├── ToUint32.js
│   │       │   │       │   │       │   ├── ToUint8.js
│   │       │   │       │   │       │   ├── ToUint8Clamp.js
│   │       │   │       │   │       │   ├── Type.js
│   │       │   │       │   │       │   ├── ValidateAndApplyPropertyDescriptor.js
│   │       │   │       │   │       │   ├── WeekDay.js
│   │       │   │       │   │       │   └── YearFromTime.js
│   │       │   │       │   │       ├── 2016
│   │       │   │       │   │       │   ├── AbstractEqualityComparison.js
│   │       │   │       │   │       │   ├── AbstractRelationalComparison.js
│   │       │   │       │   │       │   ├── AdvanceStringIndex.js
│   │       │   │       │   │       │   ├── ArrayCreate.js
│   │       │   │       │   │       │   ├── ArraySetLength.js
│   │       │   │       │   │       │   ├── ArraySpeciesCreate.js
│   │       │   │       │   │       │   ├── Call.js
│   │       │   │       │   │       │   ├── CanonicalNumericIndexString.js
│   │       │   │       │   │       │   ├── CompletePropertyDescriptor.js
│   │       │   │       │   │       │   ├── CreateDataProperty.js
│   │       │   │       │   │       │   ├── CreateDataPropertyOrThrow.js
│   │       │   │       │   │       │   ├── CreateHTML.js
│   │       │   │       │   │       │   ├── CreateIterResultObject.js
│   │       │   │       │   │       │   ├── CreateListFromArrayLike.js
│   │       │   │       │   │       │   ├── CreateMethodProperty.js
│   │       │   │       │   │       │   ├── DateFromTime.js
│   │       │   │       │   │       │   ├── Day.js
│   │       │   │       │   │       │   ├── DayFromYear.js
│   │       │   │       │   │       │   ├── DaysInYear.js
│   │       │   │       │   │       │   ├── DayWithinYear.js
│   │       │   │       │   │       │   ├── DefinePropertyOrThrow.js
│   │       │   │       │   │       │   ├── DeletePropertyOrThrow.js
│   │       │   │       │   │       │   ├── EnumerableOwnNames.js
│   │       │   │       │   │       │   ├── FromPropertyDescriptor.js
│   │       │   │       │   │       │   ├── Get.js
│   │       │   │       │   │       │   ├── GetIterator.js
│   │       │   │       │   │       │   ├── GetMethod.js
│   │       │   │       │   │       │   ├── GetOwnPropertyKeys.js
│   │       │   │       │   │       │   ├── GetPrototypeFromConstructor.js
│   │       │   │       │   │       │   ├── GetSubstitution.js
│   │       │   │       │   │       │   ├── GetV.js
│   │       │   │       │   │       │   ├── HasOwnProperty.js
│   │       │   │       │   │       │   ├── HasProperty.js
│   │       │   │       │   │       │   ├── HourFromTime.js
│   │       │   │       │   │       │   ├── InLeapYear.js
│   │       │   │       │   │       │   ├── InstanceofOperator.js
│   │       │   │       │   │       │   ├── Invoke.js
│   │       │   │       │   │       │   ├── IsAccessorDescriptor.js
│   │       │   │       │   │       │   ├── IsArray.js
│   │       │   │       │   │       │   ├── IsCallable.js
│   │       │   │       │   │       │   ├── IsConcatSpreadable.js
│   │       │   │       │   │       │   ├── IsConstructor.js
│   │       │   │       │   │       │   ├── IsDataDescriptor.js
│   │       │   │       │   │       │   ├── IsExtensible.js
│   │       │   │       │   │       │   ├── IsGenericDescriptor.js
│   │       │   │       │   │       │   ├── IsInteger.js
│   │       │   │       │   │       │   ├── IsPromise.js
│   │       │   │       │   │       │   ├── IsPropertyDescriptor.js
│   │       │   │       │   │       │   ├── IsPropertyKey.js
│   │       │   │       │   │       │   ├── IsRegExp.js
│   │       │   │       │   │       │   ├── IterableToArrayLike.js
│   │       │   │       │   │       │   ├── IteratorClose.js
│   │       │   │       │   │       │   ├── IteratorComplete.js
│   │       │   │       │   │       │   ├── IteratorNext.js
│   │       │   │       │   │       │   ├── IteratorStep.js
│   │       │   │       │   │       │   ├── IteratorValue.js
│   │       │   │       │   │       │   ├── MakeDate.js
│   │       │   │       │   │       │   ├── MakeDay.js
│   │       │   │       │   │       │   ├── MakeTime.js
│   │       │   │       │   │       │   ├── MinFromTime.js
│   │       │   │       │   │       │   ├── modulo.js
│   │       │   │       │   │       │   ├── MonthFromTime.js
│   │       │   │       │   │       │   ├── msFromTime.js
│   │       │   │       │   │       │   ├── ObjectCreate.js
│   │       │   │       │   │       │   ├── OrdinaryDefineOwnProperty.js
│   │       │   │       │   │       │   ├── OrdinaryGetOwnProperty.js
│   │       │   │       │   │       │   ├── OrdinaryGetPrototypeOf.js
│   │       │   │       │   │       │   ├── OrdinaryHasInstance.js
│   │       │   │       │   │       │   ├── OrdinaryHasProperty.js
│   │       │   │       │   │       │   ├── OrdinarySetPrototypeOf.js
│   │       │   │       │   │       │   ├── RegExpExec.js
│   │       │   │       │   │       │   ├── RequireObjectCoercible.js
│   │       │   │       │   │       │   ├── SameValue.js
│   │       │   │       │   │       │   ├── SameValueNonNumber.js
│   │       │   │       │   │       │   ├── SameValueZero.js
│   │       │   │       │   │       │   ├── SecFromTime.js
│   │       │   │       │   │       │   ├── Set.js
│   │       │   │       │   │       │   ├── SetFunctionName.js
│   │       │   │       │   │       │   ├── SetIntegrityLevel.js
│   │       │   │       │   │       │   ├── SpeciesConstructor.js
│   │       │   │       │   │       │   ├── StrictEqualityComparison.js
│   │       │   │       │   │       │   ├── SymbolDescriptiveString.js
│   │       │   │       │   │       │   ├── TestIntegrityLevel.js
│   │       │   │       │   │       │   ├── thisBooleanValue.js
│   │       │   │       │   │       │   ├── thisNumberValue.js
│   │       │   │       │   │       │   ├── thisStringValue.js
│   │       │   │       │   │       │   ├── thisTimeValue.js
│   │       │   │       │   │       │   ├── TimeClip.js
│   │       │   │       │   │       │   ├── TimeFromYear.js
│   │       │   │       │   │       │   ├── TimeWithinDay.js
│   │       │   │       │   │       │   ├── ToBoolean.js
│   │       │   │       │   │       │   ├── ToDateString.js
│   │       │   │       │   │       │   ├── ToInt16.js
│   │       │   │       │   │       │   ├── ToInt32.js
│   │       │   │       │   │       │   ├── ToInt8.js
│   │       │   │       │   │       │   ├── ToInteger.js
│   │       │   │       │   │       │   ├── ToLength.js
│   │       │   │       │   │       │   ├── ToNumber.js
│   │       │   │       │   │       │   ├── ToObject.js
│   │       │   │       │   │       │   ├── ToPrimitive.js
│   │       │   │       │   │       │   ├── ToPropertyDescriptor.js
│   │       │   │       │   │       │   ├── ToPropertyKey.js
│   │       │   │       │   │       │   ├── ToString.js
│   │       │   │       │   │       │   ├── ToUint16.js
│   │       │   │       │   │       │   ├── ToUint32.js
│   │       │   │       │   │       │   ├── ToUint8.js
│   │       │   │       │   │       │   ├── ToUint8Clamp.js
│   │       │   │       │   │       │   ├── Type.js
│   │       │   │       │   │       │   ├── ValidateAndApplyPropertyDescriptor.js
│   │       │   │       │   │       │   ├── WeekDay.js
│   │       │   │       │   │       │   └── YearFromTime.js
│   │       │   │       │   │       ├── 2017
│   │       │   │       │   │       │   ├── AbstractEqualityComparison.js
│   │       │   │       │   │       │   ├── AbstractRelationalComparison.js
│   │       │   │       │   │       │   ├── AdvanceStringIndex.js
│   │       │   │       │   │       │   ├── ArrayCreate.js
│   │       │   │       │   │       │   ├── ArraySetLength.js
│   │       │   │       │   │       │   ├── ArraySpeciesCreate.js
│   │       │   │       │   │       │   ├── Call.js
│   │       │   │       │   │       │   ├── CanonicalNumericIndexString.js
│   │       │   │       │   │       │   ├── CompletePropertyDescriptor.js
│   │       │   │       │   │       │   ├── CreateDataProperty.js
│   │       │   │       │   │       │   ├── CreateDataPropertyOrThrow.js
│   │       │   │       │   │       │   ├── CreateHTML.js
│   │       │   │       │   │       │   ├── CreateIterResultObject.js
│   │       │   │       │   │       │   ├── CreateListFromArrayLike.js
│   │       │   │       │   │       │   ├── CreateMethodProperty.js
│   │       │   │       │   │       │   ├── DateFromTime.js
│   │       │   │       │   │       │   ├── Day.js
│   │       │   │       │   │       │   ├── DayFromYear.js
│   │       │   │       │   │       │   ├── DaysInYear.js
│   │       │   │       │   │       │   ├── DayWithinYear.js
│   │       │   │       │   │       │   ├── DefinePropertyOrThrow.js
│   │       │   │       │   │       │   ├── DeletePropertyOrThrow.js
│   │       │   │       │   │       │   ├── EnumerableOwnProperties.js
│   │       │   │       │   │       │   ├── FromPropertyDescriptor.js
│   │       │   │       │   │       │   ├── Get.js
│   │       │   │       │   │       │   ├── GetIterator.js
│   │       │   │       │   │       │   ├── GetMethod.js
│   │       │   │       │   │       │   ├── GetOwnPropertyKeys.js
│   │       │   │       │   │       │   ├── GetPrototypeFromConstructor.js
│   │       │   │       │   │       │   ├── GetSubstitution.js
│   │       │   │       │   │       │   ├── GetV.js
│   │       │   │       │   │       │   ├── HasOwnProperty.js
│   │       │   │       │   │       │   ├── HasProperty.js
│   │       │   │       │   │       │   ├── HourFromTime.js
│   │       │   │       │   │       │   ├── InLeapYear.js
│   │       │   │       │   │       │   ├── InstanceofOperator.js
│   │       │   │       │   │       │   ├── Invoke.js
│   │       │   │       │   │       │   ├── IsAccessorDescriptor.js
│   │       │   │       │   │       │   ├── IsArray.js
│   │       │   │       │   │       │   ├── IsCallable.js
│   │       │   │       │   │       │   ├── IsConcatSpreadable.js
│   │       │   │       │   │       │   ├── IsConstructor.js
│   │       │   │       │   │       │   ├── IsDataDescriptor.js
│   │       │   │       │   │       │   ├── IsExtensible.js
│   │       │   │       │   │       │   ├── IsGenericDescriptor.js
│   │       │   │       │   │       │   ├── IsInteger.js
│   │       │   │       │   │       │   ├── IsPromise.js
│   │       │   │       │   │       │   ├── IsPropertyDescriptor.js
│   │       │   │       │   │       │   ├── IsPropertyKey.js
│   │       │   │       │   │       │   ├── IsRegExp.js
│   │       │   │       │   │       │   ├── IterableToList.js
│   │       │   │       │   │       │   ├── IteratorClose.js
│   │       │   │       │   │       │   ├── IteratorComplete.js
│   │       │   │       │   │       │   ├── IteratorNext.js
│   │       │   │       │   │       │   ├── IteratorStep.js
│   │       │   │       │   │       │   ├── IteratorValue.js
│   │       │   │       │   │       │   ├── MakeDate.js
│   │       │   │       │   │       │   ├── MakeDay.js
│   │       │   │       │   │       │   ├── MakeTime.js
│   │       │   │       │   │       │   ├── MinFromTime.js
│   │       │   │       │   │       │   ├── modulo.js
│   │       │   │       │   │       │   ├── MonthFromTime.js
│   │       │   │       │   │       │   ├── msFromTime.js
│   │       │   │       │   │       │   ├── ObjectCreate.js
│   │       │   │       │   │       │   ├── OrdinaryDefineOwnProperty.js
│   │       │   │       │   │       │   ├── OrdinaryGetOwnProperty.js
│   │       │   │       │   │       │   ├── OrdinaryGetPrototypeOf.js
│   │       │   │       │   │       │   ├── OrdinaryHasInstance.js
│   │       │   │       │   │       │   ├── OrdinaryHasProperty.js
│   │       │   │       │   │       │   ├── OrdinarySetPrototypeOf.js
│   │       │   │       │   │       │   ├── RegExpExec.js
│   │       │   │       │   │       │   ├── RequireObjectCoercible.js
│   │       │   │       │   │       │   ├── SameValue.js
│   │       │   │       │   │       │   ├── SameValueNonNumber.js
│   │       │   │       │   │       │   ├── SameValueZero.js
│   │       │   │       │   │       │   ├── SecFromTime.js
│   │       │   │       │   │       │   ├── Set.js
│   │       │   │       │   │       │   ├── SetFunctionName.js
│   │       │   │       │   │       │   ├── SetIntegrityLevel.js
│   │       │   │       │   │       │   ├── SpeciesConstructor.js
│   │       │   │       │   │       │   ├── StrictEqualityComparison.js
│   │       │   │       │   │       │   ├── SymbolDescriptiveString.js
│   │       │   │       │   │       │   ├── TestIntegrityLevel.js
│   │       │   │       │   │       │   ├── thisBooleanValue.js
│   │       │   │       │   │       │   ├── thisNumberValue.js
│   │       │   │       │   │       │   ├── thisStringValue.js
│   │       │   │       │   │       │   ├── thisTimeValue.js
│   │       │   │       │   │       │   ├── TimeClip.js
│   │       │   │       │   │       │   ├── TimeFromYear.js
│   │       │   │       │   │       │   ├── TimeWithinDay.js
│   │       │   │       │   │       │   ├── ToBoolean.js
│   │       │   │       │   │       │   ├── ToDateString.js
│   │       │   │       │   │       │   ├── ToIndex.js
│   │       │   │       │   │       │   ├── ToInt16.js
│   │       │   │       │   │       │   ├── ToInt32.js
│   │       │   │       │   │       │   ├── ToInt8.js
│   │       │   │       │   │       │   ├── ToInteger.js
│   │       │   │       │   │       │   ├── ToLength.js
│   │       │   │       │   │       │   ├── ToNumber.js
│   │       │   │       │   │       │   ├── ToObject.js
│   │       │   │       │   │       │   ├── ToPrimitive.js
│   │       │   │       │   │       │   ├── ToPropertyDescriptor.js
│   │       │   │       │   │       │   ├── ToPropertyKey.js
│   │       │   │       │   │       │   ├── ToString.js
│   │       │   │       │   │       │   ├── ToUint16.js
│   │       │   │       │   │       │   ├── ToUint32.js
│   │       │   │       │   │       │   ├── ToUint8.js
│   │       │   │       │   │       │   ├── ToUint8Clamp.js
│   │       │   │       │   │       │   ├── Type.js
│   │       │   │       │   │       │   ├── ValidateAndApplyPropertyDescriptor.js
│   │       │   │       │   │       │   ├── WeekDay.js
│   │       │   │       │   │       │   └── YearFromTime.js
│   │       │   │       │   │       ├── 2018
│   │       │   │       │   │       │   ├── AbstractEqualityComparison.js
│   │       │   │       │   │       │   ├── AbstractRelationalComparison.js
│   │       │   │       │   │       │   ├── AdvanceStringIndex.js
│   │       │   │       │   │       │   ├── ArrayCreate.js
│   │       │   │       │   │       │   ├── ArraySetLength.js
│   │       │   │       │   │       │   ├── ArraySpeciesCreate.js
│   │       │   │       │   │       │   ├── Call.js
│   │       │   │       │   │       │   ├── CanonicalNumericIndexString.js
│   │       │   │       │   │       │   ├── CompletePropertyDescriptor.js
│   │       │   │       │   │       │   ├── CopyDataProperties.js
│   │       │   │       │   │       │   ├── CreateDataProperty.js
│   │       │   │       │   │       │   ├── CreateDataPropertyOrThrow.js
│   │       │   │       │   │       │   ├── CreateHTML.js
│   │       │   │       │   │       │   ├── CreateIterResultObject.js
│   │       │   │       │   │       │   ├── CreateListFromArrayLike.js
│   │       │   │       │   │       │   ├── CreateMethodProperty.js
│   │       │   │       │   │       │   ├── DateFromTime.js
│   │       │   │       │   │       │   ├── DateString.js
│   │       │   │       │   │       │   ├── Day.js
│   │       │   │       │   │       │   ├── DayFromYear.js
│   │       │   │       │   │       │   ├── DaysInYear.js
│   │       │   │       │   │       │   ├── DayWithinYear.js
│   │       │   │       │   │       │   ├── DefinePropertyOrThrow.js
│   │       │   │       │   │       │   ├── DeletePropertyOrThrow.js
│   │       │   │       │   │       │   ├── EnumerableOwnPropertyNames.js
│   │       │   │       │   │       │   ├── FromPropertyDescriptor.js
│   │       │   │       │   │       │   ├── Get.js
│   │       │   │       │   │       │   ├── GetIterator.js
│   │       │   │       │   │       │   ├── GetMethod.js
│   │       │   │       │   │       │   ├── GetOwnPropertyKeys.js
│   │       │   │       │   │       │   ├── GetPrototypeFromConstructor.js
│   │       │   │       │   │       │   ├── GetSubstitution.js
│   │       │   │       │   │       │   ├── GetV.js
│   │       │   │       │   │       │   ├── HasOwnProperty.js
│   │       │   │       │   │       │   ├── HasProperty.js
│   │       │   │       │   │       │   ├── HourFromTime.js
│   │       │   │       │   │       │   ├── InLeapYear.js
│   │       │   │       │   │       │   ├── InstanceofOperator.js
│   │       │   │       │   │       │   ├── Invoke.js
│   │       │   │       │   │       │   ├── IsAccessorDescriptor.js
│   │       │   │       │   │       │   ├── IsArray.js
│   │       │   │       │   │       │   ├── IsCallable.js
│   │       │   │       │   │       │   ├── IsConcatSpreadable.js
│   │       │   │       │   │       │   ├── IsConstructor.js
│   │       │   │       │   │       │   ├── IsDataDescriptor.js
│   │       │   │       │   │       │   ├── IsExtensible.js
│   │       │   │       │   │       │   ├── IsGenericDescriptor.js
│   │       │   │       │   │       │   ├── IsInteger.js
│   │       │   │       │   │       │   ├── IsPromise.js
│   │       │   │       │   │       │   ├── IsPropertyKey.js
│   │       │   │       │   │       │   ├── IsRegExp.js
│   │       │   │       │   │       │   ├── IsStringPrefix.js
│   │       │   │       │   │       │   ├── IterableToList.js
│   │       │   │       │   │       │   ├── IteratorClose.js
│   │       │   │       │   │       │   ├── IteratorComplete.js
│   │       │   │       │   │       │   ├── IteratorNext.js
│   │       │   │       │   │       │   ├── IteratorStep.js
│   │       │   │       │   │       │   ├── IteratorValue.js
│   │       │   │       │   │       │   ├── MakeDate.js
│   │       │   │       │   │       │   ├── MakeDay.js
│   │       │   │       │   │       │   ├── MakeTime.js
│   │       │   │       │   │       │   ├── MinFromTime.js
│   │       │   │       │   │       │   ├── modulo.js
│   │       │   │       │   │       │   ├── MonthFromTime.js
│   │       │   │       │   │       │   ├── msFromTime.js
│   │       │   │       │   │       │   ├── NumberToString.js
│   │       │   │       │   │       │   ├── ObjectCreate.js
│   │       │   │       │   │       │   ├── OrdinaryDefineOwnProperty.js
│   │       │   │       │   │       │   ├── OrdinaryGetOwnProperty.js
│   │       │   │       │   │       │   ├── OrdinaryGetPrototypeOf.js
│   │       │   │       │   │       │   ├── OrdinaryHasInstance.js
│   │       │   │       │   │       │   ├── OrdinaryHasProperty.js
│   │       │   │       │   │       │   ├── OrdinarySetPrototypeOf.js
│   │       │   │       │   │       │   ├── PromiseResolve.js
│   │       │   │       │   │       │   ├── RegExpExec.js
│   │       │   │       │   │       │   ├── RequireObjectCoercible.js
│   │       │   │       │   │       │   ├── SameValue.js
│   │       │   │       │   │       │   ├── SameValueNonNumber.js
│   │       │   │       │   │       │   ├── SameValueZero.js
│   │       │   │       │   │       │   ├── SecFromTime.js
│   │       │   │       │   │       │   ├── Set.js
│   │       │   │       │   │       │   ├── SetFunctionName.js
│   │       │   │       │   │       │   ├── SetIntegrityLevel.js
│   │       │   │       │   │       │   ├── SpeciesConstructor.js
│   │       │   │       │   │       │   ├── StrictEqualityComparison.js
│   │       │   │       │   │       │   ├── SymbolDescriptiveString.js
│   │       │   │       │   │       │   ├── TestIntegrityLevel.js
│   │       │   │       │   │       │   ├── thisBooleanValue.js
│   │       │   │       │   │       │   ├── thisNumberValue.js
│   │       │   │       │   │       │   ├── thisStringValue.js
│   │       │   │       │   │       │   ├── thisSymbolValue.js
│   │       │   │       │   │       │   ├── thisTimeValue.js
│   │       │   │       │   │       │   ├── TimeClip.js
│   │       │   │       │   │       │   ├── TimeFromYear.js
│   │       │   │       │   │       │   ├── TimeString.js
│   │       │   │       │   │       │   ├── TimeWithinDay.js
│   │       │   │       │   │       │   ├── ToBoolean.js
│   │       │   │       │   │       │   ├── ToDateString.js
│   │       │   │       │   │       │   ├── ToIndex.js
│   │       │   │       │   │       │   ├── ToInt16.js
│   │       │   │       │   │       │   ├── ToInt32.js
│   │       │   │       │   │       │   ├── ToInt8.js
│   │       │   │       │   │       │   ├── ToInteger.js
│   │       │   │       │   │       │   ├── ToLength.js
│   │       │   │       │   │       │   ├── ToNumber.js
│   │       │   │       │   │       │   ├── ToObject.js
│   │       │   │       │   │       │   ├── ToPrimitive.js
│   │       │   │       │   │       │   ├── ToPropertyDescriptor.js
│   │       │   │       │   │       │   ├── ToPropertyKey.js
│   │       │   │       │   │       │   ├── ToString.js
│   │       │   │       │   │       │   ├── ToUint16.js
│   │       │   │       │   │       │   ├── ToUint32.js
│   │       │   │       │   │       │   ├── ToUint8.js
│   │       │   │       │   │       │   ├── ToUint8Clamp.js
│   │       │   │       │   │       │   ├── Type.js
│   │       │   │       │   │       │   ├── ValidateAndApplyPropertyDescriptor.js
│   │       │   │       │   │       │   ├── WeekDay.js
│   │       │   │       │   │       │   └── YearFromTime.js
│   │       │   │       │   │       ├── 2019
│   │       │   │       │   │       │   ├── AbstractEqualityComparison.js
│   │       │   │       │   │       │   ├── AbstractRelationalComparison.js
│   │       │   │       │   │       │   ├── AddEntriesFromIterable.js
│   │       │   │       │   │       │   ├── AdvanceStringIndex.js
│   │       │   │       │   │       │   ├── ArrayCreate.js
│   │       │   │       │   │       │   ├── ArraySetLength.js
│   │       │   │       │   │       │   ├── ArraySpeciesCreate.js
│   │       │   │       │   │       │   ├── Call.js
│   │       │   │       │   │       │   ├── CanonicalNumericIndexString.js
│   │       │   │       │   │       │   ├── CompletePropertyDescriptor.js
│   │       │   │       │   │       │   ├── CopyDataProperties.js
│   │       │   │       │   │       │   ├── CreateDataProperty.js
│   │       │   │       │   │       │   ├── CreateDataPropertyOrThrow.js
│   │       │   │       │   │       │   ├── CreateHTML.js
│   │       │   │       │   │       │   ├── CreateIterResultObject.js
│   │       │   │       │   │       │   ├── CreateListFromArrayLike.js
│   │       │   │       │   │       │   ├── CreateMethodProperty.js
│   │       │   │       │   │       │   ├── DateFromTime.js
│   │       │   │       │   │       │   ├── DateString.js
│   │       │   │       │   │       │   ├── Day.js
│   │       │   │       │   │       │   ├── DayFromYear.js
│   │       │   │       │   │       │   ├── DaysInYear.js
│   │       │   │       │   │       │   ├── DayWithinYear.js
│   │       │   │       │   │       │   ├── DefinePropertyOrThrow.js
│   │       │   │       │   │       │   ├── DeletePropertyOrThrow.js
│   │       │   │       │   │       │   ├── EnumerableOwnPropertyNames.js
│   │       │   │       │   │       │   ├── FlattenIntoArray.js
│   │       │   │       │   │       │   ├── FromPropertyDescriptor.js
│   │       │   │       │   │       │   ├── Get.js
│   │       │   │       │   │       │   ├── GetIterator.js
│   │       │   │       │   │       │   ├── GetMethod.js
│   │       │   │       │   │       │   ├── GetOwnPropertyKeys.js
│   │       │   │       │   │       │   ├── GetPrototypeFromConstructor.js
│   │       │   │       │   │       │   ├── GetSubstitution.js
│   │       │   │       │   │       │   ├── GetV.js
│   │       │   │       │   │       │   ├── HasOwnProperty.js
│   │       │   │       │   │       │   ├── HasProperty.js
│   │       │   │       │   │       │   ├── HourFromTime.js
│   │       │   │       │   │       │   ├── InLeapYear.js
│   │       │   │       │   │       │   ├── InstanceofOperator.js
│   │       │   │       │   │       │   ├── Invoke.js
│   │       │   │       │   │       │   ├── IsAccessorDescriptor.js
│   │       │   │       │   │       │   ├── IsArray.js
│   │       │   │       │   │       │   ├── IsCallable.js
│   │       │   │       │   │       │   ├── IsConcatSpreadable.js
│   │       │   │       │   │       │   ├── IsConstructor.js
│   │       │   │       │   │       │   ├── IsDataDescriptor.js
│   │       │   │       │   │       │   ├── IsExtensible.js
│   │       │   │       │   │       │   ├── IsGenericDescriptor.js
│   │       │   │       │   │       │   ├── IsInteger.js
│   │       │   │       │   │       │   ├── IsPromise.js
│   │       │   │       │   │       │   ├── IsPropertyKey.js
│   │       │   │       │   │       │   ├── IsRegExp.js
│   │       │   │       │   │       │   ├── IsStringPrefix.js
│   │       │   │       │   │       │   ├── IterableToList.js
│   │       │   │       │   │       │   ├── IteratorClose.js
│   │       │   │       │   │       │   ├── IteratorComplete.js
│   │       │   │       │   │       │   ├── IteratorNext.js
│   │       │   │       │   │       │   ├── IteratorStep.js
│   │       │   │       │   │       │   ├── IteratorValue.js
│   │       │   │       │   │       │   ├── MakeDate.js
│   │       │   │       │   │       │   ├── MakeDay.js
│   │       │   │       │   │       │   ├── MakeTime.js
│   │       │   │       │   │       │   ├── MinFromTime.js
│   │       │   │       │   │       │   ├── modulo.js
│   │       │   │       │   │       │   ├── MonthFromTime.js
│   │       │   │       │   │       │   ├── msFromTime.js
│   │       │   │       │   │       │   ├── NumberToString.js
│   │       │   │       │   │       │   ├── ObjectCreate.js
│   │       │   │       │   │       │   ├── OrdinaryDefineOwnProperty.js
│   │       │   │       │   │       │   ├── OrdinaryGetOwnProperty.js
│   │       │   │       │   │       │   ├── OrdinaryGetPrototypeOf.js
│   │       │   │       │   │       │   ├── OrdinaryHasInstance.js
│   │       │   │       │   │       │   ├── OrdinaryHasProperty.js
│   │       │   │       │   │       │   ├── OrdinarySetPrototypeOf.js
│   │       │   │       │   │       │   ├── PromiseResolve.js
│   │       │   │       │   │       │   ├── RegExpExec.js
│   │       │   │       │   │       │   ├── RequireObjectCoercible.js
│   │       │   │       │   │       │   ├── SameValue.js
│   │       │   │       │   │       │   ├── SameValueNonNumber.js
│   │       │   │       │   │       │   ├── SameValueZero.js
│   │       │   │       │   │       │   ├── SecFromTime.js
│   │       │   │       │   │       │   ├── Set.js
│   │       │   │       │   │       │   ├── SetFunctionName.js
│   │       │   │       │   │       │   ├── SetIntegrityLevel.js
│   │       │   │       │   │       │   ├── SpeciesConstructor.js
│   │       │   │       │   │       │   ├── StrictEqualityComparison.js
│   │       │   │       │   │       │   ├── SymbolDescriptiveString.js
│   │       │   │       │   │       │   ├── TestIntegrityLevel.js
│   │       │   │       │   │       │   ├── thisBooleanValue.js
│   │       │   │       │   │       │   ├── thisNumberValue.js
│   │       │   │       │   │       │   ├── thisStringValue.js
│   │       │   │       │   │       │   ├── thisSymbolValue.js
│   │       │   │       │   │       │   ├── thisTimeValue.js
│   │       │   │       │   │       │   ├── TimeClip.js
│   │       │   │       │   │       │   ├── TimeFromYear.js
│   │       │   │       │   │       │   ├── TimeString.js
│   │       │   │       │   │       │   ├── TimeWithinDay.js
│   │       │   │       │   │       │   ├── ToBoolean.js
│   │       │   │       │   │       │   ├── ToDateString.js
│   │       │   │       │   │       │   ├── ToIndex.js
│   │       │   │       │   │       │   ├── ToInt16.js
│   │       │   │       │   │       │   ├── ToInt32.js
│   │       │   │       │   │       │   ├── ToInt8.js
│   │       │   │       │   │       │   ├── ToInteger.js
│   │       │   │       │   │       │   ├── ToLength.js
│   │       │   │       │   │       │   ├── ToNumber.js
│   │       │   │       │   │       │   ├── ToObject.js
│   │       │   │       │   │       │   ├── ToPrimitive.js
│   │       │   │       │   │       │   ├── ToPropertyDescriptor.js
│   │       │   │       │   │       │   ├── ToPropertyKey.js
│   │       │   │       │   │       │   ├── ToString.js
│   │       │   │       │   │       │   ├── ToUint16.js
│   │       │   │       │   │       │   ├── ToUint32.js
│   │       │   │       │   │       │   ├── ToUint8.js
│   │       │   │       │   │       │   ├── ToUint8Clamp.js
│   │       │   │       │   │       │   ├── TrimString.js
│   │       │   │       │   │       │   ├── Type.js
│   │       │   │       │   │       │   ├── ValidateAndApplyPropertyDescriptor.js
│   │       │   │       │   │       │   ├── WeekDay.js
│   │       │   │       │   │       │   └── YearFromTime.js
│   │       │   │       │   │       ├── 5
│   │       │   │       │   │       │   ├── AbstractEqualityComparison.js
│   │       │   │       │   │       │   ├── AbstractRelationalComparison.js
│   │       │   │       │   │       │   ├── CheckObjectCoercible.js
│   │       │   │       │   │       │   ├── DateFromTime.js
│   │       │   │       │   │       │   ├── Day.js
│   │       │   │       │   │       │   ├── DayFromYear.js
│   │       │   │       │   │       │   ├── DaysInYear.js
│   │       │   │       │   │       │   ├── DayWithinYear.js
│   │       │   │       │   │       │   ├── FromPropertyDescriptor.js
│   │       │   │       │   │       │   ├── HourFromTime.js
│   │       │   │       │   │       │   ├── InLeapYear.js
│   │       │   │       │   │       │   ├── IsAccessorDescriptor.js
│   │       │   │       │   │       │   ├── IsCallable.js
│   │       │   │       │   │       │   ├── IsDataDescriptor.js
│   │       │   │       │   │       │   ├── IsGenericDescriptor.js
│   │       │   │       │   │       │   ├── IsPropertyDescriptor.js
│   │       │   │       │   │       │   ├── MakeDate.js
│   │       │   │       │   │       │   ├── MakeDay.js
│   │       │   │       │   │       │   ├── MakeTime.js
│   │       │   │       │   │       │   ├── MinFromTime.js
│   │       │   │       │   │       │   ├── modulo.js
│   │       │   │       │   │       │   ├── MonthFromTime.js
│   │       │   │       │   │       │   ├── msFromTime.js
│   │       │   │       │   │       │   ├── SameValue.js
│   │       │   │       │   │       │   ├── SecFromTime.js
│   │       │   │       │   │       │   ├── StrictEqualityComparison.js
│   │       │   │       │   │       │   ├── TimeClip.js
│   │       │   │       │   │       │   ├── TimeFromYear.js
│   │       │   │       │   │       │   ├── TimeWithinDay.js
│   │       │   │       │   │       │   ├── ToBoolean.js
│   │       │   │       │   │       │   ├── ToInt32.js
│   │       │   │       │   │       │   ├── ToInteger.js
│   │       │   │       │   │       │   ├── ToNumber.js
│   │       │   │       │   │       │   ├── ToObject.js
│   │       │   │       │   │       │   ├── ToPrimitive.js
│   │       │   │       │   │       │   ├── ToPropertyDescriptor.js
│   │       │   │       │   │       │   ├── ToString.js
│   │       │   │       │   │       │   ├── ToUint16.js
│   │       │   │       │   │       │   ├── ToUint32.js
│   │       │   │       │   │       │   ├── Type.js
│   │       │   │       │   │       │   ├── WeekDay.js
│   │       │   │       │   │       │   └── YearFromTime.js
│   │       │   │       │   │       ├── CHANGELOG.md
│   │       │   │       │   │       ├── es2015.js
│   │       │   │       │   │       ├── es2016.js
│   │       │   │       │   │       ├── es2017.js
│   │       │   │       │   │       ├── es2018.js
│   │       │   │       │   │       ├── es2019.js
│   │       │   │       │   │       ├── es5.js
│   │       │   │       │   │       ├── es6.js
│   │       │   │       │   │       ├── es7.js
│   │       │   │       │   │       ├── GetIntrinsic.js
│   │       │   │       │   │       ├── helpers
│   │       │   │       │   │       │   ├── assertRecord.js
│   │       │   │       │   │       │   ├── assign.js
│   │       │   │       │   │       │   ├── callBind.js
│   │       │   │       │   │       │   ├── callBound.js
│   │       │   │       │   │       │   ├── DefineOwnProperty.js
│   │       │   │       │   │       │   ├── every.js
│   │       │   │       │   │       │   ├── forEach.js
│   │       │   │       │   │       │   ├── getInferredName.js
│   │       │   │       │   │       │   ├── getIteratorMethod.js
│   │       │   │       │   │       │   ├── getOwnPropertyDescriptor.js
│   │       │   │       │   │       │   ├── getProto.js
│   │       │   │       │   │       │   ├── getSymbolDescription.js
│   │       │   │       │   │       │   ├── isFinite.js
│   │       │   │       │   │       │   ├── isNaN.js
│   │       │   │       │   │       │   ├── isPrefixOf.js
│   │       │   │       │   │       │   ├── isPrimitive.js
│   │       │   │       │   │       │   ├── isPropertyDescriptor.js
│   │       │   │       │   │       │   ├── isSamePropertyDescriptor.js
│   │       │   │       │   │       │   ├── maxSafeInteger.js
│   │       │   │       │   │       │   ├── mod.js
│   │       │   │       │   │       │   ├── OwnPropertyKeys.js
│   │       │   │       │   │       │   ├── padTimeComponent.js
│   │       │   │       │   │       │   ├── regexTester.js
│   │       │   │       │   │       │   ├── setProto.js
│   │       │   │       │   │       │   ├── sign.js
│   │       │   │       │   │       │   └── timeConstants.js
│   │       │   │       │   │       ├── index.js
│   │       │   │       │   │       ├── LICENSE
│   │       │   │       │   │       ├── operations
│   │       │   │       │   │       │   ├── .eslintrc
│   │       │   │       │   │       │   ├── 2015.js
│   │       │   │       │   │       │   ├── 2016.js
│   │       │   │       │   │       │   ├── 2017.js
│   │       │   │       │   │       │   ├── 2018.js
│   │       │   │       │   │       │   └── 2019.js
│   │       │   │       │   │       ├── package.json
│   │       │   │       │   │       ├── README.md
│   │       │   │       │   │       └── test
│   │       │   │       │   │           ├── diffOps.js
│   │       │   │       │   │           ├── es2015.js
│   │       │   │       │   │           ├── es2016.js
│   │       │   │       │   │           ├── es2017.js
│   │       │   │       │   │           ├── es2018.js
│   │       │   │       │   │           ├── es2019.js
│   │       │   │       │   │           ├── es5.js
│   │       │   │       │   │           ├── es6.js
│   │       │   │       │   │           ├── es7.js
│   │       │   │       │   │           ├── GetIntrinsic.js
│   │       │   │       │   │           ├── helpers
│   │       │   │       │   │           │   ├── assertRecord.js
│   │       │   │       │   │           │   ├── defineProperty.js
│   │       │   │       │   │           │   ├── getSymbolDescription.js
│   │       │   │       │   │           │   ├── OwnPropertyKeys.js
│   │       │   │       │   │           │   ├── runManifestTest.js
│   │       │   │       │   │           │   └── values.js
│   │       │   │       │   │           ├── index.js
│   │       │   │       │   │           └── tests.js
│   │       │   │       │   ├── ex-conditions
│   │       │   │       │   │   ├── expected
│   │       │   │       │   │   │   ├── broken-dir-slash-conditions.json
│   │       │   │       │   │   │   ├── broken.json
│   │       │   │       │   │   │   ├── conditions.json
│   │       │   │       │   │   │   ├── experimental.json
│   │       │   │       │   │   │   ├── pattern-trailers-no-dir-slash.json
│   │       │   │       │   │   │   ├── pattern-trailers.json
│   │       │   │       │   │   │   ├── patterns.json
│   │       │   │       │   │   │   └── pre-exports.json
│   │       │   │       │   │   └── project
│   │       │   │       │   │       ├── default.js
│   │       │   │       │   │       ├── dinr.js
│   │       │   │       │   │       ├── dirn.js
│   │       │   │       │   │       ├── dnir.js
│   │       │   │       │   │       ├── dnri.js
│   │       │   │       │   │       ├── drin.js
│   │       │   │       │   │       ├── drni.js
│   │       │   │       │   │       ├── fallback.js
│   │       │   │       │   │       ├── gen.js
│   │       │   │       │   │       ├── idnr.js
│   │       │   │       │   │       ├── idrn.js
│   │       │   │       │   │       ├── import.mjs
│   │       │   │       │   │       ├── indr.js
│   │       │   │       │   │       ├── inrd.js
│   │       │   │       │   │       ├── irdn.js
│   │       │   │       │   │       ├── irnd.js
│   │       │   │       │   │       ├── main.js
│   │       │   │       │   │       ├── ndir.js
│   │       │   │       │   │       ├── ndri.js
│   │       │   │       │   │       ├── nidr.js
│   │       │   │       │   │       ├── nird.js
│   │       │   │       │   │       ├── node.js
│   │       │   │       │   │       ├── nrdi.js
│   │       │   │       │   │       ├── nrid.js
│   │       │   │       │   │       ├── package.json
│   │       │   │       │   │       ├── rdin.js
│   │       │   │       │   │       ├── rdni.js
│   │       │   │       │   │       ├── require.js
│   │       │   │       │   │       ├── ridn.js
│   │       │   │       │   │       ├── rind.js
│   │       │   │       │   │       ├── rndi.js
│   │       │   │       │   │       └── rnid.js
│   │       │   │       │   ├── ex-conditions-in-folder
│   │       │   │       │   │   ├── expected
│   │       │   │       │   │   │   ├── broken-dir-slash-conditions.json
│   │       │   │       │   │   │   ├── broken.json
│   │       │   │       │   │   │   ├── conditions.json
│   │       │   │       │   │   │   ├── experimental.json
│   │       │   │       │   │   │   ├── pattern-trailers-no-dir-slash.json
│   │       │   │       │   │   │   ├── pattern-trailers.json
│   │       │   │       │   │   │   ├── patterns.json
│   │       │   │       │   │   │   └── pre-exports.json
│   │       │   │       │   │   └── project
│   │       │   │       │   │       ├── cjs
│   │       │   │       │   │       │   ├── index.js
│   │       │   │       │   │       │   └── utils.js
│   │       │   │       │   │       ├── index.js
│   │       │   │       │   │       ├── mjs
│   │       │   │       │   │       │   ├── index.mjs
│   │       │   │       │   │       │   └── utils.mjs
│   │       │   │       │   │       └── package.json
│   │       │   │       │   ├── ex-exports-string
│   │       │   │       │   │   ├── expected
│   │       │   │       │   │   │   ├── broken-dir-slash-conditions.json
│   │       │   │       │   │   │   ├── broken.json
│   │       │   │       │   │   │   ├── conditions.json
│   │       │   │       │   │   │   ├── experimental.json
│   │       │   │       │   │   │   ├── pattern-trailers-no-dir-slash.json
│   │       │   │       │   │   │   ├── pattern-trailers.json
│   │       │   │       │   │   │   ├── patterns.json
│   │       │   │       │   │   │   └── pre-exports.json
│   │       │   │       │   │   └── project
│   │       │   │       │   │       ├── dir
│   │       │   │       │   │       │   ├── extra.js
│   │       │   │       │   │       │   ├── extra.mjs
│   │       │   │       │   │       │   └── index.js
│   │       │   │       │   │       ├── file.js
│   │       │   │       │   │       ├── index.js
│   │       │   │       │   │       ├── index.mjs
│   │       │   │       │   │       └── package.json
│   │       │   │       │   ├── ex-exports-TL-object
│   │       │   │       │   │   ├── expected
│   │       │   │       │   │   │   ├── broken-dir-slash-conditions.json
│   │       │   │       │   │   │   ├── broken.json
│   │       │   │       │   │   │   ├── conditions.json
│   │       │   │       │   │   │   ├── experimental.json
│   │       │   │       │   │   │   ├── pattern-trailers-no-dir-slash.json
│   │       │   │       │   │   │   ├── pattern-trailers.json
│   │       │   │       │   │   │   ├── patterns.json
│   │       │   │       │   │   │   └── pre-exports.json
│   │       │   │       │   │   └── project
│   │       │   │       │   │       ├── dir
│   │       │   │       │   │       │   ├── extra.js
│   │       │   │       │   │       │   ├── extra.mjs
│   │       │   │       │   │       │   └── index.js
│   │       │   │       │   │       ├── file.js
│   │       │   │       │   │       ├── index.js
│   │       │   │       │   │       ├── index.mjs
│   │       │   │       │   │       └── package.json
│   │       │   │       │   ├── ex-folder-mapped
│   │       │   │       │   │   ├── expected
│   │       │   │       │   │   │   ├── broken-dir-slash-conditions.json
│   │       │   │       │   │   │   ├── broken.json
│   │       │   │       │   │   │   ├── conditions.json
│   │       │   │       │   │   │   ├── expected-without-conditions.json
│   │       │   │       │   │   │   ├── expected.json
│   │       │   │       │   │   │   ├── experimental.json
│   │       │   │       │   │   │   ├── pattern-trailers-no-dir-slash.json
│   │       │   │       │   │   │   ├── pattern-trailers.json
│   │       │   │       │   │   │   ├── patterns.json
│   │       │   │       │   │   │   └── pre-exports.json
│   │       │   │       │   │   └── project
│   │       │   │       │   │       ├── index.js
│   │       │   │       │   │       ├── mapped
│   │       │   │       │   │       │   ├── in-mapped-only.js
│   │       │   │       │   │       │   └── shared.js
│   │       │   │       │   │       ├── package.json
│   │       │   │       │   │       └── unmapped
│   │       │   │       │   │           ├── in-unmapped-only.js
│   │       │   │       │   │           └── shared.js
│   │       │   │       │   ├── ex-main-dot-slash
│   │       │   │       │   │   ├── expected
│   │       │   │       │   │   │   ├── broken-dir-slash-conditions.json
│   │       │   │       │   │   │   ├── conditions.json
│   │       │   │       │   │   │   ├── pattern-trailers-no-dir-slash.json
│   │       │   │       │   │   │   ├── patterns.json
│   │       │   │       │   │   │   └── pre-exports.json
│   │       │   │       │   │   └── project
│   │       │   │       │   │       ├── dir
│   │       │   │       │   │       │   ├── extra.js
│   │       │   │       │   │       │   ├── extra.mjs
│   │       │   │       │   │       │   └── index.js
│   │       │   │       │   │       ├── file.js
│   │       │   │       │   │       ├── index.js
│   │       │   │       │   │       ├── index.mjs
│   │       │   │       │   │       └── package.json
│   │       │   │       │   ├── ex-main-dotless
│   │       │   │       │   │   ├── expected
│   │       │   │       │   │   │   ├── broken-dir-slash-conditions.json
│   │       │   │       │   │   │   ├── conditions.json
│   │       │   │       │   │   │   ├── pattern-trailers-no-dir-slash.json
│   │       │   │       │   │   │   ├── patterns.json
│   │       │   │       │   │   │   └── pre-exports.json
│   │       │   │       │   │   └── project
│   │       │   │       │   │       ├── dir
│   │       │   │       │   │       │   ├── extra.js
│   │       │   │       │   │       │   ├── extra.mjs
│   │       │   │       │   │       │   └── index.js
│   │       │   │       │   │       ├── file.js
│   │       │   │       │   │       ├── index.js
│   │       │   │       │   │       ├── index.mjs
│   │       │   │       │   │       └── package.json
│   │       │   │       │   ├── ex-main-dotted
│   │       │   │       │   │   ├── expected
│   │       │   │       │   │   │   ├── broken-dir-slash-conditions.json
│   │       │   │       │   │   │   ├── conditions.json
│   │       │   │       │   │   │   ├── pattern-trailers-no-dir-slash.json
│   │       │   │       │   │   │   ├── patterns.json
│   │       │   │       │   │   │   └── pre-exports.json
│   │       │   │       │   │   └── project
│   │       │   │       │   │       ├── dir
│   │       │   │       │   │       │   ├── extra.js
│   │       │   │       │   │       │   ├── extra.mjs
│   │       │   │       │   │       │   └── index.js
│   │       │   │       │   │       ├── file.js
│   │       │   │       │   │       ├── index.js
│   │       │   │       │   │       ├── index.mjs
│   │       │   │       │   │       └── package.json
│   │       │   │       │   ├── ex-main-exports-dot-object
│   │       │   │       │   │   ├── expected
│   │       │   │       │   │   │   ├── broken-dir-slash-conditions.json
│   │       │   │       │   │   │   ├── broken.json
│   │       │   │       │   │   │   ├── conditions.json
│   │       │   │       │   │   │   ├── experimental.json
│   │       │   │       │   │   │   ├── pattern-trailers-no-dir-slash.json
│   │       │   │       │   │   │   ├── pattern-trailers.json
│   │       │   │       │   │   │   ├── patterns.json
│   │       │   │       │   │   │   └── pre-exports.json
│   │       │   │       │   │   └── project
│   │       │   │       │   │       ├── dir
│   │       │   │       │   │       │   ├── extra.js
│   │       │   │       │   │       │   ├── extra.mjs
│   │       │   │       │   │       │   └── index.js
│   │       │   │       │   │       ├── file.js
│   │       │   │       │   │       ├── index.js
│   │       │   │       │   │       ├── index.mjs
│   │       │   │       │   │       └── package.json
│   │       │   │       │   ├── ex-main-exports-multi-object
│   │       │   │       │   │   ├── expected
│   │       │   │       │   │   │   ├── broken-dir-slash-conditions.json
│   │       │   │       │   │   │   ├── broken.json
│   │       │   │       │   │   │   ├── conditions.json
│   │       │   │       │   │   │   ├── experimental.json
│   │       │   │       │   │   │   ├── pattern-trailers-no-dir-slash.json
│   │       │   │       │   │   │   ├── pattern-trailers.json
│   │       │   │       │   │   │   ├── patterns.json
│   │       │   │       │   │   │   └── pre-exports.json
│   │       │   │       │   │   └── project
│   │       │   │       │   │       ├── dir
│   │       │   │       │   │       │   ├── extra.js
│   │       │   │       │   │       │   ├── extra.mjs
│   │       │   │       │   │       │   └── index.js
│   │       │   │       │   │       ├── file.js
│   │       │   │       │   │       ├── index.js
│   │       │   │       │   │       ├── index.mjs
│   │       │   │       │   │       └── package.json
│   │       │   │       │   ├── ex-main-exports-string
│   │       │   │       │   │   ├── expected
│   │       │   │       │   │   │   ├── broken-dir-slash-conditions.json
│   │       │   │       │   │   │   ├── broken.json
│   │       │   │       │   │   │   ├── conditions.json
│   │       │   │       │   │   │   ├── experimental.json
│   │       │   │       │   │   │   ├── pattern-trailers-no-dir-slash.json
│   │       │   │       │   │   │   ├── pattern-trailers.json
│   │       │   │       │   │   │   ├── patterns.json
│   │       │   │       │   │   │   └── pre-exports.json
│   │       │   │       │   │   └── project
│   │       │   │       │   │       ├── dir
│   │       │   │       │   │       │   ├── extra.js
│   │       │   │       │   │       │   ├── extra.mjs
│   │       │   │       │   │       │   └── index.js
│   │       │   │       │   │       ├── file.js
│   │       │   │       │   │       ├── index.js
│   │       │   │       │   │       ├── index.mjs
│   │       │   │       │   │       └── package.json
│   │       │   │       │   ├── ex-main-exports-TL-object
│   │       │   │       │   │   ├── expected
│   │       │   │       │   │   │   ├── broken-dir-slash-conditions.json
│   │       │   │       │   │   │   ├── broken.json
│   │       │   │       │   │   │   ├── conditions.json
│   │       │   │       │   │   │   ├── experimental.json
│   │       │   │       │   │   │   ├── pattern-trailers-no-dir-slash.json
│   │       │   │       │   │   │   ├── pattern-trailers.json
│   │       │   │       │   │   │   ├── patterns.json
│   │       │   │       │   │   │   └── pre-exports.json
│   │       │   │       │   │   └── project
│   │       │   │       │   │       ├── dir
│   │       │   │       │   │       │   ├── extra.js
│   │       │   │       │   │       │   ├── extra.mjs
│   │       │   │       │   │       │   └── index.js
│   │       │   │       │   │       ├── file.js
│   │       │   │       │   │       ├── index.js
│   │       │   │       │   │       ├── index.mjs
│   │       │   │       │   │       └── package.json
│   │       │   │       │   ├── ex-main-implicit
│   │       │   │       │   │   ├── expected
│   │       │   │       │   │   │   ├── broken-dir-slash-conditions.json
│   │       │   │       │   │   │   ├── conditions.json
│   │       │   │       │   │   │   ├── pattern-trailers-no-dir-slash.json
│   │       │   │       │   │   │   ├── patterns.json
│   │       │   │       │   │   │   └── pre-exports.json
│   │       │   │       │   │   └── project
│   │       │   │       │   │       ├── dir
│   │       │   │       │   │       │   ├── extra.js
│   │       │   │       │   │       │   ├── extra.mjs
│   │       │   │       │   │       │   └── index.js
│   │       │   │       │   │       ├── file.js
│   │       │   │       │   │       ├── index.js
│   │       │   │       │   │       ├── index.mjs
│   │       │   │       │   │       └── package.json
│   │       │   │       │   ├── ex-no-exports-with-root-type-commonjs
│   │       │   │       │   │   ├── expected
│   │       │   │       │   │   │   ├── broken-dir-slash-conditions.json
│   │       │   │       │   │   │   ├── conditions.json
│   │       │   │       │   │   │   ├── pattern-trailers-no-dir-slash.json
│   │       │   │       │   │   │   ├── patterns.json
│   │       │   │       │   │   │   └── pre-exports.json
│   │       │   │       │   │   └── project
│   │       │   │       │   │       ├── cjs.cjs
│   │       │   │       │   │       ├── esm.mjs
│   │       │   │       │   │       ├── index.js
│   │       │   │       │   │       └── package.json
│   │       │   │       │   ├── ex-no-exports-with-root-type-module
│   │       │   │       │   │   ├── expected
│   │       │   │       │   │   │   ├── broken-dir-slash-conditions.json
│   │       │   │       │   │   │   ├── conditions.json
│   │       │   │       │   │   │   ├── pattern-trailers-no-dir-slash.json
│   │       │   │       │   │   │   ├── patterns.json
│   │       │   │       │   │   │   └── pre-exports.json
│   │       │   │       │   │   └── project
│   │       │   │       │   │       ├── cjs.cjs
│   │       │   │       │   │       ├── esm.mjs
│   │       │   │       │   │       ├── index.js
│   │       │   │       │   │       └── package.json
│   │       │   │       │   ├── ex-node-modules
│   │       │   │       │   │   ├── expected
│   │       │   │       │   │   │   ├── broken-dir-slash-conditions.json
│   │       │   │       │   │   │   ├── broken.json
│   │       │   │       │   │   │   ├── conditions.json
│   │       │   │       │   │   │   ├── experimental.json
│   │       │   │       │   │   │   ├── pattern-trailers-no-dir-slash.json
│   │       │   │       │   │   │   ├── pattern-trailers.json
│   │       │   │       │   │   │   ├── patterns.json
│   │       │   │       │   │   │   └── pre-exports.json
│   │       │   │       │   │   ├── expected-without-conditions.json
│   │       │   │       │   │   ├── expected.json
│   │       │   │       │   │   └── project
│   │       │   │       │   │       ├── default.js
│   │       │   │       │   │       ├── dep.js
│   │       │   │       │   │       └── package.json
│   │       │   │       │   ├── ex-nonexistent-dir
│   │       │   │       │   │   ├── expected
│   │       │   │       │   │   │   ├── broken-dir-slash-conditions.json
│   │       │   │       │   │   │   ├── broken.json
│   │       │   │       │   │   │   ├── conditions.json
│   │       │   │       │   │   │   ├── experimental.json
│   │       │   │       │   │   │   ├── pattern-trailers-no-dir-slash.json
│   │       │   │       │   │   │   ├── pattern-trailers.json
│   │       │   │       │   │   │   ├── patterns.json
│   │       │   │       │   │   │   └── pre-exports.json
│   │       │   │       │   │   ├── expected-without-conditions.json
│   │       │   │       │   │   ├── expected.json
│   │       │   │       │   │   └── project
│   │       │   │       │   │       ├── index.js
│   │       │   │       │   │       └── package.json
│   │       │   │       │   ├── ex-private
│   │       │   │       │   │   ├── expected
│   │       │   │       │   │   │   ├── broken-dir-slash-conditions.json
│   │       │   │       │   │   │   ├── pattern-trailers-no-dir-slash.json
│   │       │   │       │   │   │   ├── patterns.json
│   │       │   │       │   │   │   └── pre-exports.json
│   │       │   │       │   │   └── project
│   │       │   │       │   │       ├── dir
│   │       │   │       │   │       │   ├── extra.js
│   │       │   │       │   │       │   ├── extra.mjs
│   │       │   │       │   │       │   └── index.js
│   │       │   │       │   │       ├── file.js
│   │       │   │       │   │       ├── index.js
│   │       │   │       │   │       ├── index.mjs
│   │       │   │       │   │       └── package.json
│   │       │   │       │   ├── flatted-1
│   │       │   │       │   │   ├── expected
│   │       │   │       │   │   │   ├── broken-dir-slash-conditions.json
│   │       │   │       │   │   │   ├── conditions.json
│   │       │   │       │   │   │   ├── pattern-trailers-no-dir-slash.json
│   │       │   │       │   │   │   ├── patterns.json
│   │       │   │       │   │   │   └── pre-exports.json
│   │       │   │       │   │   └── project
│   │       │   │       │   │       ├── cjs
│   │       │   │       │   │       │   └── index.js
│   │       │   │       │   │       ├── esm
│   │       │   │       │   │       │   └── index.js
│   │       │   │       │   │       ├── index.js
│   │       │   │       │   │       ├── LICENSE
│   │       │   │       │   │       ├── min.js
│   │       │   │       │   │       ├── package.json
│   │       │   │       │   │       ├── README.md
│   │       │   │       │   │       └── types.d.ts
│   │       │   │       │   ├── flatted-2
│   │       │   │       │   │   ├── expected
│   │       │   │       │   │   │   ├── broken-dir-slash-conditions.json
│   │       │   │       │   │   │   ├── broken.json
│   │       │   │       │   │   │   ├── conditions.json
│   │       │   │       │   │   │   ├── experimental.json
│   │       │   │       │   │   │   ├── pattern-trailers-no-dir-slash.json
│   │       │   │       │   │   │   ├── pattern-trailers.json
│   │       │   │       │   │   │   ├── patterns.json
│   │       │   │       │   │   │   └── pre-exports.json
│   │       │   │       │   │   └── project
│   │       │   │       │   │       ├── .github
│   │       │   │       │   │       │   └── FUNDING.yml
│   │       │   │       │   │       ├── cjs
│   │       │   │       │   │       │   └── index.js
│   │       │   │       │   │       ├── esm
│   │       │   │       │   │       │   └── index.js
│   │       │   │       │   │       ├── index.js
│   │       │   │       │   │       ├── LICENSE
│   │       │   │       │   │       ├── min.js
│   │       │   │       │   │       ├── package.json
│   │       │   │       │   │       ├── README.md
│   │       │   │       │   │       ├── SPECS.md
│   │       │   │       │   │       └── types.d.ts
│   │       │   │       │   ├── flatted-3
│   │       │   │       │   │   ├── expected
│   │       │   │       │   │   │   ├── broken-dir-slash-conditions.json
│   │       │   │       │   │   │   ├── broken.json
│   │       │   │       │   │   │   ├── conditions.json
│   │       │   │       │   │   │   ├── experimental.json
│   │       │   │       │   │   │   ├── pattern-trailers-no-dir-slash.json
│   │       │   │       │   │   │   ├── pattern-trailers.json
│   │       │   │       │   │   │   ├── patterns.json
│   │       │   │       │   │   │   └── pre-exports.json
│   │       │   │       │   │   └── project
│   │       │   │       │   │       ├── .github
│   │       │   │       │   │       │   └── FUNDING.yml
│   │       │   │       │   │       ├── cjs
│   │       │   │       │   │       │   ├── index.js
│   │       │   │       │   │       │   └── package.json
│   │       │   │       │   │       ├── es.js
│   │       │   │       │   │       ├── esm
│   │       │   │       │   │       │   └── index.js
│   │       │   │       │   │       ├── index.js
│   │       │   │       │   │       ├── LICENSE
│   │       │   │       │   │       ├── min.js
│   │       │   │       │   │       ├── package.json
│   │       │   │       │   │       ├── README.md
│   │       │   │       │   │       ├── SPECS.md
│   │       │   │       │   │       └── types.d.ts
│   │       │   │       │   ├── has-package-exports
│   │       │   │       │   │   ├── expected
│   │       │   │       │   │   │   ├── broken-dir-slash-conditions.json
│   │       │   │       │   │   │   ├── broken.json
│   │       │   │       │   │   │   ├── conditions.json
│   │       │   │       │   │   │   ├── experimental.json
│   │       │   │       │   │   │   ├── pattern-trailers-no-dir-slash.json
│   │       │   │       │   │   │   ├── pattern-trailers.json
│   │       │   │       │   │   │   ├── patterns.json
│   │       │   │       │   │   │   └── pre-exports.json
│   │       │   │       │   │   ├── expected-without-conditions.json
│   │       │   │       │   │   ├── expected.json
│   │       │   │       │   │   └── project
│   │       │   │       │   │       ├── .eslintignore
│   │       │   │       │   │       ├── .eslintrc
│   │       │   │       │   │       ├── .nycrc
│   │       │   │       │   │       ├── browser.js
│   │       │   │       │   │       ├── CHANGELOG.md
│   │       │   │       │   │       ├── conditional.js
│   │       │   │       │   │       ├── LICENSE
│   │       │   │       │   │       ├── no.js
│   │       │   │       │   │       ├── package.json
│   │       │   │       │   │       ├── pattern.js
│   │       │   │       │   │       ├── README.md
│   │       │   │       │   │       ├── test
│   │       │   │       │   │       │   └── index.js
│   │       │   │       │   │       └── yes.js
│   │       │   │       │   ├── is-promise-2.1.0
│   │       │   │       │   │   ├── expected
│   │       │   │       │   │   │   ├── broken-dir-slash-conditions.json
│   │       │   │       │   │   │   ├── conditions.json
│   │       │   │       │   │   │   ├── pattern-trailers-no-dir-slash.json
│   │       │   │       │   │   │   ├── patterns.json
│   │       │   │       │   │   │   └── pre-exports.json
│   │       │   │       │   │   └── project
│   │       │   │       │   │       ├── .travis.yml
│   │       │   │       │   │       ├── index.js
│   │       │   │       │   │       ├── LICENSE
│   │       │   │       │   │       ├── package.json
│   │       │   │       │   │       └── readme.md
│   │       │   │       │   ├── is-promise-2.2.0
│   │       │   │       │   │   ├── expected
│   │       │   │       │   │   │   ├── broken-dir-slash-conditions.json
│   │       │   │       │   │   │   ├── broken.json
│   │       │   │       │   │   │   ├── conditions.json
│   │       │   │       │   │   │   ├── experimental.json
│   │       │   │       │   │   │   ├── pattern-trailers-no-dir-slash.json
│   │       │   │       │   │   │   ├── pattern-trailers.json
│   │       │   │       │   │   │   ├── patterns.json
│   │       │   │       │   │   │   └── pre-exports.json
│   │       │   │       │   │   ├── expected.json
│   │       │   │       │   │   └── project
│   │       │   │       │   │       ├── index.js
│   │       │   │       │   │       ├── LICENSE
│   │       │   │       │   │       ├── package.json
│   │       │   │       │   │       └── readme.md
│   │       │   │       │   ├── is-promise-2.2.1
│   │       │   │       │   │   ├── expected
│   │       │   │       │   │   │   ├── broken-dir-slash-conditions.json
│   │       │   │       │   │   │   ├── broken.json
│   │       │   │       │   │   │   ├── conditions.json
│   │       │   │       │   │   │   ├── experimental.json
│   │       │   │       │   │   │   ├── pattern-trailers-no-dir-slash.json
│   │       │   │       │   │   │   ├── pattern-trailers.json
│   │       │   │       │   │   │   ├── patterns.json
│   │       │   │       │   │   │   └── pre-exports.json
│   │       │   │       │   │   └── project
│   │       │   │       │   │       ├── index.js
│   │       │   │       │   │       ├── index.mjs
│   │       │   │       │   │       ├── LICENSE
│   │       │   │       │   │       ├── package.json
│   │       │   │       │   │       └── readme.md
│   │       │   │       │   ├── is-promise-2.2.2
│   │       │   │       │   │   ├── expected
│   │       │   │       │   │   │   ├── broken-dir-slash-conditions.json
│   │       │   │       │   │   │   ├── conditions.json
│   │       │   │       │   │   │   ├── pattern-trailers-no-dir-slash.json
│   │       │   │       │   │   │   ├── patterns.json
│   │       │   │       │   │   │   └── pre-exports.json
│   │       │   │       │   │   └── project
│   │       │   │       │   │       ├── index.js
│   │       │   │       │   │       ├── index.mjs
│   │       │   │       │   │       ├── LICENSE
│   │       │   │       │   │       ├── package.json
│   │       │   │       │   │       └── readme.md
│   │       │   │       │   ├── list-exports
│   │       │   │       │   │   ├── expected
│   │       │   │       │   │   │   ├── broken-dir-slash-conditions.json
│   │       │   │       │   │   │   ├── broken.json
│   │       │   │       │   │   │   ├── conditions.json
│   │       │   │       │   │   │   ├── experimental.json
│   │       │   │       │   │   │   ├── pattern-trailers-no-dir-slash.json
│   │       │   │       │   │   │   ├── pattern-trailers.json
│   │       │   │       │   │   │   ├── patterns.json
│   │       │   │       │   │   │   └── pre-exports.json
│   │       │   │       │   │   ├── expected-without-conditions.json
│   │       │   │       │   │   └── expected.json
│   │       │   │       │   ├── ls-exports
│   │       │   │       │   │   ├── expected
│   │       │   │       │   │   │   ├── broken-dir-slash-conditions.json
│   │       │   │       │   │   │   ├── broken.json
│   │       │   │       │   │   │   ├── conditions.json
│   │       │   │       │   │   │   ├── experimental.json
│   │       │   │       │   │   │   ├── pattern-trailers-no-dir-slash.json
│   │       │   │       │   │   │   ├── pattern-trailers.json
│   │       │   │       │   │   │   ├── patterns.json
│   │       │   │       │   │   │   └── pre-exports.json
│   │       │   │       │   │   └── expected-without-conditions.json
│   │       │   │       │   ├── preact
│   │       │   │       │   │   ├── expected
│   │       │   │       │   │   │   ├── broken-dir-slash-conditions.json
│   │       │   │       │   │   │   ├── broken.json
│   │       │   │       │   │   │   ├── conditions.json
│   │       │   │       │   │   │   ├── experimental.json
│   │       │   │       │   │   │   ├── pattern-trailers-no-dir-slash.json
│   │       │   │       │   │   │   ├── pattern-trailers.json
│   │       │   │       │   │   │   ├── patterns.json
│   │       │   │       │   │   │   └── pre-exports.json
│   │       │   │       │   │   └── project
│   │       │   │       │   │       ├── compat
│   │       │   │       │   │       │   ├── package.json
│   │       │   │       │   │       │   ├── server.js
│   │       │   │       │   │       │   └── src
│   │       │   │       │   │       │       ├── Children.js
│   │       │   │       │   │       │       ├── events.js
│   │       │   │       │   │       │       ├── forwardRef.js
│   │       │   │       │   │       │       ├── index.d.ts
│   │       │   │       │   │       │       ├── index.js
│   │       │   │       │   │       │       ├── internal.d.ts
│   │       │   │       │   │       │       ├── memo.js
│   │       │   │       │   │       │       ├── portals.js
│   │       │   │       │   │       │       ├── PureComponent.js
│   │       │   │       │   │       │       ├── render.js
│   │       │   │       │   │       │       ├── suspense-list.d.ts
│   │       │   │       │   │       │       ├── suspense-list.js
│   │       │   │       │   │       │       ├── suspense.d.ts
│   │       │   │       │   │       │       ├── suspense.js
│   │       │   │       │   │       │       └── util.js
│   │       │   │       │   │       ├── debug
│   │       │   │       │   │       │   ├── package.json
│   │       │   │       │   │       │   └── src
│   │       │   │       │   │       │       ├── check-props.js
│   │       │   │       │   │       │       ├── component-stack.js
│   │       │   │       │   │       │       ├── constants.js
│   │       │   │       │   │       │       ├── debug.js
│   │       │   │       │   │       │       ├── index.js
│   │       │   │       │   │       │       └── internal.d.ts
│   │       │   │       │   │       ├── devtools
│   │       │   │       │   │       │   ├── package.json
│   │       │   │       │   │       │   └── src
│   │       │   │       │   │       │       ├── devtools.js
│   │       │   │       │   │       │       └── index.js
│   │       │   │       │   │       ├── hooks
│   │       │   │       │   │       │   ├── package.json
│   │       │   │       │   │       │   └── src
│   │       │   │       │   │       │       ├── index.d.ts
│   │       │   │       │   │       │       ├── index.js
│   │       │   │       │   │       │       └── internal.d.ts
│   │       │   │       │   │       ├── LICENSE
│   │       │   │       │   │       ├── package.json
│   │       │   │       │   │       ├── README.md
│   │       │   │       │   │       ├── src
│   │       │   │       │   │       │   ├── clone-element.js
│   │       │   │       │   │       │   ├── component.js
│   │       │   │       │   │       │   ├── constants.js
│   │       │   │       │   │       │   ├── create-context.js
│   │       │   │       │   │       │   ├── create-element.js
│   │       │   │       │   │       │   ├── diff
│   │       │   │       │   │       │   │   ├── catch-error.js
│   │       │   │       │   │       │   │   ├── children.js
│   │       │   │       │   │       │   │   ├── index.js
│   │       │   │       │   │       │   │   └── props.js
│   │       │   │       │   │       │   ├── index.d.ts
│   │       │   │       │   │       │   ├── index.js
│   │       │   │       │   │       │   ├── internal.d.ts
│   │       │   │       │   │       │   ├── jsx.d.ts
│   │       │   │       │   │       │   ├── options.js
│   │       │   │       │   │       │   ├── render.js
│   │       │   │       │   │       │   └── util.js
│   │       │   │       │   │       └── test-utils
│   │       │   │       │   │           ├── package.json
│   │       │   │       │   │           └── src
│   │       │   │       │   │               ├── index.d.ts
│   │       │   │       │   │               └── index.js
│   │       │   │       │   ├── resolve-1
│   │       │   │       │   │   ├── expected
│   │       │   │       │   │   │   ├── broken-dir-slash-conditions.json
│   │       │   │       │   │   │   ├── conditions.json
│   │       │   │       │   │   │   ├── pattern-trailers-no-dir-slash.json
│   │       │   │       │   │   │   ├── patterns.json
│   │       │   │       │   │   │   └── pre-exports.json
│   │       │   │       │   │   └── project
│   │       │   │       │   │       ├── .eslintignore
│   │       │   │       │   │       ├── .eslintrc
│   │       │   │       │   │       ├── .travis.yml
│   │       │   │       │   │       ├── example
│   │       │   │       │   │       │   ├── async.js
│   │       │   │       │   │       │   └── sync.js
│   │       │   │       │   │       ├── index.js
│   │       │   │       │   │       ├── lib
│   │       │   │       │   │       │   ├── async.js
│   │       │   │       │   │       │   ├── caller.js
│   │       │   │       │   │       │   ├── core.js
│   │       │   │       │   │       │   ├── core.json
│   │       │   │       │   │       │   ├── is-core.js
│   │       │   │       │   │       │   ├── node-modules-paths.js
│   │       │   │       │   │       │   ├── normalize-options.js
│   │       │   │       │   │       │   └── sync.js
│   │       │   │       │   │       ├── LICENSE
│   │       │   │       │   │       ├── package.json
│   │       │   │       │   │       ├── readme.markdown
│   │       │   │       │   │       └── test
│   │       │   │       │   │           ├── .eslintrc
│   │       │   │       │   │           ├── core.js
│   │       │   │       │   │           ├── dotdot
│   │       │   │       │   │           │   ├── abc
│   │       │   │       │   │           │   │   └── index.js
│   │       │   │       │   │           │   └── index.js
│   │       │   │       │   │           ├── dotdot.js
│   │       │   │       │   │           ├── faulty_basedir.js
│   │       │   │       │   │           ├── filter_sync.js
│   │       │   │       │   │           ├── filter.js
│   │       │   │       │   │           ├── mock_sync.js
│   │       │   │       │   │           ├── mock.js
│   │       │   │       │   │           ├── module_dir
│   │       │   │       │   │           │   ├── xmodules
│   │       │   │       │   │           │   │   └── aaa
│   │       │   │       │   │           │   │       └── index.js
│   │       │   │       │   │           │   ├── ymodules
│   │       │   │       │   │           │   │   └── aaa
│   │       │   │       │   │           │   │       └── index.js
│   │       │   │       │   │           │   └── zmodules
│   │       │   │       │   │           │       └── bbb
│   │       │   │       │   │           │           ├── main.js
│   │       │   │       │   │           │           └── package.json
│   │       │   │       │   │           ├── module_dir.js
│   │       │   │       │   │           ├── node_path
│   │       │   │       │   │           │   ├── x
│   │       │   │       │   │           │   │   ├── aaa
│   │       │   │       │   │           │   │   │   └── index.js
│   │       │   │       │   │           │   │   └── ccc
│   │       │   │       │   │           │   │       └── index.js
│   │       │   │       │   │           │   └── y
│   │       │   │       │   │           │       ├── bbb
│   │       │   │       │   │           │       │   └── index.js
│   │       │   │       │   │           │       └── ccc
│   │       │   │       │   │           │           └── index.js
│   │       │   │       │   │           ├── node_path.js
│   │       │   │       │   │           ├── node-modules-paths.js
│   │       │   │       │   │           ├── nonstring.js
│   │       │   │       │   │           ├── pathfilter
│   │       │   │       │   │           │   └── deep_ref
│   │       │   │       │   │           │       └── main.js
│   │       │   │       │   │           ├── pathfilter.js
│   │       │   │       │   │           ├── precedence
│   │       │   │       │   │           │   ├── aaa
│   │       │   │       │   │           │   │   ├── index.js
│   │       │   │       │   │           │   │   └── main.js
│   │       │   │       │   │           │   ├── aaa.js
│   │       │   │       │   │           │   ├── bbb
│   │       │   │       │   │           │   │   └── main.js
│   │       │   │       │   │           │   └── bbb.js
│   │       │   │       │   │           ├── precedence.js
│   │       │   │       │   │           ├── resolver
│   │       │   │       │   │           │   ├── baz
│   │       │   │       │   │           │   │   ├── doom.js
│   │       │   │       │   │           │   │   ├── package.json
│   │       │   │       │   │           │   │   └── quux.js
│   │       │   │       │   │           │   ├── browser_field
│   │       │   │       │   │           │   │   ├── a.js
│   │       │   │       │   │           │   │   ├── b.js
│   │       │   │       │   │           │   │   └── package.json
│   │       │   │       │   │           │   ├── cup.coffee
│   │       │   │       │   │           │   ├── dot_main
│   │       │   │       │   │           │   │   ├── index.js
│   │       │   │       │   │           │   │   └── package.json
│   │       │   │       │   │           │   ├── dot_slash_main
│   │       │   │       │   │           │   │   ├── index.js
│   │       │   │       │   │           │   │   └── package.json
│   │       │   │       │   │           │   ├── foo.js
│   │       │   │       │   │           │   ├── incorrect_main
│   │       │   │       │   │           │   │   ├── index.js
│   │       │   │       │   │           │   │   └── package.json
│   │       │   │       │   │           │   ├── invalid_main
│   │       │   │       │   │           │   │   └── package.json
│   │       │   │       │   │           │   ├── mug.coffee
│   │       │   │       │   │           │   ├── mug.js
│   │       │   │       │   │           │   ├── multirepo
│   │       │   │       │   │           │   │   ├── lerna.json
│   │       │   │       │   │           │   │   ├── package.json
│   │       │   │       │   │           │   │   └── packages
│   │       │   │       │   │           │   │       ├── package-a
│   │       │   │       │   │           │   │       │   ├── index.js
│   │       │   │       │   │           │   │       │   └── package.json
│   │       │   │       │   │           │   │       └── package-b
│   │       │   │       │   │           │   │           ├── index.js
│   │       │   │       │   │           │   │           └── package.json
│   │       │   │       │   │           │   ├── nested_symlinks
│   │       │   │       │   │           │   │   └── mylib
│   │       │   │       │   │           │   │       ├── async.js
│   │       │   │       │   │           │   │       ├── package.json
│   │       │   │       │   │           │   │       └── sync.js
│   │       │   │       │   │           │   ├── other_path
│   │       │   │       │   │           │   │   ├── lib
│   │       │   │       │   │           │   │   │   └── other-lib.js
│   │       │   │       │   │           │   │   └── root.js
│   │       │   │       │   │           │   ├── quux
│   │       │   │       │   │           │   │   └── foo
│   │       │   │       │   │           │   │       └── index.js
│   │       │   │       │   │           │   ├── same_names
│   │       │   │       │   │           │   │   ├── foo
│   │       │   │       │   │           │   │   │   └── index.js
│   │       │   │       │   │           │   │   └── foo.js
│   │       │   │       │   │           │   ├── symlinked
│   │       │   │       │   │           │   │   ├── _
│   │       │   │       │   │           │   │   │   ├── node_modules
│   │       │   │       │   │           │   │   │   │   └── foo.js
│   │       │   │       │   │           │   │   │   └── symlink_target
│   │       │   │       │   │           │   │   │       └── .gitkeep
│   │       │   │       │   │           │   │   └── package
│   │       │   │       │   │           │   │       ├── bar.js
│   │       │   │       │   │           │   │       └── package.json
│   │       │   │       │   │           │   └── without_basedir
│   │       │   │       │   │           │       └── main.js
│   │       │   │       │   │           ├── resolver_sync.js
│   │       │   │       │   │           ├── resolver.js
│   │       │   │       │   │           ├── shadowed_core
│   │       │   │       │   │           │   └── node_modules
│   │       │   │       │   │           │       └── util
│   │       │   │       │   │           │           └── index.js
│   │       │   │       │   │           ├── shadowed_core.js
│   │       │   │       │   │           ├── subdirs.js
│   │       │   │       │   │           └── symlinks.js
│   │       │   │       │   ├── resolve-2
│   │       │   │       │   │   ├── expected
│   │       │   │       │   │   │   ├── broken-dir-slash-conditions.json
│   │       │   │       │   │   │   ├── broken.json
│   │       │   │       │   │   │   ├── conditions.json
│   │       │   │       │   │   │   ├── experimental.json
│   │       │   │       │   │   │   ├── pattern-trailers-no-dir-slash.json
│   │       │   │       │   │   │   ├── pattern-trailers.json
│   │       │   │       │   │   │   ├── patterns.json
│   │       │   │       │   │   │   └── pre-exports.json
│   │       │   │       │   │   └── project
│   │       │   │       │   │       ├── .eslintignore
│   │       │   │       │   │       ├── .eslintrc
│   │       │   │       │   │       ├── .github
│   │       │   │       │   │       │   └── FUNDING.yml
│   │       │   │       │   │       ├── .travis.yml
│   │       │   │       │   │       ├── example
│   │       │   │       │   │       │   ├── async.js
│   │       │   │       │   │       │   └── sync.js
│   │       │   │       │   │       ├── index.js
│   │       │   │       │   │       ├── index.mjs
│   │       │   │       │   │       ├── lib
│   │       │   │       │   │       │   ├── async.js
│   │       │   │       │   │       │   ├── caller.js
│   │       │   │       │   │       │   ├── core.js
│   │       │   │       │   │       │   ├── core.json
│   │       │   │       │   │       │   ├── is-core.js
│   │       │   │       │   │       │   ├── node-modules-paths.js
│   │       │   │       │   │       │   ├── normalize-options.js
│   │       │   │       │   │       │   └── sync.js
│   │       │   │       │   │       ├── LICENSE
│   │       │   │       │   │       ├── package.json
│   │       │   │       │   │       ├── readme.markdown
│   │       │   │       │   │       └── test
│   │       │   │       │   │           ├── core.js
│   │       │   │       │   │           ├── dotdot
│   │       │   │       │   │           │   ├── abc
│   │       │   │       │   │           │   │   └── index.js
│   │       │   │       │   │           │   └── index.js
│   │       │   │       │   │           ├── dotdot.js
│   │       │   │       │   │           ├── faulty_basedir.js
│   │       │   │       │   │           ├── filter_sync.js
│   │       │   │       │   │           ├── filter.js
│   │       │   │       │   │           ├── mock_sync.js
│   │       │   │       │   │           ├── mock.js
│   │       │   │       │   │           ├── module_dir
│   │       │   │       │   │           │   ├── xmodules
│   │       │   │       │   │           │   │   └── aaa
│   │       │   │       │   │           │   │       └── index.js
│   │       │   │       │   │           │   ├── ymodules
│   │       │   │       │   │           │   │   └── aaa
│   │       │   │       │   │           │   │       └── index.js
│   │       │   │       │   │           │   └── zmodules
│   │       │   │       │   │           │       └── bbb
│   │       │   │       │   │           │           ├── main.js
│   │       │   │       │   │           │           └── package.json
│   │       │   │       │   │           ├── module_dir.js
│   │       │   │       │   │           ├── node_path
│   │       │   │       │   │           │   ├── x
│   │       │   │       │   │           │   │   ├── aaa
│   │       │   │       │   │           │   │   │   └── index.js
│   │       │   │       │   │           │   │   └── ccc
│   │       │   │       │   │           │   │       └── index.js
│   │       │   │       │   │           │   └── y
│   │       │   │       │   │           │       ├── bbb
│   │       │   │       │   │           │       │   └── index.js
│   │       │   │       │   │           │       └── ccc
│   │       │   │       │   │           │           └── index.js
│   │       │   │       │   │           ├── node_path.js
│   │       │   │       │   │           ├── node-modules-paths.js
│   │       │   │       │   │           ├── nonstring.js
│   │       │   │       │   │           ├── pathfilter
│   │       │   │       │   │           │   └── deep_ref
│   │       │   │       │   │           │       └── main.js
│   │       │   │       │   │           ├── pathfilter_sync.js
│   │       │   │       │   │           ├── pathfilter.js
│   │       │   │       │   │           ├── precedence
│   │       │   │       │   │           │   ├── aaa
│   │       │   │       │   │           │   │   ├── index.js
│   │       │   │       │   │           │   │   └── main.js
│   │       │   │       │   │           │   ├── aaa.js
│   │       │   │       │   │           │   ├── bbb
│   │       │   │       │   │           │   │   └── main.js
│   │       │   │       │   │           │   └── bbb.js
│   │       │   │       │   │           ├── precedence.js
│   │       │   │       │   │           ├── resolver
│   │       │   │       │   │           │   ├── baz
│   │       │   │       │   │           │   │   ├── doom.js
│   │       │   │       │   │           │   │   ├── package.json
│   │       │   │       │   │           │   │   └── quux.js
│   │       │   │       │   │           │   ├── browser_field
│   │       │   │       │   │           │   │   ├── a.js
│   │       │   │       │   │           │   │   ├── b.js
│   │       │   │       │   │           │   │   └── package.json
│   │       │   │       │   │           │   ├── cup.coffee
│   │       │   │       │   │           │   ├── dot_main
│   │       │   │       │   │           │   │   ├── index.js
│   │       │   │       │   │           │   │   └── package.json
│   │       │   │       │   │           │   ├── dot_slash_main
│   │       │   │       │   │           │   │   ├── index.js
│   │       │   │       │   │           │   │   └── package.json
│   │       │   │       │   │           │   ├── foo.js
│   │       │   │       │   │           │   ├── incorrect_main
│   │       │   │       │   │           │   │   ├── index.js
│   │       │   │       │   │           │   │   └── package.json
│   │       │   │       │   │           │   ├── invalid_main
│   │       │   │       │   │           │   │   └── package.json
│   │       │   │       │   │           │   ├── mug.coffee
│   │       │   │       │   │           │   ├── mug.js
│   │       │   │       │   │           │   ├── multirepo
│   │       │   │       │   │           │   │   ├── lerna.json
│   │       │   │       │   │           │   │   ├── package.json
│   │       │   │       │   │           │   │   └── packages
│   │       │   │       │   │           │   │       ├── package-a
│   │       │   │       │   │           │   │       │   ├── index.js
│   │       │   │       │   │           │   │       │   └── package.json
│   │       │   │       │   │           │   │       └── package-b
│   │       │   │       │   │           │   │           ├── index.js
│   │       │   │       │   │           │   │           └── package.json
│   │       │   │       │   │           │   ├── nested_symlinks
│   │       │   │       │   │           │   │   └── mylib
│   │       │   │       │   │           │   │       ├── async.js
│   │       │   │       │   │           │   │       ├── package.json
│   │       │   │       │   │           │   │       └── sync.js
│   │       │   │       │   │           │   ├── other_path
│   │       │   │       │   │           │   │   ├── lib
│   │       │   │       │   │           │   │   │   └── other-lib.js
│   │       │   │       │   │           │   │   └── root.js
│   │       │   │       │   │           │   ├── quux
│   │       │   │       │   │           │   │   └── foo
│   │       │   │       │   │           │   │       └── index.js
│   │       │   │       │   │           │   ├── same_names
│   │       │   │       │   │           │   │   ├── foo
│   │       │   │       │   │           │   │   │   └── index.js
│   │       │   │       │   │           │   │   └── foo.js
│   │       │   │       │   │           │   ├── symlinked
│   │       │   │       │   │           │   │   ├── _
│   │       │   │       │   │           │   │   │   └── symlink_target
│   │       │   │       │   │           │   │   │       └── .gitkeep
│   │       │   │       │   │           │   │   └── package
│   │       │   │       │   │           │   │       ├── bar.js
│   │       │   │       │   │           │   │       └── package.json
│   │       │   │       │   │           │   └── without_basedir
│   │       │   │       │   │           │       └── main.js
│   │       │   │       │   │           ├── resolver_sync.js
│   │       │   │       │   │           ├── resolver.js
│   │       │   │       │   │           ├── shadowed_core.js
│   │       │   │       │   │           ├── subdirs.js
│   │       │   │       │   │           └── symlinks.js
│   │       │   │       │   └── single-spa-layout
│   │       │   │       │       ├── expected
│   │       │   │       │       │   ├── broken-dir-slash-conditions.json
│   │       │   │       │       │   ├── broken.json
│   │       │   │       │       │   ├── conditions.json
│   │       │   │       │       │   ├── experimental.json
│   │       │   │       │       │   ├── pattern-trailers-no-dir-slash.json
│   │       │   │       │       │   ├── pattern-trailers.json
│   │       │   │       │       │   ├── patterns.json
│   │       │   │       │       │   └── pre-exports.json
│   │       │   │       │       └── project
│   │       │   │       │           ├── LICENSE
│   │       │   │       │           ├── package.json
│   │       │   │       │           └── README.md
│   │       │   │       ├── index.js
│   │       │   │       └── package.json
│   │       │   ├── README.md
│   │       │   └── since.js
│   │       ├── mock_sync.js
│   │       ├── mock.js
│   │       ├── module_dir
│   │       │   ├── xmodules
│   │       │   │   └── aaa
│   │       │   │       └── index.js
│   │       │   ├── ymodules
│   │       │   │   └── aaa
│   │       │   │       └── index.js
│   │       │   └── zmodules
│   │       │       └── bbb
│   │       │           ├── main.js
│   │       │           └── package.json
│   │       ├── module_dir.js
│   │       ├── node_path
│   │       │   ├── x
│   │       │   │   ├── aaa
│   │       │   │   │   └── index.js
│   │       │   │   └── ccc
│   │       │   │       └── index.js
│   │       │   └── y
│   │       │       ├── bbb
│   │       │       │   └── index.js
│   │       │       └── ccc
│   │       │           └── index.js
│   │       ├── node_path.js
│   │       ├── node-modules-paths.js
│   │       ├── nonstring.js
│   │       ├── pathfilter
│   │       │   └── deep_ref
│   │       │       └── main.js
│   │       ├── pathfilter.js
│   │       ├── precedence
│   │       │   ├── aaa
│   │       │   │   ├── index.js
│   │       │   │   └── main.js
│   │       │   ├── aaa.js
│   │       │   ├── bbb
│   │       │   │   └── main.js
│   │       │   └── bbb.js
│   │       ├── precedence.js
│   │       ├── resolver
│   │       │   ├── baz
│   │       │   │   ├── doom.js
│   │       │   │   ├── package.json
│   │       │   │   └── quux.js
│   │       │   ├── browser_field
│   │       │   │   ├── a.js
│   │       │   │   ├── b.js
│   │       │   │   └── package.json
│   │       │   ├── cup.coffee
│   │       │   ├── dot_main
│   │       │   │   ├── index.js
│   │       │   │   └── package.json
│   │       │   ├── dot_slash_main
│   │       │   │   ├── index.js
│   │       │   │   └── package.json
│   │       │   ├── false_main
│   │       │   │   ├── index.js
│   │       │   │   └── package.json
│   │       │   ├── foo.js
│   │       │   ├── incorrect_main
│   │       │   │   ├── index.js
│   │       │   │   └── package.json
│   │       │   ├── invalid_main
│   │       │   │   └── package.json
│   │       │   ├── mug.coffee
│   │       │   ├── mug.js
│   │       │   ├── multirepo
│   │       │   │   ├── lerna.json
│   │       │   │   ├── package.json
│   │       │   │   └── packages
│   │       │   │       ├── package-a
│   │       │   │       │   ├── index.js
│   │       │   │       │   └── package.json
│   │       │   │       └── package-b
│   │       │   │           ├── index.js
│   │       │   │           └── package.json
│   │       │   ├── nested_symlinks
│   │       │   │   └── mylib
│   │       │   │       ├── async.js
│   │       │   │       ├── package.json
│   │       │   │       └── sync.js
│   │       │   ├── other_path
│   │       │   │   ├── lib
│   │       │   │   │   └── other-lib.js
│   │       │   │   └── root.js
│   │       │   ├── quux
│   │       │   │   └── foo
│   │       │   │       └── index.js
│   │       │   ├── same_names
│   │       │   │   ├── foo
│   │       │   │   │   └── index.js
│   │       │   │   └── foo.js
│   │       │   ├── symlinked
│   │       │   │   ├── _
│   │       │   │   │   ├── node_modules
│   │       │   │   │   │   └── foo.js
│   │       │   │   │   └── symlink_target
│   │       │   │   │       └── .gitkeep
│   │       │   │   └── package
│   │       │   │       ├── bar.js
│   │       │   │       └── package.json
│   │       │   └── without_basedir
│   │       │       └── main.js
│   │       ├── resolver_sync.js
│   │       ├── resolver.js
│   │       ├── shadowed_core
│   │       │   └── node_modules
│   │       │       └── util
│   │       │           └── index.js
│   │       ├── shadowed_core.js
│   │       ├── subdirs.js
│   │       └── symlinks.js
│   ├── 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
│   ├── shelljs
│   │   ├── bin
│   │   │   └── shjs
│   │   ├── CHANGELOG.md
│   │   ├── commands.js
│   │   ├── global.js
│   │   ├── LICENSE
│   │   ├── make.js
│   │   ├── package.json
│   │   ├── plugin.js
│   │   ├── README.md
│   │   ├── shell.js
│   │   └── src
│   │       ├── cat.js
│   │       ├── cd.js
│   │       ├── chmod.js
│   │       ├── common.js
│   │       ├── cp.js
│   │       ├── dirs.js
│   │       ├── echo.js
│   │       ├── error.js
│   │       ├── exec-child.js
│   │       ├── exec.js
│   │       ├── find.js
│   │       ├── grep.js
│   │       ├── head.js
│   │       ├── ln.js
│   │       ├── ls.js
│   │       ├── mkdir.js
│   │       ├── mv.js
│   │       ├── popd.js
│   │       ├── pushd.js
│   │       ├── pwd.js
│   │       ├── rm.js
│   │       ├── sed.js
│   │       ├── set.js
│   │       ├── sort.js
│   │       ├── tail.js
│   │       ├── tempdir.js
│   │       ├── test.js
│   │       ├── to.js
│   │       ├── toEnd.js
│   │       ├── touch.js
│   │       ├── uniq.js
│   │       └── which.js
│   ├── shx
│   │   ├── CHANGELOG.md
│   │   ├── lib
│   │   │   ├── cli.js
│   │   │   ├── config.js
│   │   │   ├── help.js
│   │   │   ├── plugin-true-false.js
│   │   │   ├── printCmdRet.js
│   │   │   └── shx.js
│   │   ├── LICENSE
│   │   ├── package.json
│   │   └── README.md
│   ├── statuses
│   │   ├── codes.json
│   │   ├── HISTORY.md
│   │   ├── index.js
│   │   ├── LICENSE
│   │   ├── package.json
│   │   └── README.md
│   ├── supports-preserve-symlinks-flag
│   │   ├── .eslintrc
│   │   ├── .github
│   │   │   └── FUNDING.yml
│   │   ├── .nycrc
│   │   ├── browser.js
│   │   ├── CHANGELOG.md
│   │   ├── index.js
│   │   ├── LICENSE
│   │   ├── package.json
│   │   ├── README.md
│   │   └── test
│   │       └── index.js
│   ├── toidentifier
│   │   ├── HISTORY.md
│   │   ├── index.js
│   │   ├── LICENSE
│   │   ├── package.json
│   │   └── README.md
│   ├── typescript
│   │   ├── bin
│   │   │   ├── tsc
│   │   │   └── tsserver
│   │   ├── lib
│   │   │   ├── _tsc.js
│   │   │   ├── _tsserver.js
│   │   │   ├── _typingsInstaller.js
│   │   │   ├── cancellationToken.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.full.d.ts
│   │   │   ├── lib.esnext.intl.d.ts
│   │   │   ├── lib.esnext.iterator.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
│   ├── wrappy
│   │   ├── LICENSE
│   │   ├── package.json
│   │   ├── README.md
│   │   └── wrappy.js
│   └── zod
│       ├── index.d.ts
│       ├── lib
│       │   ├── __tests__
│       │   │   ├── Mocker.d.ts
│       │   │   └── Mocker.js
│       │   ├── benchmarks
│       │   │   ├── datetime.d.ts
│       │   │   ├── datetime.js
│       │   │   ├── discriminatedUnion.d.ts
│       │   │   ├── discriminatedUnion.js
│       │   │   ├── index.d.ts
│       │   │   ├── index.js
│       │   │   ├── ipv4.d.ts
│       │   │   ├── ipv4.js
│       │   │   ├── object.d.ts
│       │   │   ├── object.js
│       │   │   ├── primitives.d.ts
│       │   │   ├── primitives.js
│       │   │   ├── realworld.d.ts
│       │   │   ├── realworld.js
│       │   │   ├── string.d.ts
│       │   │   ├── string.js
│       │   │   ├── union.d.ts
│       │   │   └── union.js
│       │   ├── errors.d.ts
│       │   ├── errors.js
│       │   ├── external.d.ts
│       │   ├── external.js
│       │   ├── helpers
│       │   │   ├── enumUtil.d.ts
│       │   │   ├── enumUtil.js
│       │   │   ├── errorUtil.d.ts
│       │   │   ├── errorUtil.js
│       │   │   ├── parseUtil.d.ts
│       │   │   ├── parseUtil.js
│       │   │   ├── partialUtil.d.ts
│       │   │   ├── partialUtil.js
│       │   │   ├── typeAliases.d.ts
│       │   │   ├── typeAliases.js
│       │   │   ├── util.d.ts
│       │   │   └── util.js
│       │   ├── index.d.ts
│       │   ├── index.js
│       │   ├── index.mjs
│       │   ├── index.umd.js
│       │   ├── locales
│       │   │   ├── en.d.ts
│       │   │   └── en.js
│       │   ├── standard-schema.d.ts
│       │   ├── standard-schema.js
│       │   ├── types.d.ts
│       │   ├── types.js
│       │   ├── ZodError.d.ts
│       │   └── ZodError.js
│       ├── LICENSE
│       ├── package.json
│       └── README.md
├── package-lock.json
├── package.json
├── README.md
├── src
│   ├── index.ts
│   ├── reasoner.ts
│   ├── state.ts
│   ├── strategies
│   │   ├── base.ts
│   │   ├── beam-search.ts
│   │   ├── experiments
│   │   │   ├── mcts-002-alpha.ts
│   │   │   └── mcts-002alt-alpha.ts
│   │   ├── factory.ts
│   │   └── mcts.ts
│   ├── types
│   │   └── modelcontextprotocol.d.ts
│   └── types.ts
└── tsconfig.json
```

# Files

--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------

```
1 | node_modules/
2 | dist/
```

--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------

```markdown
 1 | # MCP Reasoner
 2 | A reasoning implementation for Claude Desktop that lets you use both Beam Search and Monte Carlo Tree Search (MCTS). tbh this started as a way to see if we could make Claude even better at complex problem-solving... turns out we definitely can.
 3 | 
 4 | ### Current Version:
 5 | **v2.0.0**
 6 | 
 7 | #### What's New:
 8 | 
 9 | > Added 2 Experimental Reasoning Algorithms:
10 | >
11 | >     - `mcts-002-alpha`
12 | >
13 | >         - Uses the A* Search Method along with an early *alpha* implementation of a Policy Simulation Layer
14 | >
15 | >         - Also includes an early *alpha* implementation of Adaptive Exploration Simulator & Outcome Based Reasoning Simulator
16 | >
17 | >     *NOTE* the implementation of these alpha simulators is not complete and is subject to change
18 | >
19 | >     - `mcts-002alt-alpha`
20 | >
21 | >         - Uses the Bidirectional Search Method along with an early *alpha* implementation of a Policy Simulation Layer
22 | >
23 | >         - Also includes an early *alpha* implementation of Adaptive Exploration Simulator & Outcome Based Reasoning Simulator
24 | >
25 | >     *NOTE* the implementation of these alpha simulators is not complete and is subject to change
26 | 
27 | 
28 | What happened to `mcts-001-alpha` and `mcts-001alt-alpha`?
29 | > Quite simply: It was useless and near similar to the base `mcts` method. After initial testing the results yielded in basic thought processes was near similar showing that simply adding policy simulation may not have an effect.
30 | 
31 | So why add Polciy Simulation Layer now?
32 | > Well i think its important to incorporate Policy AND Search in tandem as that is how most of the algorithms implement them.
33 | 
34 | #### Previous Versions:
35 | **v1.1.0**
36 | 
37 | > Added model control over search parameters:
38 | >
39 | > beamWidth - lets Claude adjust how many paths to track (1-10)
40 | >
41 | > numSimulations - fine-tune MCTS simulation count (1-150)
42 | 
43 | ## Features
44 | - Two search strategies that you can switch between:
45 |    - Beam search (good for straightforward stuff)
46 |    - MCTS (when stuff gets complex) with alpha variations (see above)
47 | - Tracks how good different reasoning paths are
48 | - Maps out all the different ways Claude thinks through problems
49 | - Analyzes how the reasoning process went
50 | - Follows the MCP protocol (obviously)
51 | 
52 | ## Installation
53 | ```
54 | git clone https://github.com/frgmt0/mcp-reasoner.git 
55 | 
56 | OR clone the original:
57 | 
58 | git clone https://github.com/Jacck/mcp-reasoner.git
59 | 
60 | cd mcp-reasoner
61 | npm install
62 | npm run build
63 | ```
64 | 
65 | ## Configuration
66 | Add to Claude Desktop config:
67 | ```
68 | {
69 |   "mcpServers": {
70 |     "mcp-reasoner": {
71 |       "command": "node",
72 |       "args": ["path/to/mcp-reasoner/dist/index.js"],
73 |     }
74 |   }
75 | }
76 | ```
77 | 
78 | ## Testing
79 | 
80 | [More Testing Coming Soon]
81 | 
82 | ## Benchmarks
83 | 
84 | [Benchmarking will be added soon]
85 | 
86 | Key Benchmarks to test against:
87 | 
88 | - MATH500
89 | 
90 | - GPQA-Diamond
91 | 
92 | - GMSK8
93 | 
94 | - Maybe Polyglot &/or SWE-Bench
95 | 
96 | ## License
97 | This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
98 | 
```

--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------

```json
 1 | {
 2 |   "compilerOptions": {
 3 |     "target": "ES2020",
 4 |     "module": "ES2020",
 5 |     "moduleResolution": "node",
 6 |     "outDir": "./dist",
 7 |     "rootDir": "./src",
 8 |     "strict": true,
 9 |     "esModuleInterop": true,
10 |     "skipLibCheck": true,
11 |     "forceConsistentCasingInFileNames": true,
12 |     "declaration": true,
13 |     "resolveJsonModule": true
14 |   },
15 |   "include": ["src/**/*"],
16 |   "exclude": ["node_modules", "dist"]
17 | }
18 | 
```

--------------------------------------------------------------------------------
/src/types/modelcontextprotocol.d.ts:
--------------------------------------------------------------------------------

```typescript
 1 | declare module '@modelcontextprotocol/sdk/server/index.js' {
 2 |   export class Server {
 3 |     constructor(info: { name: string; version: string }, config: { capabilities: { tools: {} } });
 4 |     setRequestHandler(schema: any, handler: (request: any) => Promise<any>): void;
 5 |     connect(transport: any): Promise<void>;
 6 |   }
 7 | }
 8 | 
 9 | declare module '@modelcontextprotocol/sdk/server/stdio.js' {
10 |   export class StdioServerTransport {
11 |     constructor();
12 |   }
13 | }
14 | 
15 | declare module '@modelcontextprotocol/sdk/types.js' {
16 |   export interface Tool {
17 |     name: string;
18 |     description: string;
19 |     inputSchema: {
20 |       type: string;
21 |       properties: Record<string, any>;
22 |       required: string[];
23 |     };
24 |   }
25 | 
26 |   export const CallToolRequestSchema: {
27 |     params: {
28 |       name: string;
29 |       arguments: any;
30 |     };
31 |   };
32 | 
33 |   export const ListToolsRequestSchema: {
34 |     params: any;
35 |   };
36 | }
```

--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------

```json
 1 | {
 2 |   "name": "mcp-reasoner",
 3 |   "version": "2.0.0",
 4 |   "description": "MCP Reasoner with multiple reasoning strategies including Beam Search and Monte Carlo Tree Search",
 5 |   "type": "module",
 6 |   "main": "dist/index.js",
 7 |   "types": "dist/index.d.ts",
 8 |   "scripts": {
 9 |     "build": "tsc",
10 |     "start": "node dist/index.js",
11 |     "clean": "shx rm -rf dist",
12 |     "prebuild": "npm run clean",
13 |     "test": "jest",
14 |     "lint": "eslint src --ext .ts",
15 |     "format": "prettier --write \"src/**/*.ts\"",
16 |     "prepare": "npm run build"
17 |   },
18 |   "dependencies": {
19 |     "@modelcontextprotocol/sdk": "*",
20 |     "chalk": "^5.3.0",
21 |     "uuid": "^9.0.0"
22 |   },
23 |   "devDependencies": {
24 |     "@types/jest": "^29.5.0",
25 |     "@types/node": "^20.0.0",
26 |     "@types/uuid": "^10.0.0",
27 |     "@typescript-eslint/eslint-plugin": "^6.0.0",
28 |     "@typescript-eslint/parser": "^6.0.0",
29 |     "eslint": "^8.0.0",
30 |     "jest": "^29.5.0",
31 |     "prettier": "^3.0.0",
32 |     "shx": "^0.3.4",
33 |     "ts-jest": "^29.1.0",
34 |     "typescript": "^5.0.0"
35 |   },
36 |   "keywords": [
37 |     "mcp",
38 |     "reasoning",
39 |     "beam-search",
40 |     "monte-carlo-tree-search",
41 |     "ai",
42 |     "search"
43 |   ],
44 |   "author": "",
45 |   "license": "MIT",
46 |   "engines": {
47 |     "node": ">=16.0.0"
48 |   }
49 | }
50 | 
```

--------------------------------------------------------------------------------
/src/strategies/factory.ts:
--------------------------------------------------------------------------------

```typescript
 1 | import { StateManager } from '../state.js';
 2 | import { BaseStrategy } from './base.js';
 3 | import { BeamSearchStrategy } from './beam-search.js';
 4 | import { MonteCarloTreeSearchStrategy } from './mcts.js';
 5 | import { MCTS002AlphaStrategy } from './experiments/mcts-002-alpha.js';
 6 | import { MCTS002AltAlphaStrategy } from './experiments/mcts-002alt-alpha.js';
 7 | 
 8 | export enum ReasoningStrategy {
 9 |   BEAM_SEARCH = 'beam_search',
10 |   MCTS = 'mcts',
11 |   MCTS_002_ALPHA = 'mcts_002_alpha',
12 |   MCTS_002_ALT_ALPHA = 'mcts_002_alt_alpha'
13 | }
14 | 
15 | export class StrategyFactory {
16 |   static createStrategy(
17 |     type: ReasoningStrategy,
18 |     stateManager: StateManager,
19 |     beamWidth?: number,
20 |     numSimulations?: number
21 |   ): BaseStrategy {
22 |     switch (type) {
23 |       case ReasoningStrategy.BEAM_SEARCH:
24 |         return new BeamSearchStrategy(stateManager, beamWidth);
25 |       case ReasoningStrategy.MCTS:
26 |         return new MonteCarloTreeSearchStrategy(stateManager, numSimulations);
27 |       case ReasoningStrategy.MCTS_002_ALPHA:
28 |         return new MCTS002AlphaStrategy(stateManager, numSimulations);
29 |       case ReasoningStrategy.MCTS_002_ALT_ALPHA:
30 |         return new MCTS002AltAlphaStrategy(stateManager, numSimulations);
31 |       default:
32 |         throw new Error(`Unknown strategy type: ${type}`);
33 |     }
34 |   }
35 | }
36 | 
```

--------------------------------------------------------------------------------
/src/types.ts:
--------------------------------------------------------------------------------

```typescript
 1 | export interface ThoughtNode {
 2 |   id: string;
 3 |   thought: string;
 4 |   score: number;
 5 |   depth: number;
 6 |   children: string[];  // Store child IDs
 7 |   parentId?: string;   // Store parent ID
 8 |   isComplete: boolean;
 9 | }
10 | 
11 | export interface ReasoningRequest {
12 |   thought: string;
13 |   thoughtNumber: number;
14 |   totalThoughts: number;
15 |   nextThoughtNeeded: boolean;
16 |   parentId?: string;   // For branching thoughts
17 |   strategyType?: string; // Strategy to use for reasoning
18 |   beamWidth?: number;  // Number of top paths to maintain (n-sampling)
19 |   numSimulations?: number; // Number of MCTS simulations to run
20 | }
21 | 
22 | export interface ReasoningResponse {
23 |   nodeId: string;
24 |   thought: string;
25 |   score: number;
26 |   depth: number;
27 |   isComplete: boolean;
28 |   nextThoughtNeeded: boolean;
29 |   possiblePaths?: number;
30 |   bestScore?: number;
31 |   strategyUsed?: string;
32 | }
33 | 
34 | export interface ReasoningStats {
35 |   totalNodes: number;
36 |   averageScore: number;
37 |   maxDepth: number;
38 |   branchingFactor: number;
39 |   strategyMetrics?: Record<string, any>;
40 | }
41 | 
42 | export const CONFIG = {
43 |   beamWidth: 3,     // Keep top 3 paths
44 |   maxDepth: 5,      // Reasonable depth limit
45 |   minScore: 0.5,    // Threshold for path viability
46 |   temperature: 0.7, // For thought diversity
47 |   cacheSize: 1000,  // LRU cache size
48 |   defaultStrategy: 'beam_search', // Default reasoning strategy
49 |   numSimulations: 50 // Default number of MCTS simulations
50 | } as const;
51 | 
```

--------------------------------------------------------------------------------
/src/state.ts:
--------------------------------------------------------------------------------

```typescript
  1 | import { ThoughtNode } from './types.js';
  2 | 
  3 | class LRUCache<K, V> {
  4 |   private cache = new Map<K, V>();
  5 |   private readonly maxSize: number;
  6 | 
  7 |   constructor(maxSize: number) {
  8 |     this.maxSize = maxSize;
  9 |   }
 10 | 
 11 |   get(key: K): V | undefined {
 12 |     const value = this.cache.get(key);
 13 |     if (value) {
 14 |       // Refresh by removing and re-adding
 15 |       this.cache.delete(key);
 16 |       this.cache.set(key, value);
 17 |     }
 18 |     return value;
 19 |   }
 20 | 
 21 |   set(key: K, value: V): void {
 22 |     // Remove oldest if at capacity
 23 |     if (this.cache.size >= this.maxSize) {
 24 |       const firstKey = Array.from(this.cache.keys())[0];
 25 |       if (firstKey !== undefined) {
 26 |         this.cache.delete(firstKey);
 27 |       }
 28 |     }
 29 |     // Add new value
 30 |     this.cache.set(key, value);
 31 |   }
 32 | 
 33 |   clear(): void {
 34 |     this.cache.clear();
 35 |   }
 36 | 
 37 |   size(): number {
 38 |     return this.cache.size;
 39 |   }
 40 | 
 41 |   has(key: K): boolean {
 42 |     return this.cache.has(key);
 43 |   }
 44 | }
 45 | 
 46 | export class StateManager {
 47 |   private cache: LRUCache<string, ThoughtNode>;
 48 |   private nodes = new Map<string, ThoughtNode>();
 49 | 
 50 |   constructor(cacheSize: number) {
 51 |     this.cache = new LRUCache(cacheSize);
 52 |   }
 53 | 
 54 |   async getNode(id: string): Promise<ThoughtNode | undefined> {
 55 |     // Check cache first
 56 |     const cached = this.cache.get(id);
 57 |     if (cached) return cached;
 58 | 
 59 |     // Check main storage
 60 |     const node = this.nodes.get(id);
 61 |     if (node) {
 62 |       this.cache.set(id, node);
 63 |       return node;
 64 |     }
 65 | 
 66 |     return undefined;
 67 |   }
 68 | 
 69 |   async saveNode(node: ThoughtNode): Promise<void> {
 70 |     this.nodes.set(node.id, node);
 71 |     this.cache.set(node.id, node);
 72 |   }
 73 | 
 74 |   async getChildren(nodeId: string): Promise<ThoughtNode[]> {
 75 |     const node = await this.getNode(nodeId);
 76 |     if (!node) return [];
 77 | 
 78 |     const children = await Promise.all(
 79 |       node.children.map(id => this.getNode(id))
 80 |     );
 81 | 
 82 |     return children.filter((n): n is ThoughtNode => n !== undefined);
 83 |   }
 84 | 
 85 |   async getPath(nodeId: string): Promise<ThoughtNode[]> {
 86 |     const path: ThoughtNode[] = [];
 87 |     let currentId = nodeId;
 88 | 
 89 |     while (currentId) {
 90 |       const node = await this.getNode(currentId);
 91 |       if (!node) break;
 92 |       
 93 |       path.unshift(node);
 94 |       currentId = node.parentId || '';
 95 |     }
 96 | 
 97 |     return path;
 98 |   }
 99 | 
100 |   async getAllNodes(): Promise<ThoughtNode[]> {
101 |     return Array.from(this.nodes.values());
102 |   }
103 | 
104 |   clear(): void {
105 |     this.nodes.clear();
106 |     this.cache.clear();
107 |   }
108 | }
109 | 
```

--------------------------------------------------------------------------------
/src/strategies/beam-search.ts:
--------------------------------------------------------------------------------

```typescript
  1 | import { v4 as uuidv4 } from 'uuid';
  2 | import { ThoughtNode, ReasoningRequest, ReasoningResponse, CONFIG } from '../types.js';
  3 | import { BaseStrategy } from './base.js';
  4 | 
  5 | export class BeamSearchStrategy extends BaseStrategy {
  6 |   private beamWidth: number;
  7 |   private beams: Map<number, ThoughtNode[]>;
  8 | 
  9 |   constructor(stateManager: any, beamWidth: number = CONFIG.beamWidth) {
 10 |     super(stateManager);
 11 |     this.beamWidth = beamWidth;
 12 |     this.beams = new Map();
 13 |   }
 14 | 
 15 |   public async processThought(request: ReasoningRequest): Promise<ReasoningResponse> {
 16 |     const nodeId = uuidv4();
 17 |     const parentNode = request.parentId ? 
 18 |       await this.getNode(request.parentId) : undefined;
 19 | 
 20 |     const node: ThoughtNode = {
 21 |       id: nodeId,
 22 |       thought: request.thought,
 23 |       depth: request.thoughtNumber - 1,
 24 |       score: 0,
 25 |       children: [],
 26 |       parentId: request.parentId,
 27 |       isComplete: !request.nextThoughtNeeded
 28 |     };
 29 | 
 30 |     // Evaluate and score the node
 31 |     node.score = this.evaluateThought(node, parentNode);
 32 |     await this.saveNode(node);
 33 | 
 34 |     // Update parent if exists
 35 |     if (parentNode) {
 36 |       parentNode.children.push(node.id);
 37 |       await this.saveNode(parentNode);
 38 |     }
 39 | 
 40 |     // Manage beam at current depth
 41 |     let currentBeam = this.beams.get(node.depth) || [];
 42 |     currentBeam.push(node);
 43 |     currentBeam.sort((a, b) => b.score - a.score);
 44 |     
 45 |     // Prune beam to maintain beam width
 46 |     if (currentBeam.length > this.beamWidth) {
 47 |       currentBeam = currentBeam.slice(0, this.beamWidth);
 48 |     }
 49 |     this.beams.set(node.depth, currentBeam);
 50 | 
 51 |     // Calculate path statistics
 52 |     const currentPath = await this.stateManager.getPath(nodeId);
 53 |     const pathScore = currentPath.reduce((acc, n) => acc + n.score, 0) / currentPath.length;
 54 | 
 55 |     // Get best path score from all beams
 56 |     const bestBeamScore = Math.max(
 57 |       ...Array.from(this.beams.values())
 58 |         .flat()
 59 |         .map(n => n.score)
 60 |     );
 61 | 
 62 |     return {
 63 |       nodeId: node.id,
 64 |       thought: node.thought,
 65 |       score: node.score,
 66 |       depth: node.depth,
 67 |       isComplete: node.isComplete,
 68 |       nextThoughtNeeded: request.nextThoughtNeeded,
 69 |       possiblePaths: this.calculatePossiblePaths(),
 70 |       bestScore: Math.max(pathScore, bestBeamScore)
 71 |     };
 72 |   }
 73 | 
 74 |   private calculatePossiblePaths(): number {
 75 |     let totalPaths = 0;
 76 |     this.beams.forEach((beam, depth) => {
 77 |       const nextBeam = this.beams.get(depth + 1);
 78 |       if (nextBeam) {
 79 |         totalPaths += beam.length * nextBeam.length;
 80 |       } else {
 81 |         totalPaths += beam.length;
 82 |       }
 83 |     });
 84 |     return totalPaths;
 85 |   }
 86 | 
 87 |   public async getBestPath(): Promise<ThoughtNode[]> {
 88 |     // Find the deepest beam
 89 |     const maxDepth = Math.max(...Array.from(this.beams.keys()));
 90 |     const deepestBeam = this.beams.get(maxDepth) || [];
 91 |     
 92 |     if (deepestBeam.length === 0) return [];
 93 | 
 94 |     // Get the best scoring node from deepest beam
 95 |     const bestNode = deepestBeam.reduce((a, b) => a.score > b.score ? a : b);
 96 |     
 97 |     // Reconstruct path
 98 |     const path = await this.stateManager.getPath(bestNode.id);
 99 |     return path;
100 |   }
101 | 
102 |   public async getMetrics(): Promise<any> {
103 |     const baseMetrics = await super.getMetrics();
104 |     return {
105 |       ...baseMetrics,
106 |       beamWidth: this.beamWidth,
107 |       activeBeams: this.beams.size,
108 |       totalBeamNodes: Array.from(this.beams.values()).flat().length
109 |     };
110 |   }
111 | 
112 |   public async clear(): Promise<void> {
113 |     await super.clear();
114 |     this.beams.clear();
115 |   }
116 | }
117 | 
```

--------------------------------------------------------------------------------
/src/strategies/base.ts:
--------------------------------------------------------------------------------

```typescript
  1 | import { ThoughtNode, ReasoningRequest, ReasoningResponse } from '../types.js';
  2 | import { StateManager } from '../state.js';
  3 | 
  4 | export interface StrategyMetrics {
  5 |   name: string;
  6 |   nodesExplored: number;
  7 |   averageScore: number;
  8 |   maxDepth: number;
  9 |   active?: boolean;
 10 |   [key: string]: number | string | boolean | undefined; // Allow additional strategy-specific metrics including booleans
 11 | }
 12 | 
 13 | export abstract class BaseStrategy {
 14 |   protected stateManager: StateManager;
 15 | 
 16 |   constructor(stateManager: StateManager) {
 17 |     this.stateManager = stateManager;
 18 |   }
 19 | 
 20 |   abstract processThought(request: ReasoningRequest): Promise<ReasoningResponse>;
 21 |   
 22 |   protected async getNode(id: string): Promise<ThoughtNode | undefined> {
 23 |     return this.stateManager.getNode(id);
 24 |   }
 25 | 
 26 |   protected async saveNode(node: ThoughtNode): Promise<void> {
 27 |     return this.stateManager.saveNode(node);
 28 |   }
 29 | 
 30 |   protected evaluateThought(node: ThoughtNode, parent?: ThoughtNode): number {
 31 |     // Base evaluation logic
 32 |     const logicalScore = this.calculateLogicalScore(node, parent);
 33 |     const depthPenalty = this.calculateDepthPenalty(node);
 34 |     const completionBonus = node.isComplete ? 0.2 : 0;
 35 |     
 36 |     return (logicalScore + depthPenalty + completionBonus) / 3;
 37 |   }
 38 | 
 39 |   private calculateLogicalScore(node: ThoughtNode, parent?: ThoughtNode): number {
 40 |     let score = 0;
 41 |     
 42 |     // Length and complexity
 43 |     score += Math.min(node.thought.length / 200, 0.3);
 44 |     
 45 |     // Logical connectors
 46 |     if (/\b(therefore|because|if|then|thus|hence|so)\b/i.test(node.thought)) {
 47 |       score += 0.2;
 48 |     }
 49 |     
 50 |     // Mathematical/logical expressions
 51 |     if (/[+\-*/=<>]/.test(node.thought)) {
 52 |       score += 0.2;
 53 |     }
 54 |     
 55 |     // Parent-child coherence
 56 |     if (parent) {
 57 |       const coherence = this.calculateCoherence(parent.thought, node.thought);
 58 |       score += coherence * 0.3;
 59 |     }
 60 |     
 61 |     return score;
 62 |   }
 63 | 
 64 |   private calculateDepthPenalty(node: ThoughtNode): number {
 65 |     return Math.max(0, 1 - (node.depth / 10) * 0.3);
 66 |   }
 67 | 
 68 |   private calculateCoherence(parentThought: string, childThought: string): number {
 69 |     // Simple coherence based on shared terms
 70 |     const parentTerms = new Set(parentThought.toLowerCase().split(/\W+/));
 71 |     const childTerms = childThought.toLowerCase().split(/\W+/);
 72 |     
 73 |     const sharedTerms = childTerms.filter(term => parentTerms.has(term)).length;
 74 |     return Math.min(sharedTerms / childTerms.length, 1);
 75 |   }
 76 | 
 77 |   // Required methods for all strategies
 78 |   public async getBestPath(): Promise<ThoughtNode[]> {
 79 |     const nodes = await this.stateManager.getAllNodes();
 80 |     if (nodes.length === 0) return [];
 81 | 
 82 |     // Default implementation - find highest scoring complete path
 83 |     const completedNodes = nodes.filter(n => n.isComplete)
 84 |       .sort((a, b) => b.score - a.score);
 85 | 
 86 |     if (completedNodes.length === 0) return [];
 87 | 
 88 |     return this.stateManager.getPath(completedNodes[0].id);
 89 |   }
 90 | 
 91 |   public async getMetrics(): Promise<StrategyMetrics> {
 92 |     const nodes = await this.stateManager.getAllNodes();
 93 |     
 94 |     return {
 95 |       name: this.constructor.name,
 96 |       nodesExplored: nodes.length,
 97 |       averageScore: nodes.length > 0 
 98 |         ? nodes.reduce((sum, n) => sum + n.score, 0) / nodes.length 
 99 |         : 0,
100 |       maxDepth: nodes.length > 0
101 |         ? Math.max(...nodes.map(n => n.depth))
102 |         : 0
103 |     };
104 |   }
105 | 
106 |   public async clear(): Promise<void> {
107 |     // Optional cleanup method for strategies
108 |     // Default implementation does nothing
109 |   }
110 | }
111 | 
```

--------------------------------------------------------------------------------
/src/index.ts:
--------------------------------------------------------------------------------

```typescript
  1 | #!/usr/bin/env node
  2 | import { Server } from "@modelcontextprotocol/sdk/server/index.js";
  3 | import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
  4 | import { CallToolRequestSchema, ListToolsRequestSchema } from "@modelcontextprotocol/sdk/types.js";
  5 | import { Reasoner } from './reasoner.js';
  6 | import { ReasoningStrategy } from './strategies/factory.js';
  7 | 
  8 | // Initialize server
  9 | const server = new Server(
 10 |   {
 11 |     name: "mcp-reasoner",
 12 |     version: "1.0.0",
 13 |   },
 14 |   {
 15 |     capabilities: {
 16 |       tools: {},
 17 |     },
 18 |   }
 19 | );
 20 | 
 21 | // Initialize reasoner
 22 | const reasoner = new Reasoner();
 23 | 
 24 | // Process input and ensure correct types
 25 | function processInput(input: any) {
 26 |   const result = {
 27 |     thought: String(input.thought || ""),
 28 |     thoughtNumber: Number(input.thoughtNumber || 0),
 29 |     totalThoughts: Number(input.totalThoughts || 0),
 30 |     nextThoughtNeeded: Boolean(input.nextThoughtNeeded),
 31 |     strategyType: input.strategyType as ReasoningStrategy | undefined,
 32 |     beamWidth: Number(input.beamWidth || 3),
 33 |     numSimulations: Number(input.numSimulations || 50)
 34 |   };
 35 | 
 36 |   // Validate
 37 |   if (!result.thought) {
 38 |     throw new Error("thought must be provided");
 39 |   }
 40 |   if (result.thoughtNumber < 1) {
 41 |     throw new Error("thoughtNumber must be >= 1");
 42 |   }
 43 |   if (result.totalThoughts < 1) {
 44 |     throw new Error("totalThoughts must be >= 1");
 45 |   }
 46 |   if (result.beamWidth < 1 || result.beamWidth > 10) {
 47 |     throw new Error("beamWidth must be between 1 and 10");
 48 |   }
 49 |   if (result.numSimulations < 1 || result.numSimulations > 150) {
 50 |     throw new Error("numSimulations must be between 1 and 150");
 51 |   }
 52 | 
 53 |   return result;
 54 | }
 55 | 
 56 | // Register the tool
 57 | server.setRequestHandler(ListToolsRequestSchema, async () => ({
 58 |   tools: [{
 59 |     name: "mcp-reasoner",
 60 |     description: "Advanced reasoning tool with multiple strategies including Beam Search and Monte Carlo Tree Search",
 61 |     inputSchema: {
 62 |       type: "object",
 63 |       properties: {
 64 |         thought: {
 65 |           type: "string",
 66 |           description: "Current reasoning step"
 67 |         },
 68 |         thoughtNumber: {
 69 |           type: "integer",
 70 |           description: "Current step number",
 71 |           minimum: 1
 72 |         },
 73 |         totalThoughts: {
 74 |           type: "integer",
 75 |           description: "Total expected steps",
 76 |           minimum: 1
 77 |         },
 78 |         nextThoughtNeeded: {
 79 |           type: "boolean",
 80 |           description: "Whether another step is needed"
 81 |         },
 82 |         strategyType: {
 83 |           type: "string",
 84 |           enum: Object.values(ReasoningStrategy),
 85 |           description: "Reasoning strategy to use (beam_search or mcts)"
 86 |         },
 87 |         beamWidth: {
 88 |           type: "integer",
 89 |           description: "Number of top paths to maintain (n-sampling). Defaults to 3 if not specified",
 90 |           minimum: 1,
 91 |           maximum: 10
 92 |         },
 93 |         numSimulations: {
 94 |           type: "integer",
 95 |           description: "Number of MCTS simulations to run. Defaults to 50 if not specified",
 96 |           minimum: 1,
 97 |           maximum: 150
 98 |         }
 99 |       },
100 |       required: ["thought", "thoughtNumber", "totalThoughts", "nextThoughtNeeded"]
101 |     }
102 |   }]
103 | }));
104 | 
105 | // Handle requests
106 | server.setRequestHandler(CallToolRequestSchema, async (request) => {
107 |   if (request.params.name !== "mcp-reasoner") {
108 |     return {
109 |       content: [{
110 |         type: "text",
111 |         text: JSON.stringify({ error: "Unknown tool", success: false })
112 |       }],
113 |       isError: true
114 |     };
115 |   }
116 | 
117 |   try {
118 |     // Process and validate input
119 |     const step = processInput(request.params.arguments);
120 | 
121 |     // Process thought with selected strategy
122 |     const response = await reasoner.processThought({
123 |       thought: step.thought,
124 |       thoughtNumber: step.thoughtNumber,
125 |       totalThoughts: step.totalThoughts,
126 |       nextThoughtNeeded: step.nextThoughtNeeded,
127 |       strategyType: step.strategyType,
128 |       beamWidth: step.beamWidth,
129 |       numSimulations: step.numSimulations
130 |     });
131 | 
132 |     // Get reasoning stats
133 |     const stats = await reasoner.getStats();
134 | 
135 |     // Return enhanced response
136 |     const result = {
137 |       thoughtNumber: step.thoughtNumber,
138 |       totalThoughts: step.totalThoughts,
139 |       nextThoughtNeeded: step.nextThoughtNeeded,
140 |       thought: step.thought,
141 |       nodeId: response.nodeId,
142 |       score: response.score,
143 |       strategyUsed: response.strategyUsed,
144 |       stats: {
145 |         totalNodes: stats.totalNodes,
146 |         averageScore: stats.averageScore,
147 |         maxDepth: stats.maxDepth,
148 |         branchingFactor: stats.branchingFactor,
149 |         strategyMetrics: stats.strategyMetrics
150 |       }
151 |     };
152 | 
153 |     return {
154 |       content: [{
155 |         type: "text",
156 |         text: JSON.stringify(result)
157 |       }]
158 |     };
159 |   } catch (error) {
160 |     return {
161 |       content: [{
162 |         type: "text",
163 |         text: JSON.stringify({
164 |           error: error instanceof Error ? error.message : String(error),
165 |           success: false
166 |         })
167 |       }],
168 |       isError: true
169 |     };
170 |   }
171 | });
172 | 
173 | // Start server
174 | const transport = new StdioServerTransport();
175 | server.connect(transport).catch(error => {
176 |   process.stderr.write(`Error starting server: ${error}\n`);
177 |   process.exit(1);
178 | });
179 | 
```
Page 1/3FirstPrevNextLast