#
tokens: 47076/50000 2/15 files (page 2/2)
lines: off (toggle) GitHub
raw markdown copy
This is page 2 of 2. Use http://codebase.md/jacck/mcp-reasoner?lines=false&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/strategies/experiments/mcts-002alt-alpha.ts:
--------------------------------------------------------------------------------

```typescript
import { v4 as uuidv4 } from 'uuid';
import { ThoughtNode, ReasoningRequest, ReasoningResponse, CONFIG } from '../../types.js';
import { MCTS002AlphaStrategy } from './mcts-002-alpha.js';

// Queue implementation for bidirectional search
class Queue<T> {
  private items: T[];

  constructor() {
    this.items = [];
  }

  enqueue(item: T): void {
    this.items.push(item);
  }

  dequeue(): T | undefined {
    return this.items.shift();
  }

  isEmpty(): boolean {
    return this.items.length === 0;
  }

  size(): number {
    return this.items.length;
  }
}

// Extend PolicyGuidedNode to include both A* and bidirectional properties
interface BidirectionalPolicyNode extends ThoughtNode {
  visits: number;
  totalReward: number;
  untriedActions?: string[];
  g: number;  // A* cost from start
  h: number;  // A* heuristic to goal
  f: number;  // A* f = g + h
  policyScore: number;
  valueEstimate: number;
  priorActionProbs: Map<string, number>;
  puct?: number;
  actionHistory?: string[];
  noveltyScore?: number;
  parent?: string;  // For path reconstruction
  direction?: 'forward' | 'backward';
  searchDepth?: number;
  meetingPoint?: boolean;
}

export class MCTS002AltAlphaStrategy extends MCTS002AlphaStrategy {
  private startNode: BidirectionalPolicyNode | null = null;
  private goalNode: BidirectionalPolicyNode | null = null;
  private bidirectionalStats: {
    forwardExplorationRate: number;
    backwardExplorationRate: number;
    meetingPoints: number;
    pathQuality: number;
  };

  constructor(stateManager: any, numSimulations: number = CONFIG.numSimulations) {
    super(stateManager, numSimulations);
    this.bidirectionalStats = {
      forwardExplorationRate: Math.sqrt(2),
      backwardExplorationRate: Math.sqrt(2),
      meetingPoints: 0,
      pathQuality: 0
    };
  }

  public async processThought(request: ReasoningRequest): Promise<ReasoningResponse> {
    // Get base response first to ensure proper MCTS initialization
    const baseResponse = await super.processThought(request);

    const nodeId = uuidv4();
    const parentNode = request.parentId ? 
      await this.getNode(request.parentId) as BidirectionalPolicyNode : undefined;

    const node: BidirectionalPolicyNode = {
      id: nodeId,
      thought: request.thought,
      depth: request.thoughtNumber - 1,
      score: 0,
      children: [],
      parentId: request.parentId,
      isComplete: !request.nextThoughtNeeded,
      visits: 0,
      totalReward: 0,
      untriedActions: [],
      g: parentNode ? parentNode.g + 1 : 0,
      h: 0,
      f: 0,
      policyScore: 0,
      valueEstimate: 0,
      priorActionProbs: new Map(),
      actionHistory: parentNode ? 
        [...(parentNode.actionHistory || []), this.getActionKey(request.thought)] :
        [this.getActionKey(request.thought)],
      searchDepth: 0,
      direction: parentNode ? parentNode.direction : 'forward'
    };

    // Track start and goal nodes for bidirectional search
    if (!parentNode) {
      this.startNode = node;
      node.direction = 'forward';
    }
    if (node.isComplete) {
      this.goalNode = node;
      node.direction = 'backward';
    }

    // Run bidirectional search if we have both endpoints
    if (this.startNode && this.goalNode) {
      const path = await this.bidirectionalSearch(this.startNode, this.goalNode);
      if (path.length > 0) {
        await this.updatePathWithPolicyGuidance(path);
      }
    }

    // Calculate enhanced path statistics
    const currentPath = await this.stateManager.getPath(nodeId);
    const enhancedScore = this.calculateBidirectionalPolicyScore(currentPath);

    return {
      ...baseResponse,
      score: enhancedScore,
      bestScore: Math.max(baseResponse.bestScore || 0, enhancedScore)
    };
  }

  protected getActionKey(thought: string): string {
    // Simple action extraction based on first few words
    return thought.split(/\s+/).slice(0, 3).join('_').toLowerCase();
  }

  private async searchLevel(
    queue: Queue<BidirectionalPolicyNode>,
    visited: Map<string, BidirectionalPolicyNode>,
    otherVisited: Map<string, BidirectionalPolicyNode>,
    direction: 'forward' | 'backward'
  ): Promise<BidirectionalPolicyNode | null> {
    const levelSize = queue.size();
    
    for (let i = 0; i < levelSize; i++) {
      const current = queue.dequeue();
      if (!current) continue;

      // Check if we've found a meeting point
      if (otherVisited.has(current.id)) {
        current.meetingPoint = true;
        this.bidirectionalStats.meetingPoints++;
        await this.saveNode(current);
        return current;
      }

      // Get neighbors based on direction and policy scores
      const neighbors = direction === 'forward' ?
        await Promise.all(current.children.map(id => this.getNode(id))) :
        await Promise.all([current.parentId].filter((id): id is string => !!id).map(id => this.getNode(id)));

      const validNeighbors = neighbors.filter((n): n is BidirectionalPolicyNode => !!n)
        .sort((a, b) => b.policyScore - a.policyScore); // Use policy scores for neighbor selection

      for (const neighbor of validNeighbors) {
        if (!visited.has(neighbor.id)) {
          visited.set(neighbor.id, neighbor);
          neighbor.parent = current.id;
          neighbor.direction = direction;
          neighbor.searchDepth = (current.searchDepth || 0) + 1;
          await this.saveNode(neighbor);
          queue.enqueue(neighbor);
        }
      }
    }

    return null;
  }

  private async bidirectionalSearch(
    start: BidirectionalPolicyNode, 
    goal: BidirectionalPolicyNode
  ): Promise<BidirectionalPolicyNode[]> {
    const forwardQueue = new Queue<BidirectionalPolicyNode>();
    const backwardQueue = new Queue<BidirectionalPolicyNode>();
    const forwardVisited = new Map<string, BidirectionalPolicyNode>();
    const backwardVisited = new Map<string, BidirectionalPolicyNode>();
    
    forwardQueue.enqueue(start);
    backwardQueue.enqueue(goal);
    forwardVisited.set(start.id, start);
    backwardVisited.set(goal.id, goal);
    
    while (!forwardQueue.isEmpty() && !backwardQueue.isEmpty()) {
      // Search from both directions with policy guidance
      const meetingPoint = await this.searchLevel(
        forwardQueue, 
        forwardVisited, 
        backwardVisited,
        'forward'
      );
      
      if (meetingPoint) {
        const path = this.reconstructPath(
          meetingPoint, 
          forwardVisited, 
          backwardVisited
        );
        this.updateBidirectionalStats(path);
        return path;
      }

      const backMeetingPoint = await this.searchLevel(
        backwardQueue,
        backwardVisited,
        forwardVisited,
        'backward'
      );

      if (backMeetingPoint) {
        const path = this.reconstructPath(
          backMeetingPoint,
          forwardVisited,
          backwardVisited
        );
        this.updateBidirectionalStats(path);
        return path;
      }

      // Adapt exploration rates based on progress
      this.adaptBidirectionalExploration(forwardVisited, backwardVisited);
    }
    
    return [];
  }

  private reconstructPath(
    meetingPoint: BidirectionalPolicyNode,
    forwardVisited: Map<string, BidirectionalPolicyNode>,
    backwardVisited: Map<string, BidirectionalPolicyNode>
  ): BidirectionalPolicyNode[] {
    const path: BidirectionalPolicyNode[] = [meetingPoint];
    
    // Reconstruct forward path
    let current = meetingPoint;
    while (current.parent && forwardVisited.has(current.parent)) {
      current = forwardVisited.get(current.parent)!;
      path.unshift(current);
    }
    
    // Reconstruct backward path
    current = meetingPoint;
    while (current.parent && backwardVisited.has(current.parent)) {
      current = backwardVisited.get(current.parent)!;
      path.push(current);
    }
    
    return path;
  }

  private async updatePathWithPolicyGuidance(path: BidirectionalPolicyNode[]): Promise<void> {
    const pathBonus = 0.2;
    
    for (const node of path) {
      // Boost both policy and value estimates for nodes along the path
      node.policyScore += pathBonus;
      node.valueEstimate = (node.valueEstimate + 1) / 2;
      
      // Update action probabilities with path information
      if (node.parentId) {
        const parentNode = await this.getNode(node.parentId) as BidirectionalPolicyNode;
        const actionKey = this.getActionKey(node.thought);
        const currentProb = parentNode.priorActionProbs.get(actionKey) || 0;
        const newProb = Math.max(currentProb, 0.8); // Strong preference for path actions
        parentNode.priorActionProbs.set(actionKey, newProb);
        await this.saveNode(parentNode);
      }

      await this.saveNode(node);
    }

    // Update path quality metric
    this.bidirectionalStats.pathQuality = path.reduce((acc, node) => 
      acc + node.policyScore + node.valueEstimate, 0) / (path.length * 2);
  }

  private adaptBidirectionalExploration(
    forwardVisited: Map<string, BidirectionalPolicyNode>,
    backwardVisited: Map<string, BidirectionalPolicyNode>
  ): void {
    // Adjust exploration rates based on search progress
    const forwardProgress = Array.from(forwardVisited.values())
      .reduce((acc, node) => acc + node.policyScore, 0) / forwardVisited.size;
    const backwardProgress = Array.from(backwardVisited.values())
      .reduce((acc, node) => acc + node.policyScore, 0) / backwardVisited.size;

    // Increase exploration in the direction making less progress
    if (forwardProgress > backwardProgress) {
      this.bidirectionalStats.backwardExplorationRate *= 1.05;
      this.bidirectionalStats.forwardExplorationRate *= 0.95;
    } else {
      this.bidirectionalStats.forwardExplorationRate *= 1.05;
      this.bidirectionalStats.backwardExplorationRate *= 0.95;
    }
  }

  private updateBidirectionalStats(path: BidirectionalPolicyNode[]): void {
    const forwardNodes = path.filter(n => n.direction === 'forward');
    const backwardNodes = path.filter(n => n.direction === 'backward');
    
    // Update exploration rates based on path composition
    const forwardQuality = forwardNodes.reduce((acc, n) => acc + n.policyScore, 0) / forwardNodes.length;
    const backwardQuality = backwardNodes.reduce((acc, n) => acc + n.policyScore, 0) / backwardNodes.length;
    
    this.bidirectionalStats.pathQuality = (forwardQuality + backwardQuality) / 2;
  }

  private calculateBidirectionalPolicyScore(path: ThoughtNode[]): number {
    if (path.length === 0) return 0;
    
    return path.reduce((acc, node) => {
      const biNode = node as BidirectionalPolicyNode;
      const baseScore = node.score;
      const policyBonus = biNode.policyScore || 0;
      const valueBonus = biNode.valueEstimate || 0;
      const meetingPointBonus = biNode.meetingPoint ? 0.2 : 0;
      const directionBonus = biNode.direction === 'forward' ? 
        this.bidirectionalStats.forwardExplorationRate * 0.1 :
        this.bidirectionalStats.backwardExplorationRate * 0.1;
      
      return acc + (
        baseScore + 
        policyBonus + 
        valueBonus + 
        meetingPointBonus +
        directionBonus
      ) / 5;
    }, 0) / path.length;
  }

  public async getMetrics(): Promise<any> {
    const baseMetrics = await super.getMetrics();
    const nodes = await this.stateManager.getAllNodes() as BidirectionalPolicyNode[];
    
    const forwardNodes = nodes.filter(n => n.direction === 'forward');
    const backwardNodes = nodes.filter(n => n.direction === 'backward');
    const meetingPoints = nodes.filter(n => n.meetingPoint);

    const bidirectionalMetrics = {
      forwardSearch: {
        nodesExplored: forwardNodes.length,
        averagePolicyScore: forwardNodes.reduce((sum, n) => sum + n.policyScore, 0) / forwardNodes.length,
        explorationRate: this.bidirectionalStats.forwardExplorationRate
      },
      backwardSearch: {
        nodesExplored: backwardNodes.length,
        averagePolicyScore: backwardNodes.reduce((sum, n) => sum + n.policyScore, 0) / backwardNodes.length,
        explorationRate: this.bidirectionalStats.backwardExplorationRate
      },
      meetingPoints: {
        count: this.bidirectionalStats.meetingPoints,
        averageDepth: meetingPoints.reduce((sum, n) => sum + n.depth, 0) / (meetingPoints.length || 1)
      },
      pathQuality: this.bidirectionalStats.pathQuality
    };

    return {
      ...baseMetrics,
      name: 'MCTS-002Alt-Alpha (Bidirectional + Policy Enhanced)',
      hasStartNode: !!this.startNode,
      hasGoalNode: !!this.goalNode,
      bidirectionalMetrics
    };
  }

  public async clear(): Promise<void> {
    await super.clear();
    this.startNode = null;
    this.goalNode = null;
    this.bidirectionalStats = {
      forwardExplorationRate: Math.sqrt(2),
      backwardExplorationRate: Math.sqrt(2),
      meetingPoints: 0,
      pathQuality: 0
    };
  }
}

```

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

