#
tokens: 48642/50000 3/15 files (page 2/3)
lines: on (toggle) GitHub
raw markdown copy reset
This is page 2 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

--------------------------------------------------------------------------------
/src/reasoner.ts:
--------------------------------------------------------------------------------

```typescript
  1 | import { ThoughtNode, ReasoningRequest, ReasoningResponse, ReasoningStats, CONFIG } from './types.js';
  2 | import { StateManager } from './state.js';
  3 | import { StrategyFactory, ReasoningStrategy } from './strategies/factory.js';
  4 | import { BaseStrategy, StrategyMetrics } from './strategies/base.js';
  5 | 
  6 | export class Reasoner {
  7 |   private stateManager: StateManager;
  8 |   private currentStrategy: BaseStrategy;
  9 |   private strategies: Map<ReasoningStrategy, BaseStrategy>;
 10 | 
 11 |   constructor() {
 12 |     this.stateManager = new StateManager(CONFIG.cacheSize);
 13 |     
 14 |     // Initialize available strategies
 15 |     this.strategies = new Map();
 16 |     
 17 |     // Initialize base strategies
 18 |     this.strategies.set(
 19 |       ReasoningStrategy.BEAM_SEARCH,
 20 |       StrategyFactory.createStrategy(ReasoningStrategy.BEAM_SEARCH, this.stateManager, CONFIG.beamWidth)
 21 |     );
 22 |     this.strategies.set(
 23 |       ReasoningStrategy.MCTS,
 24 |       StrategyFactory.createStrategy(ReasoningStrategy.MCTS, this.stateManager, undefined, CONFIG.numSimulations)
 25 |     );
 26 |     
 27 |     // Initialize experimental MCTS strategies
 28 |     this.strategies.set(
 29 |       ReasoningStrategy.MCTS_002_ALPHA,
 30 |       StrategyFactory.createStrategy(ReasoningStrategy.MCTS_002_ALPHA, this.stateManager, undefined, CONFIG.numSimulations)
 31 |     );
 32 |     this.strategies.set(
 33 |       ReasoningStrategy.MCTS_002_ALT_ALPHA,
 34 |       StrategyFactory.createStrategy(ReasoningStrategy.MCTS_002_ALT_ALPHA, this.stateManager, undefined, CONFIG.numSimulations)
 35 |     );
 36 | 
 37 |     // Set default strategy
 38 |     const defaultStrategy = CONFIG.defaultStrategy as ReasoningStrategy;
 39 |     this.currentStrategy = this.strategies.get(defaultStrategy) ||
 40 |       this.strategies.get(ReasoningStrategy.BEAM_SEARCH)!;
 41 |   }
 42 | 
 43 |   public async processThought(request: ReasoningRequest): Promise<ReasoningResponse> {
 44 |     // Switch strategy if requested
 45 |     if (request.strategyType && this.strategies.has(request.strategyType as ReasoningStrategy)) {
 46 |       const strategyType = request.strategyType as ReasoningStrategy;
 47 |       
 48 |       // Create new strategy instance with appropriate parameters
 49 |       if (strategyType === ReasoningStrategy.BEAM_SEARCH) {
 50 |         this.currentStrategy = StrategyFactory.createStrategy(
 51 |           strategyType,
 52 |           this.stateManager,
 53 |           request.beamWidth
 54 |         );
 55 |       } else {
 56 |         // All MCTS variants (base and experimental) use numSimulations
 57 |         this.currentStrategy = StrategyFactory.createStrategy(
 58 |           strategyType,
 59 |           this.stateManager,
 60 |           undefined,
 61 |           request.numSimulations
 62 |         );
 63 |       }
 64 |       // Update strategy in map
 65 |       this.strategies.set(strategyType, this.currentStrategy);
 66 |     }
 67 | 
 68 |     // Process thought using current strategy
 69 |     const response = await this.currentStrategy.processThought(request);
 70 | 
 71 |     // Add strategy information to response
 72 |     return {
 73 |       ...response,
 74 |       strategyUsed: this.getCurrentStrategyName()
 75 |     };
 76 |   }
 77 | 
 78 |   public async getStats(): Promise<ReasoningStats> {
 79 |     const nodes = await this.stateManager.getAllNodes();
 80 |     
 81 |     if (nodes.length === 0) {
 82 |       return {
 83 |         totalNodes: 0,
 84 |         averageScore: 0,
 85 |         maxDepth: 0,
 86 |         branchingFactor: 0,
 87 |         strategyMetrics: {}
 88 |       };
 89 |     }
 90 | 
 91 |     const scores = nodes.map(n => n.score);
 92 |     const depths = nodes.map(n => n.depth);
 93 |     const branchingFactors = nodes.map(n => n.children.length);
 94 | 
 95 |     const metrics = await this.getStrategyMetrics();
 96 | 
 97 |     return {
 98 |       totalNodes: nodes.length,
 99 |       averageScore: scores.reduce((a, b) => a + b, 0) / scores.length,
100 |       maxDepth: Math.max(...depths),
101 |       branchingFactor: branchingFactors.reduce((a, b) => a + b, 0) / nodes.length,
102 |       strategyMetrics: metrics
103 |     };
104 |   }
105 | 
106 |   private async getStrategyMetrics(): Promise<Record<string, StrategyMetrics>> {
107 |     const metrics: Record<string, StrategyMetrics> = {};
108 |     
109 |     for (const [name, strategy] of this.strategies.entries()) {
110 |       metrics[name] = await strategy.getMetrics();
111 |       if (strategy === this.currentStrategy) {
112 |         metrics[name] = {
113 |           ...metrics[name],
114 |           active: true
115 |         };
116 |       }
117 |     }
118 | 
119 |     return metrics;
120 |   }
121 | 
122 |   public getCurrentStrategyName(): ReasoningStrategy {
123 |     for (const [name, strategy] of this.strategies.entries()) {
124 |       if (strategy === this.currentStrategy) {
125 |         return name;
126 |       }
127 |     }
128 |     return ReasoningStrategy.BEAM_SEARCH;
129 |   }
130 | 
131 |   public async getBestPath(): Promise<ThoughtNode[]> {
132 |     return this.currentStrategy.getBestPath();
133 |   }
134 | 
135 |   public async clear(): Promise<void> {
136 |     await this.stateManager.clear();
137 |     // Clear all strategies
138 |     for (const strategy of this.strategies.values()) {
139 |       await strategy.clear();
140 |     }
141 |   }
142 | 
143 |   public setStrategy(strategyType: ReasoningStrategy, beamWidth?: number, numSimulations?: number): void {
144 |     if (!this.strategies.has(strategyType)) {
145 |       throw new Error(`Unknown strategy type: ${strategyType}`);
146 |     }
147 |     // Create new strategy instance with appropriate parameters
148 |     if (strategyType === ReasoningStrategy.BEAM_SEARCH) {
149 |       this.currentStrategy = StrategyFactory.createStrategy(strategyType, this.stateManager, beamWidth);
150 |     } else {
151 |       // All MCTS variants (base and experimental) use numSimulations
152 |       this.currentStrategy = StrategyFactory.createStrategy(strategyType, this.stateManager, undefined, numSimulations);
153 |     }
154 |     // Update strategy in map
155 |     this.strategies.set(strategyType, this.currentStrategy);
156 |   }
157 | 
158 |   public getAvailableStrategies(): ReasoningStrategy[] {
159 |     return Array.from(this.strategies.keys());
160 |   }
161 | }
162 | 
```

--------------------------------------------------------------------------------
/src/strategies/mcts.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 | interface MCTSNode extends ThoughtNode {
  6 |   visits: number;
  7 |   totalReward: number;
  8 |   untriedActions?: string[];
  9 | }
 10 | 
 11 | export class MonteCarloTreeSearchStrategy extends BaseStrategy {
 12 |   private readonly explorationConstant = Math.sqrt(2);
 13 |   private readonly simulationDepth = CONFIG.maxDepth;
 14 |   private numSimulations: number;
 15 |   private root: MCTSNode | null = null;
 16 | 
 17 |   constructor(stateManager: any, numSimulations: number = CONFIG.numSimulations) {
 18 |     super(stateManager);
 19 |     // Ensure numSimulations is within reasonable bounds
 20 |     this.numSimulations = Math.max(1, Math.min(150, numSimulations));
 21 |   }
 22 | 
 23 |   public async processThought(request: ReasoningRequest): Promise<ReasoningResponse> {
 24 |     const nodeId = uuidv4();
 25 |     const parentNode = request.parentId ? 
 26 |       await this.getNode(request.parentId) as MCTSNode : undefined;
 27 | 
 28 |     const node: MCTSNode = {
 29 |       id: nodeId,
 30 |       thought: request.thought,
 31 |       depth: request.thoughtNumber - 1,
 32 |       score: 0,
 33 |       children: [],
 34 |       parentId: request.parentId,
 35 |       isComplete: !request.nextThoughtNeeded,
 36 |       visits: 0,
 37 |       totalReward: 0,
 38 |       untriedActions: []
 39 |     };
 40 | 
 41 |     // Initialize node
 42 |     node.score = this.evaluateThought(node, parentNode);
 43 |     node.visits = 1;
 44 |     node.totalReward = node.score;
 45 |     await this.saveNode(node);
 46 | 
 47 |     // Update parent if exists
 48 |     if (parentNode) {
 49 |       parentNode.children.push(node.id);
 50 |       await this.saveNode(parentNode);
 51 |     }
 52 | 
 53 |     // If this is a root node, store it
 54 |     if (!parentNode) {
 55 |       this.root = node;
 56 |     }
 57 | 
 58 |     // Run MCTS simulations
 59 |     if (!node.isComplete) {
 60 |       await this.runSimulations(node);
 61 |     }
 62 | 
 63 |     // Calculate path statistics
 64 |     const currentPath = await this.stateManager.getPath(nodeId);
 65 |     const pathScore = this.calculatePathScore(currentPath);
 66 | 
 67 |     return {
 68 |       nodeId: node.id,
 69 |       thought: node.thought,
 70 |       score: node.score,
 71 |       depth: node.depth,
 72 |       isComplete: node.isComplete,
 73 |       nextThoughtNeeded: request.nextThoughtNeeded,
 74 |       possiblePaths: this.calculatePossiblePaths(node),
 75 |       bestScore: pathScore
 76 |     };
 77 |   }
 78 | 
 79 |   private async runSimulations(node: MCTSNode): Promise<void> {
 80 |     for (let i = 0; i < this.numSimulations; i++) {
 81 |       const selectedNode = await this.select(node);
 82 |       const expandedNode = await this.expand(selectedNode);
 83 |       const reward = await this.simulate(expandedNode);
 84 |       await this.backpropagate(expandedNode, reward);
 85 |     }
 86 |   }
 87 | 
 88 |   private async select(node: MCTSNode): Promise<MCTSNode> {
 89 |     let current = node;
 90 | 
 91 |     while (current.children.length > 0 && !current.untriedActions?.length) {
 92 |       const children = await Promise.all(
 93 |         current.children.map(id => this.getNode(id))
 94 |       ) as MCTSNode[];
 95 | 
 96 |       current = this.selectBestUCT(children);
 97 |     }
 98 | 
 99 |     return current;
100 |   }
101 | 
102 |   private async expand(node: MCTSNode): Promise<MCTSNode> {
103 |     if (node.isComplete || node.depth >= this.simulationDepth) {
104 |       return node;
105 |     }
106 | 
107 |     // Create a new thought node as expansion
108 |     const newNode: MCTSNode = {
109 |       id: uuidv4(),
110 |       thought: `Simulated thought at depth ${node.depth + 1}`,
111 |       depth: node.depth + 1,
112 |       score: 0,
113 |       children: [],
114 |       parentId: node.id,
115 |       isComplete: false,
116 |       visits: 1,
117 |       totalReward: 0
118 |     };
119 | 
120 |     newNode.score = this.evaluateThought(newNode, node);
121 |     await this.saveNode(newNode);
122 | 
123 |     node.children.push(newNode.id);
124 |     await this.saveNode(node);
125 | 
126 |     return newNode;
127 |   }
128 | 
129 |   private async simulate(node: MCTSNode): Promise<number> {
130 |     let current = node;
131 |     let totalScore = current.score;
132 |     let depth = current.depth;
133 | 
134 |     while (depth < this.simulationDepth && !current.isComplete) {
135 |       const simulatedNode: MCTSNode = {
136 |         id: uuidv4(),
137 |         thought: `Random simulation at depth ${depth + 1}`,
138 |         depth: depth + 1,
139 |         score: 0,
140 |         children: [],
141 |         parentId: current.id,
142 |         isComplete: depth + 1 >= this.simulationDepth,
143 |         visits: 1,
144 |         totalReward: 0
145 |       };
146 | 
147 |       simulatedNode.score = this.evaluateThought(simulatedNode, current);
148 |       totalScore += simulatedNode.score;
149 |       current = simulatedNode;
150 |       depth++;
151 |     }
152 | 
153 |     return totalScore / (depth - node.depth + 1);
154 |   }
155 | 
156 |   private async backpropagate(node: MCTSNode, reward: number): Promise<void> {
157 |     let current: MCTSNode | undefined = node;
158 | 
159 |     while (current) {
160 |       current.visits++;
161 |       current.totalReward += reward;
162 |       await this.saveNode(current);
163 |       current = current.parentId ? 
164 |         await this.getNode(current.parentId) as MCTSNode : 
165 |         undefined;
166 |     }
167 |   }
168 | 
169 |   private selectBestUCT(nodes: MCTSNode[]): MCTSNode {
170 |     const totalVisits = nodes.reduce((sum, node) => sum + node.visits, 0);
171 |     
172 |     return nodes.reduce((best, node) => {
173 |       const exploitation = node.totalReward / node.visits;
174 |       const exploration = Math.sqrt(Math.log(totalVisits) / node.visits);
175 |       const uct = exploitation + this.explorationConstant * exploration;
176 |       
177 |       return uct > (best.totalReward / best.visits + 
178 |         this.explorationConstant * Math.sqrt(Math.log(totalVisits) / best.visits)) 
179 |         ? node : best;
180 |     });
181 |   }
182 | 
183 |   private calculatePathScore(path: ThoughtNode[]): number {
184 |     if (path.length === 0) return 0;
185 |     return path.reduce((acc, node) => acc + node.score, 0) / path.length;
186 |   }
187 | 
188 |   private calculatePossiblePaths(node: MCTSNode): number {
189 |     return Math.pow(2, this.simulationDepth - node.depth);
190 |   }
191 | 
192 |   public async getBestPath(): Promise<ThoughtNode[]> {
193 |     if (!this.root) return [];
194 |     
195 |     const bestChild = (await Promise.all(
196 |       this.root.children.map(id => this.getNode(id))
197 |     ) as MCTSNode[])
198 |       .reduce((best, node) => 
199 |         node.visits > best.visits ? node : best
200 |       );
201 | 
202 |     return this.stateManager.getPath(bestChild.id);
203 |   }
204 | 
205 |   public async getMetrics(): Promise<any> {
206 |     const baseMetrics = await super.getMetrics();
207 |     return {
208 |       ...baseMetrics,
209 |       simulationDepth: this.simulationDepth,
210 |       numSimulations: this.numSimulations,
211 |       explorationConstant: this.explorationConstant,
212 |       totalSimulations: this.root?.visits || 0
213 |     };
214 |   }
215 | 
216 |   public async clear(): Promise<void> {
217 |     await super.clear();
218 |     this.root = null;
219 |   }
220 | }
221 | 
```

--------------------------------------------------------------------------------
/src/strategies/experiments/mcts-002alt-alpha.ts:
--------------------------------------------------------------------------------

```typescript
  1 | import { v4 as uuidv4 } from 'uuid';
  2 | import { ThoughtNode, ReasoningRequest, ReasoningResponse, CONFIG } from '../../types.js';
  3 | import { MCTS002AlphaStrategy } from './mcts-002-alpha.js';
  4 | 
  5 | // Queue implementation for bidirectional search
  6 | class Queue<T> {
  7 |   private items: T[];
  8 | 
  9 |   constructor() {
 10 |     this.items = [];
 11 |   }
 12 | 
 13 |   enqueue(item: T): void {
 14 |     this.items.push(item);
 15 |   }
 16 | 
 17 |   dequeue(): T | undefined {
 18 |     return this.items.shift();
 19 |   }
 20 | 
 21 |   isEmpty(): boolean {
 22 |     return this.items.length === 0;
 23 |   }
 24 | 
 25 |   size(): number {
 26 |     return this.items.length;
 27 |   }
 28 | }
 29 | 
 30 | // Extend PolicyGuidedNode to include both A* and bidirectional properties
 31 | interface BidirectionalPolicyNode extends ThoughtNode {
 32 |   visits: number;
 33 |   totalReward: number;
 34 |   untriedActions?: string[];
 35 |   g: number;  // A* cost from start
 36 |   h: number;  // A* heuristic to goal
 37 |   f: number;  // A* f = g + h
 38 |   policyScore: number;
 39 |   valueEstimate: number;
 40 |   priorActionProbs: Map<string, number>;
 41 |   puct?: number;
 42 |   actionHistory?: string[];
 43 |   noveltyScore?: number;
 44 |   parent?: string;  // For path reconstruction
 45 |   direction?: 'forward' | 'backward';
 46 |   searchDepth?: number;
 47 |   meetingPoint?: boolean;
 48 | }
 49 | 
 50 | export class MCTS002AltAlphaStrategy extends MCTS002AlphaStrategy {
 51 |   private startNode: BidirectionalPolicyNode | null = null;
 52 |   private goalNode: BidirectionalPolicyNode | null = null;
 53 |   private bidirectionalStats: {
 54 |     forwardExplorationRate: number;
 55 |     backwardExplorationRate: number;
 56 |     meetingPoints: number;
 57 |     pathQuality: number;
 58 |   };
 59 | 
 60 |   constructor(stateManager: any, numSimulations: number = CONFIG.numSimulations) {
 61 |     super(stateManager, numSimulations);
 62 |     this.bidirectionalStats = {
 63 |       forwardExplorationRate: Math.sqrt(2),
 64 |       backwardExplorationRate: Math.sqrt(2),
 65 |       meetingPoints: 0,
 66 |       pathQuality: 0
 67 |     };
 68 |   }
 69 | 
 70 |   public async processThought(request: ReasoningRequest): Promise<ReasoningResponse> {
 71 |     // Get base response first to ensure proper MCTS initialization
 72 |     const baseResponse = await super.processThought(request);
 73 | 
 74 |     const nodeId = uuidv4();
 75 |     const parentNode = request.parentId ? 
 76 |       await this.getNode(request.parentId) as BidirectionalPolicyNode : undefined;
 77 | 
 78 |     const node: BidirectionalPolicyNode = {
 79 |       id: nodeId,
 80 |       thought: request.thought,
 81 |       depth: request.thoughtNumber - 1,
 82 |       score: 0,
 83 |       children: [],
 84 |       parentId: request.parentId,
 85 |       isComplete: !request.nextThoughtNeeded,
 86 |       visits: 0,
 87 |       totalReward: 0,
 88 |       untriedActions: [],
 89 |       g: parentNode ? parentNode.g + 1 : 0,
 90 |       h: 0,
 91 |       f: 0,
 92 |       policyScore: 0,
 93 |       valueEstimate: 0,
 94 |       priorActionProbs: new Map(),
 95 |       actionHistory: parentNode ? 
 96 |         [...(parentNode.actionHistory || []), this.getActionKey(request.thought)] :
 97 |         [this.getActionKey(request.thought)],
 98 |       searchDepth: 0,
 99 |       direction: parentNode ? parentNode.direction : 'forward'
100 |     };
101 | 
102 |     // Track start and goal nodes for bidirectional search
103 |     if (!parentNode) {
104 |       this.startNode = node;
105 |       node.direction = 'forward';
106 |     }
107 |     if (node.isComplete) {
108 |       this.goalNode = node;
109 |       node.direction = 'backward';
110 |     }
111 | 
112 |     // Run bidirectional search if we have both endpoints
113 |     if (this.startNode && this.goalNode) {
114 |       const path = await this.bidirectionalSearch(this.startNode, this.goalNode);
115 |       if (path.length > 0) {
116 |         await this.updatePathWithPolicyGuidance(path);
117 |       }
118 |     }
119 | 
120 |     // Calculate enhanced path statistics
121 |     const currentPath = await this.stateManager.getPath(nodeId);
122 |     const enhancedScore = this.calculateBidirectionalPolicyScore(currentPath);
123 | 
124 |     return {
125 |       ...baseResponse,
126 |       score: enhancedScore,
127 |       bestScore: Math.max(baseResponse.bestScore || 0, enhancedScore)
128 |     };
129 |   }
130 | 
131 |   protected getActionKey(thought: string): string {
132 |     // Simple action extraction based on first few words
133 |     return thought.split(/\s+/).slice(0, 3).join('_').toLowerCase();
134 |   }
135 | 
136 |   private async searchLevel(
137 |     queue: Queue<BidirectionalPolicyNode>,
138 |     visited: Map<string, BidirectionalPolicyNode>,
139 |     otherVisited: Map<string, BidirectionalPolicyNode>,
140 |     direction: 'forward' | 'backward'
141 |   ): Promise<BidirectionalPolicyNode | null> {
142 |     const levelSize = queue.size();
143 |     
144 |     for (let i = 0; i < levelSize; i++) {
145 |       const current = queue.dequeue();
146 |       if (!current) continue;
147 | 
148 |       // Check if we've found a meeting point
149 |       if (otherVisited.has(current.id)) {
150 |         current.meetingPoint = true;
151 |         this.bidirectionalStats.meetingPoints++;
152 |         await this.saveNode(current);
153 |         return current;
154 |       }
155 | 
156 |       // Get neighbors based on direction and policy scores
157 |       const neighbors = direction === 'forward' ?
158 |         await Promise.all(current.children.map(id => this.getNode(id))) :
159 |         await Promise.all([current.parentId].filter((id): id is string => !!id).map(id => this.getNode(id)));
160 | 
161 |       const validNeighbors = neighbors.filter((n): n is BidirectionalPolicyNode => !!n)
162 |         .sort((a, b) => b.policyScore - a.policyScore); // Use policy scores for neighbor selection
163 | 
164 |       for (const neighbor of validNeighbors) {
165 |         if (!visited.has(neighbor.id)) {
166 |           visited.set(neighbor.id, neighbor);
167 |           neighbor.parent = current.id;
168 |           neighbor.direction = direction;
169 |           neighbor.searchDepth = (current.searchDepth || 0) + 1;
170 |           await this.saveNode(neighbor);
171 |           queue.enqueue(neighbor);
172 |         }
173 |       }
174 |     }
175 | 
176 |     return null;
177 |   }
178 | 
179 |   private async bidirectionalSearch(
180 |     start: BidirectionalPolicyNode, 
181 |     goal: BidirectionalPolicyNode
182 |   ): Promise<BidirectionalPolicyNode[]> {
183 |     const forwardQueue = new Queue<BidirectionalPolicyNode>();
184 |     const backwardQueue = new Queue<BidirectionalPolicyNode>();
185 |     const forwardVisited = new Map<string, BidirectionalPolicyNode>();
186 |     const backwardVisited = new Map<string, BidirectionalPolicyNode>();
187 |     
188 |     forwardQueue.enqueue(start);
189 |     backwardQueue.enqueue(goal);
190 |     forwardVisited.set(start.id, start);
191 |     backwardVisited.set(goal.id, goal);
192 |     
193 |     while (!forwardQueue.isEmpty() && !backwardQueue.isEmpty()) {
194 |       // Search from both directions with policy guidance
195 |       const meetingPoint = await this.searchLevel(
196 |         forwardQueue, 
197 |         forwardVisited, 
198 |         backwardVisited,
199 |         'forward'
200 |       );
201 |       
202 |       if (meetingPoint) {
203 |         const path = this.reconstructPath(
204 |           meetingPoint, 
205 |           forwardVisited, 
206 |           backwardVisited
207 |         );
208 |         this.updateBidirectionalStats(path);
209 |         return path;
210 |       }
211 | 
212 |       const backMeetingPoint = await this.searchLevel(
213 |         backwardQueue,
214 |         backwardVisited,
215 |         forwardVisited,
216 |         'backward'
217 |       );
218 | 
219 |       if (backMeetingPoint) {
220 |         const path = this.reconstructPath(
221 |           backMeetingPoint,
222 |           forwardVisited,
223 |           backwardVisited
224 |         );
225 |         this.updateBidirectionalStats(path);
226 |         return path;
227 |       }
228 | 
229 |       // Adapt exploration rates based on progress
230 |       this.adaptBidirectionalExploration(forwardVisited, backwardVisited);
231 |     }
232 |     
233 |     return [];
234 |   }
235 | 
236 |   private reconstructPath(
237 |     meetingPoint: BidirectionalPolicyNode,
238 |     forwardVisited: Map<string, BidirectionalPolicyNode>,
239 |     backwardVisited: Map<string, BidirectionalPolicyNode>
240 |   ): BidirectionalPolicyNode[] {
241 |     const path: BidirectionalPolicyNode[] = [meetingPoint];
242 |     
243 |     // Reconstruct forward path
244 |     let current = meetingPoint;
245 |     while (current.parent && forwardVisited.has(current.parent)) {
246 |       current = forwardVisited.get(current.parent)!;
247 |       path.unshift(current);
248 |     }
249 |     
250 |     // Reconstruct backward path
251 |     current = meetingPoint;
252 |     while (current.parent && backwardVisited.has(current.parent)) {
253 |       current = backwardVisited.get(current.parent)!;
254 |       path.push(current);
255 |     }
256 |     
257 |     return path;
258 |   }
259 | 
260 |   private async updatePathWithPolicyGuidance(path: BidirectionalPolicyNode[]): Promise<void> {
261 |     const pathBonus = 0.2;
262 |     
263 |     for (const node of path) {
264 |       // Boost both policy and value estimates for nodes along the path
265 |       node.policyScore += pathBonus;
266 |       node.valueEstimate = (node.valueEstimate + 1) / 2;
267 |       
268 |       // Update action probabilities with path information
269 |       if (node.parentId) {
270 |         const parentNode = await this.getNode(node.parentId) as BidirectionalPolicyNode;
271 |         const actionKey = this.getActionKey(node.thought);
272 |         const currentProb = parentNode.priorActionProbs.get(actionKey) || 0;
273 |         const newProb = Math.max(currentProb, 0.8); // Strong preference for path actions
274 |         parentNode.priorActionProbs.set(actionKey, newProb);
275 |         await this.saveNode(parentNode);
276 |       }
277 | 
278 |       await this.saveNode(node);
279 |     }
280 | 
281 |     // Update path quality metric
282 |     this.bidirectionalStats.pathQuality = path.reduce((acc, node) => 
283 |       acc + node.policyScore + node.valueEstimate, 0) / (path.length * 2);
284 |   }
285 | 
286 |   private adaptBidirectionalExploration(
287 |     forwardVisited: Map<string, BidirectionalPolicyNode>,
288 |     backwardVisited: Map<string, BidirectionalPolicyNode>
289 |   ): void {
290 |     // Adjust exploration rates based on search progress
291 |     const forwardProgress = Array.from(forwardVisited.values())
292 |       .reduce((acc, node) => acc + node.policyScore, 0) / forwardVisited.size;
293 |     const backwardProgress = Array.from(backwardVisited.values())
294 |       .reduce((acc, node) => acc + node.policyScore, 0) / backwardVisited.size;
295 | 
296 |     // Increase exploration in the direction making less progress
297 |     if (forwardProgress > backwardProgress) {
298 |       this.bidirectionalStats.backwardExplorationRate *= 1.05;
299 |       this.bidirectionalStats.forwardExplorationRate *= 0.95;
300 |     } else {
301 |       this.bidirectionalStats.forwardExplorationRate *= 1.05;
302 |       this.bidirectionalStats.backwardExplorationRate *= 0.95;
303 |     }
304 |   }
305 | 
306 |   private updateBidirectionalStats(path: BidirectionalPolicyNode[]): void {
307 |     const forwardNodes = path.filter(n => n.direction === 'forward');
308 |     const backwardNodes = path.filter(n => n.direction === 'backward');
309 |     
310 |     // Update exploration rates based on path composition
311 |     const forwardQuality = forwardNodes.reduce((acc, n) => acc + n.policyScore, 0) / forwardNodes.length;
312 |     const backwardQuality = backwardNodes.reduce((acc, n) => acc + n.policyScore, 0) / backwardNodes.length;
313 |     
314 |     this.bidirectionalStats.pathQuality = (forwardQuality + backwardQuality) / 2;
315 |   }
316 | 
317 |   private calculateBidirectionalPolicyScore(path: ThoughtNode[]): number {
318 |     if (path.length === 0) return 0;
319 |     
320 |     return path.reduce((acc, node) => {
321 |       const biNode = node as BidirectionalPolicyNode;
322 |       const baseScore = node.score;
323 |       const policyBonus = biNode.policyScore || 0;
324 |       const valueBonus = biNode.valueEstimate || 0;
325 |       const meetingPointBonus = biNode.meetingPoint ? 0.2 : 0;
326 |       const directionBonus = biNode.direction === 'forward' ? 
327 |         this.bidirectionalStats.forwardExplorationRate * 0.1 :
328 |         this.bidirectionalStats.backwardExplorationRate * 0.1;
329 |       
330 |       return acc + (
331 |         baseScore + 
332 |         policyBonus + 
333 |         valueBonus + 
334 |         meetingPointBonus +
335 |         directionBonus
336 |       ) / 5;
337 |     }, 0) / path.length;
338 |   }
339 | 
340 |   public async getMetrics(): Promise<any> {
341 |     const baseMetrics = await super.getMetrics();
342 |     const nodes = await this.stateManager.getAllNodes() as BidirectionalPolicyNode[];
343 |     
344 |     const forwardNodes = nodes.filter(n => n.direction === 'forward');
345 |     const backwardNodes = nodes.filter(n => n.direction === 'backward');
346 |     const meetingPoints = nodes.filter(n => n.meetingPoint);
347 | 
348 |     const bidirectionalMetrics = {
349 |       forwardSearch: {
350 |         nodesExplored: forwardNodes.length,
351 |         averagePolicyScore: forwardNodes.reduce((sum, n) => sum + n.policyScore, 0) / forwardNodes.length,
352 |         explorationRate: this.bidirectionalStats.forwardExplorationRate
353 |       },
354 |       backwardSearch: {
355 |         nodesExplored: backwardNodes.length,
356 |         averagePolicyScore: backwardNodes.reduce((sum, n) => sum + n.policyScore, 0) / backwardNodes.length,
357 |         explorationRate: this.bidirectionalStats.backwardExplorationRate
358 |       },
359 |       meetingPoints: {
360 |         count: this.bidirectionalStats.meetingPoints,
361 |         averageDepth: meetingPoints.reduce((sum, n) => sum + n.depth, 0) / (meetingPoints.length || 1)
362 |       },
363 |       pathQuality: this.bidirectionalStats.pathQuality
364 |     };
365 | 
366 |     return {
367 |       ...baseMetrics,
368 |       name: 'MCTS-002Alt-Alpha (Bidirectional + Policy Enhanced)',
369 |       hasStartNode: !!this.startNode,
370 |       hasGoalNode: !!this.goalNode,
371 |       bidirectionalMetrics
372 |     };
373 |   }
374 | 
375 |   public async clear(): Promise<void> {
376 |     await super.clear();
377 |     this.startNode = null;
378 |     this.goalNode = null;
379 |     this.bidirectionalStats = {
380 |       forwardExplorationRate: Math.sqrt(2),
381 |       backwardExplorationRate: Math.sqrt(2),
382 |       meetingPoints: 0,
383 |       pathQuality: 0
384 |     };
385 |   }
386 | }
387 | 
```
Page 2/3FirstPrevNextLast