```typescript
import { v4 as uuidv4 } from 'uuid';
import { ThoughtNode, ReasoningRequest, ReasoningResponse, CONFIG } from '../../types.js';
import { MonteCarloTreeSearchStrategy } from '../mcts.js';

interface PolicyGuidedNode extends ThoughtNode {
  visits: number;
  totalReward: number;
  untriedActions?: string[];
  policyScore: number;  // Policy network prediction
  valueEstimate: number;  // Value network estimate
  priorActionProbs: Map<string, number>;  // Action probabilities
  puct?: number;  // PUCT score for selection
  actionHistory?: string[];  // Track sequence of actions
  noveltyScore?: number;  // Measure of thought novelty
}

interface PolicyMetrics {
  averagePolicyScore: number;
  averageValueEstimate: number;
  actionDistribution: { [action: string]: number };
  explorationStats: {
    temperature: number;
    explorationRate: number;
    noveltyBonus: number;
  };
  convergenceMetrics: {
    policyEntropy: number;
    valueStability: number;
  };
}

export class MCTS002AlphaStrategy extends MonteCarloTreeSearchStrategy {
  private readonly temperature: number;
  private explorationRate: number;
  private readonly learningRate: number;
  private readonly noveltyBonus: number;
  private policyMetrics: PolicyMetrics;
  protected readonly simulationCount: number;

  constructor(stateManager: any, numSimulations: number = CONFIG.numSimulations) {
    super(stateManager, numSimulations);
    this.temperature = 1.0;
    this.explorationRate = Math.sqrt(2);
    this.learningRate = 0.1;
    this.noveltyBonus = 0.2;
    this.simulationCount = numSimulations;
    this.policyMetrics = this.initializePolicyMetrics();
  }

  private initializePolicyMetrics(): PolicyMetrics {
    return {
      averagePolicyScore: 0,
      averageValueEstimate: 0,
      actionDistribution: {},
      explorationStats: {
        temperature: this.temperature,
        explorationRate: this.explorationRate,
        noveltyBonus: this.noveltyBonus
      },
      convergenceMetrics: {
        policyEntropy: 0,
        valueStability: 0
      }
    };
  }

  public async processThought(request: ReasoningRequest): Promise<ReasoningResponse> {
    // Get base MCTS response
    const baseResponse = await super.processThought(request);

    const nodeId = uuidv4();
    const parentNode = request.parentId ? 
      await this.getNode(request.parentId) as PolicyGuidedNode : undefined;

    const node: PolicyGuidedNode = {
      id: nodeId,
      thought: request.thought,
      depth: request.thoughtNumber - 1,
      score: 0,
      children: [],
      parentId: request.parentId,
      isComplete: !request.nextThoughtNeeded,
      visits: 0,
      totalReward: 0,
      untriedActions: [],
      policyScore: 0,
      valueEstimate: 0,
      priorActionProbs: new Map(),
      actionHistory: parentNode ? 
        [...(parentNode.actionHistory || []), this.extractAction(request.thought)] :
        [this.extractAction(request.thought)]
    };

    // Initialize node with policy guidance
    node.score = this.evaluateThought(node, parentNode);
    node.visits = 1;
    node.totalReward = node.score;
    node.policyScore = this.calculatePolicyScore(node, parentNode);
    node.valueEstimate = this.estimateValue(node);
    node.noveltyScore = this.calculateNovelty(node);
    
    await this.saveNode(node);

    // Update parent if exists
    if (parentNode) {
      parentNode.children.push(node.id);
      await this.saveNode(parentNode);
      await this.updatePolicyMetrics(node, parentNode);
    }

    // Run policy-guided search
    if (!node.isComplete) {
      await this.runPolicyGuidedSearch(node);
    }

    // Calculate enhanced path statistics
    const currentPath = await this.stateManager.getPath(nodeId);
    const enhancedScore = this.calculatePolicyEnhancedScore(currentPath);

    return {
      ...baseResponse,
      score: enhancedScore,
      bestScore: Math.max(baseResponse.bestScore || 0, enhancedScore)
    };
  }

  private extractAction(thought: string): string {
    // Simple action extraction based on first few words
    return thought.split(/\s+/).slice(0, 3).join('_').toLowerCase();
  }

  private calculatePolicyScore(node: PolicyGuidedNode, parent?: PolicyGuidedNode): number {
    // Combine multiple policy factors
    const depthFactor = Math.exp(-0.1 * node.depth);
    const parentAlignment = parent ? 
      this.thoughtCoherence(node.thought, parent.thought) : 1;
    const noveltyBonus = node.noveltyScore || 0;
    
    return (
      0.4 * depthFactor +
      0.4 * parentAlignment +
      0.2 * noveltyBonus
    );
  }

  private estimateValue(node: PolicyGuidedNode): number {
    // Combine immediate score with future potential
    const immediateValue = node.score;
    const depthPotential = 1 - (node.depth / CONFIG.maxDepth);
    const noveltyValue = node.noveltyScore || 0;
    
    return (
      0.5 * immediateValue +
      0.3 * depthPotential +
      0.2 * noveltyValue
    );
  }

  private calculateNovelty(node: PolicyGuidedNode): number {
    // Measure thought novelty based on action history
    const uniqueActions = new Set(node.actionHistory).size;
    const historyLength = node.actionHistory?.length || 1;
    const uniquenessRatio = uniqueActions / historyLength;

    // Combine with linguistic novelty
    const complexityScore = (node.thought.match(/[.!?;]|therefore|because|if|then/g) || []).length / 10;
    
    return (0.7 * uniquenessRatio + 0.3 * complexityScore);
  }

  private thoughtCoherence(thought1: string, thought2: string): number {
    const words1 = new Set(thought1.toLowerCase().split(/\W+/));
    const words2 = new Set(thought2.toLowerCase().split(/\W+/));
    const intersection = new Set([...words1].filter(x => words2.has(x)));
    const union = new Set([...words1, ...words2]);
    return intersection.size / union.size;
  }

  private async runPolicyGuidedSearch(node: PolicyGuidedNode): Promise<void> {
    for (let i = 0; i < this.simulationCount; i++) {
      const selectedNode = await this.selectWithPUCT(node);
      const expandedNode = await this.expandWithPolicy(selectedNode);
      const reward = await this.simulateWithValueGuidance(expandedNode);
      await this.backpropagateWithPolicyUpdate(expandedNode, reward);
      
      // Adapt exploration rate
      this.adaptExplorationRate(expandedNode);
    }
  }

  private async selectWithPUCT(root: PolicyGuidedNode): Promise<PolicyGuidedNode> {
    let node = root;
    
    while (node.children.length > 0) {
      const children = await Promise.all(
        node.children.map(id => this.getNode(id))
      ) as PolicyGuidedNode[];
      
      node = this.selectBestPUCTChild(children);
    }
    
    return node;
  }

  private selectBestPUCTChild(nodes: PolicyGuidedNode[]): PolicyGuidedNode {
    const totalVisits = nodes.reduce((sum, node) => sum + node.visits, 0);
    
    return nodes.reduce((best, node) => {
      const exploitation = node.valueEstimate;
      const exploration = Math.sqrt(Math.log(totalVisits) / node.visits);
      const policyTerm = node.policyScore * this.explorationRate;
      const noveltyBonus = (node.noveltyScore || 0) * this.noveltyBonus;
      
      const puct = exploitation + 
                  exploration * policyTerm +
                  noveltyBonus;
      
      node.puct = puct;
      return puct > (best.puct || 0) ? node : best;
    });
  }

  private async expandWithPolicy(node: PolicyGuidedNode): Promise<PolicyGuidedNode> {
    if (node.isComplete) return node;

    const newNode: PolicyGuidedNode = {
      ...node,
      id: uuidv4(),
      depth: node.depth + 1,
      parentId: node.id,
      children: [],
      visits: 1,
      totalReward: 0,
      policyScore: 0,
      valueEstimate: 0,
      priorActionProbs: new Map(),
      actionHistory: [...(node.actionHistory || [])]
    };

    newNode.policyScore = this.calculatePolicyScore(newNode, node);
    newNode.score = this.evaluateThought(newNode, node);
    newNode.valueEstimate = this.estimateValue(newNode);
    newNode.noveltyScore = this.calculateNovelty(newNode);

    await this.saveNode(newNode);
    return newNode;
  }

  private async simulateWithValueGuidance(node: PolicyGuidedNode): Promise<number> {
    let current = node;
    let totalReward = 0;
    let depth = 0;
    
    while (!current.isComplete && depth < CONFIG.maxDepth) {
      const reward = current.valueEstimate;
      totalReward += reward;
      
      const expanded = await this.expandWithPolicy(current);
      current = expanded;
      depth++;
    }
    
    return totalReward / depth;
  }

  private async backpropagateWithPolicyUpdate(
    node: PolicyGuidedNode,
    reward: number
  ): Promise<void> {
    let current: PolicyGuidedNode | undefined = node;
    
    while (current) {
      current.visits++;
      current.totalReward += reward;
      
      // Update value estimate with temporal difference
      const newValue = (1 - this.learningRate) * current.valueEstimate +
                      this.learningRate * reward;
      current.valueEstimate = newValue;

      // Update action probabilities
      if (current.parentId) {
        const parentNode = await this.getNode(current.parentId) as PolicyGuidedNode;
        const actionKey = this.extractAction(current.thought);
        const currentProb = parentNode.priorActionProbs.get(actionKey) || 0;
        const newProb = currentProb + this.learningRate * (reward - currentProb);
        parentNode.priorActionProbs.set(actionKey, newProb);
        await this.saveNode(parentNode);
      }

      await this.saveNode(current);
      
      current = current.parentId ? 
        await this.getNode(current.parentId) as PolicyGuidedNode : 
        undefined;
    }
  }

  private adaptExplorationRate(node: PolicyGuidedNode): void {
    const successRate = node.totalReward / node.visits;
    const targetRate = 0.6;
    
    if (successRate > targetRate) {
      // Reduce exploration when doing well
      this.explorationRate = Math.max(0.5, this.explorationRate * 0.95);
    } else {
      // Increase exploration when results are poor
      this.explorationRate = Math.min(2.0, this.explorationRate / 0.95);
    }
  }

  private async updatePolicyMetrics(node: PolicyGuidedNode, parent: PolicyGuidedNode): Promise<void> {
    // Update running averages
    this.policyMetrics.averagePolicyScore = 
      (this.policyMetrics.averagePolicyScore + node.policyScore) / 2;
    this.policyMetrics.averageValueEstimate = 
      (this.policyMetrics.averageValueEstimate + node.valueEstimate) / 2;

    // Update action distribution
    const action = this.extractAction(node.thought);
    this.policyMetrics.actionDistribution[action] = 
      (this.policyMetrics.actionDistribution[action] || 0) + 1;

    // Update exploration stats
    this.policyMetrics.explorationStats = {
      temperature: this.temperature,
      explorationRate: this.explorationRate,
      noveltyBonus: this.noveltyBonus
    };

    // Calculate policy entropy and value stability
    const probs = Array.from(parent.priorActionProbs.values());
    this.policyMetrics.convergenceMetrics = {
      policyEntropy: this.calculateEntropy(probs),
      valueStability: Math.abs(node.valueEstimate - parent.valueEstimate)
    };
  }

  private calculateEntropy(probs: number[]): number {
    const sum = probs.reduce((a, b) => a + b, 0);
    return -probs.reduce((acc, p) => {
      const norm = p / sum;
      return acc + (norm * Math.log2(norm + 1e-10));
    }, 0);
  }

  private calculatePolicyEnhancedScore(path: ThoughtNode[]): number {
    if (path.length === 0) return 0;
    
    return path.reduce((acc, node) => {
      const policyNode = node as PolicyGuidedNode;
      const baseScore = node.score;
      const policyBonus = policyNode.policyScore || 0;
      const valueBonus = policyNode.valueEstimate || 0;
      const noveltyBonus = (policyNode.noveltyScore || 0) * this.noveltyBonus;
      
      return acc + (baseScore + policyBonus + valueBonus + noveltyBonus) / 4;
    }, 0) / path.length;
  }

  public async getMetrics(): Promise<any> {
    const baseMetrics = await super.getMetrics();
    const nodes = await this.stateManager.getAllNodes() as PolicyGuidedNode[];
    
    // Calculate additional policy-specific metrics
    const currentNode = nodes[nodes.length - 1];
    const policyStats = {
      currentNode: currentNode ? {
        policyScore: currentNode.policyScore,
        valueEstimate: currentNode.valueEstimate,
        noveltyScore: currentNode.noveltyScore,
        actionHistory: currentNode.actionHistory
      } : null,
      averages: {
        policyScore: nodes.reduce((sum, n) => sum + n.policyScore, 0) / nodes.length,
        valueEstimate: nodes.reduce((sum, n) => sum + n.valueEstimate, 0) / nodes.length,
        noveltyScore: nodes.reduce((sum, n) => sum + (n.noveltyScore || 0), 0) / nodes.length
      },
      policyMetrics: this.policyMetrics
    };

    return {
      ...baseMetrics,
      name: 'MCTS-002-Alpha (Policy Enhanced)',
      temperature: this.temperature,
      explorationRate: this.explorationRate,
      learningRate: this.learningRate,
      policyStats
    };
  }
}

```
Page 2/2FirstPrevNextLast