This is page 2 of 3. Use http://codebase.md/jacck/mcp-reasoner?lines=true&page={x} to view the full context. # Directory Structure ``` ├── .gitignore ├── dist │ ├── index.d.ts │ ├── index.js │ ├── reasoner.d.ts │ ├── reasoner.js │ ├── state.d.ts │ ├── state.js │ ├── strategies │ │ ├── base.d.ts │ │ ├── base.js │ │ ├── beam-search.d.ts │ │ ├── beam-search.js │ │ ├── factory.d.ts │ │ ├── factory.js │ │ ├── mcts.d.ts │ │ └── mcts.js │ ├── types.d.ts │ └── types.js ├── LICENSE ├── node_modules │ ├── .bin │ │ ├── resolve │ │ ├── resolve.cmd │ │ ├── resolve.ps1 │ │ ├── shjs │ │ ├── shjs.cmd │ │ ├── shjs.ps1 │ │ ├── shx │ │ ├── shx.cmd │ │ ├── shx.ps1 │ │ ├── tsc │ │ ├── tsc.cmd │ │ ├── tsc.ps1 │ │ ├── tsserver │ │ ├── tsserver.cmd │ │ └── tsserver.ps1 │ ├── .package-lock.json │ ├── @modelcontextprotocol │ │ └── sdk │ │ ├── dist │ │ │ ├── cli.d.ts │ │ │ ├── cli.d.ts.map │ │ │ ├── cli.js │ │ │ ├── cli.js.map │ │ │ ├── client │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.d.ts.map │ │ │ │ ├── index.js │ │ │ │ ├── index.js.map │ │ │ │ ├── index.test.d.ts │ │ │ │ ├── index.test.d.ts.map │ │ │ │ ├── index.test.js │ │ │ │ ├── index.test.js.map │ │ │ │ ├── sse.d.ts │ │ │ │ ├── sse.d.ts.map │ │ │ │ ├── sse.js │ │ │ │ ├── sse.js.map │ │ │ │ ├── stdio.d.ts │ │ │ │ ├── stdio.d.ts.map │ │ │ │ ├── stdio.js │ │ │ │ ├── stdio.js.map │ │ │ │ ├── stdio.test.d.ts │ │ │ │ ├── stdio.test.d.ts.map │ │ │ │ ├── stdio.test.js │ │ │ │ ├── stdio.test.js.map │ │ │ │ ├── websocket.d.ts │ │ │ │ ├── websocket.d.ts.map │ │ │ │ ├── websocket.js │ │ │ │ └── websocket.js.map │ │ │ ├── inMemory.d.ts │ │ │ ├── inMemory.d.ts.map │ │ │ ├── inMemory.js │ │ │ ├── inMemory.js.map │ │ │ ├── inMemory.test.d.ts │ │ │ ├── inMemory.test.d.ts.map │ │ │ ├── inMemory.test.js │ │ │ ├── inMemory.test.js.map │ │ │ ├── server │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.d.ts.map │ │ │ │ ├── index.js │ │ │ │ ├── index.js.map │ │ │ │ ├── index.test.d.ts │ │ │ │ ├── index.test.d.ts.map │ │ │ │ ├── index.test.js │ │ │ │ ├── index.test.js.map │ │ │ │ ├── sse.d.ts │ │ │ │ ├── sse.d.ts.map │ │ │ │ ├── sse.js │ │ │ │ ├── sse.js.map │ │ │ │ ├── stdio.d.ts │ │ │ │ ├── stdio.d.ts.map │ │ │ │ ├── stdio.js │ │ │ │ ├── stdio.js.map │ │ │ │ ├── stdio.test.d.ts │ │ │ │ ├── stdio.test.d.ts.map │ │ │ │ ├── stdio.test.js │ │ │ │ └── stdio.test.js.map │ │ │ ├── shared │ │ │ │ ├── protocol.d.ts │ │ │ │ ├── protocol.d.ts.map │ │ │ │ ├── protocol.js │ │ │ │ ├── protocol.js.map │ │ │ │ ├── stdio.d.ts │ │ │ │ ├── stdio.d.ts.map │ │ │ │ ├── stdio.js │ │ │ │ ├── stdio.js.map │ │ │ │ ├── stdio.test.d.ts │ │ │ │ ├── stdio.test.d.ts.map │ │ │ │ ├── stdio.test.js │ │ │ │ ├── stdio.test.js.map │ │ │ │ ├── transport.d.ts │ │ │ │ ├── transport.d.ts.map │ │ │ │ ├── transport.js │ │ │ │ └── transport.js.map │ │ │ ├── types.d.ts │ │ │ ├── types.d.ts.map │ │ │ ├── types.js │ │ │ └── types.js.map │ │ ├── LICENSE │ │ ├── package.json │ │ └── README.md │ ├── @types │ │ └── node │ │ ├── assert │ │ │ └── strict.d.ts │ │ ├── assert.d.ts │ │ ├── async_hooks.d.ts │ │ ├── buffer.buffer.d.ts │ │ ├── buffer.d.ts │ │ ├── child_process.d.ts │ │ ├── cluster.d.ts │ │ ├── compatibility │ │ │ ├── disposable.d.ts │ │ │ ├── index.d.ts │ │ │ ├── indexable.d.ts │ │ │ └── iterators.d.ts │ │ ├── console.d.ts │ │ ├── constants.d.ts │ │ ├── crypto.d.ts │ │ ├── dgram.d.ts │ │ ├── diagnostics_channel.d.ts │ │ ├── dns │ │ │ └── promises.d.ts │ │ ├── dns.d.ts │ │ ├── dom-events.d.ts │ │ ├── domain.d.ts │ │ ├── events.d.ts │ │ ├── fs │ │ │ └── promises.d.ts │ │ ├── fs.d.ts │ │ ├── globals.d.ts │ │ ├── globals.typedarray.d.ts │ │ ├── http.d.ts │ │ ├── http2.d.ts │ │ ├── https.d.ts │ │ ├── index.d.ts │ │ ├── inspector.d.ts │ │ ├── LICENSE │ │ ├── module.d.ts │ │ ├── net.d.ts │ │ ├── os.d.ts │ │ ├── package.json │ │ ├── path.d.ts │ │ ├── perf_hooks.d.ts │ │ ├── process.d.ts │ │ ├── punycode.d.ts │ │ ├── querystring.d.ts │ │ ├── readline │ │ │ └── promises.d.ts │ │ ├── readline.d.ts │ │ ├── README.md │ │ ├── repl.d.ts │ │ ├── sea.d.ts │ │ ├── stream │ │ │ ├── consumers.d.ts │ │ │ ├── promises.d.ts │ │ │ └── web.d.ts │ │ ├── stream.d.ts │ │ ├── string_decoder.d.ts │ │ ├── test.d.ts │ │ ├── timers │ │ │ └── promises.d.ts │ │ ├── timers.d.ts │ │ ├── tls.d.ts │ │ ├── trace_events.d.ts │ │ ├── ts5.6 │ │ │ ├── buffer.buffer.d.ts │ │ │ ├── globals.typedarray.d.ts │ │ │ └── index.d.ts │ │ ├── tty.d.ts │ │ ├── url.d.ts │ │ ├── util.d.ts │ │ ├── v8.d.ts │ │ ├── vm.d.ts │ │ ├── wasi.d.ts │ │ ├── worker_threads.d.ts │ │ └── zlib.d.ts │ ├── balanced-match │ │ ├── .github │ │ │ └── FUNDING.yml │ │ ├── index.js │ │ ├── LICENSE.md │ │ ├── package.json │ │ └── README.md │ ├── brace-expansion │ │ ├── index.js │ │ ├── LICENSE │ │ ├── package.json │ │ └── README.md │ ├── bytes │ │ ├── History.md │ │ ├── index.js │ │ ├── LICENSE │ │ ├── package.json │ │ └── Readme.md │ ├── chalk │ │ ├── license │ │ ├── package.json │ │ ├── readme.md │ │ └── source │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── utilities.js │ │ └── vendor │ │ ├── ansi-styles │ │ │ ├── index.d.ts │ │ │ └── index.js │ │ └── supports-color │ │ ├── browser.d.ts │ │ ├── browser.js │ │ ├── index.d.ts │ │ └── index.js │ ├── concat-map │ │ ├── .travis.yml │ │ ├── example │ │ │ └── map.js │ │ ├── index.js │ │ ├── LICENSE │ │ ├── package.json │ │ ├── README.markdown │ │ └── test │ │ └── map.js │ ├── content-type │ │ ├── HISTORY.md │ │ ├── index.js │ │ ├── LICENSE │ │ ├── package.json │ │ └── README.md │ ├── depd │ │ ├── History.md │ │ ├── index.js │ │ ├── lib │ │ │ └── browser │ │ │ └── index.js │ │ ├── LICENSE │ │ ├── package.json │ │ └── Readme.md │ ├── fs.realpath │ │ ├── index.js │ │ ├── LICENSE │ │ ├── old.js │ │ ├── package.json │ │ └── README.md │ ├── function-bind │ │ ├── .eslintrc │ │ ├── .github │ │ │ ├── FUNDING.yml │ │ │ └── SECURITY.md │ │ ├── .nycrc │ │ ├── CHANGELOG.md │ │ ├── implementation.js │ │ ├── index.js │ │ ├── LICENSE │ │ ├── package.json │ │ ├── README.md │ │ └── test │ │ ├── .eslintrc │ │ └── index.js │ ├── glob │ │ ├── common.js │ │ ├── glob.js │ │ ├── LICENSE │ │ ├── package.json │ │ ├── README.md │ │ └── sync.js │ ├── hasown │ │ ├── .eslintrc │ │ ├── .github │ │ │ └── FUNDING.yml │ │ ├── .nycrc │ │ ├── CHANGELOG.md │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── LICENSE │ │ ├── package.json │ │ ├── README.md │ │ └── tsconfig.json │ ├── http-errors │ │ ├── HISTORY.md │ │ ├── index.js │ │ ├── LICENSE │ │ ├── package.json │ │ └── README.md │ ├── iconv-lite │ │ ├── .github │ │ │ └── dependabot.yml │ │ ├── .idea │ │ │ ├── codeStyles │ │ │ │ ├── codeStyleConfig.xml │ │ │ │ └── Project.xml │ │ │ ├── iconv-lite.iml │ │ │ ├── inspectionProfiles │ │ │ │ └── Project_Default.xml │ │ │ ├── modules.xml │ │ │ └── vcs.xml │ │ ├── Changelog.md │ │ ├── encodings │ │ │ ├── dbcs-codec.js │ │ │ ├── dbcs-data.js │ │ │ ├── index.js │ │ │ ├── internal.js │ │ │ ├── sbcs-codec.js │ │ │ ├── sbcs-data-generated.js │ │ │ ├── sbcs-data.js │ │ │ ├── tables │ │ │ │ ├── big5-added.json │ │ │ │ ├── cp936.json │ │ │ │ ├── cp949.json │ │ │ │ ├── cp950.json │ │ │ │ ├── eucjp.json │ │ │ │ ├── gb18030-ranges.json │ │ │ │ ├── gbk-added.json │ │ │ │ └── shiftjis.json │ │ │ ├── utf16.js │ │ │ ├── utf32.js │ │ │ └── utf7.js │ │ ├── lib │ │ │ ├── bom-handling.js │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ └── streams.js │ │ ├── LICENSE │ │ ├── package.json │ │ └── README.md │ ├── inflight │ │ ├── inflight.js │ │ ├── LICENSE │ │ ├── package.json │ │ └── README.md │ ├── inherits │ │ ├── inherits_browser.js │ │ ├── inherits.js │ │ ├── LICENSE │ │ ├── package.json │ │ └── README.md │ ├── interpret │ │ ├── CHANGELOG │ │ ├── index.js │ │ ├── LICENSE │ │ ├── mjs-stub.js │ │ ├── package.json │ │ └── README.md │ ├── is-core-module │ │ ├── .eslintrc │ │ ├── .nycrc │ │ ├── CHANGELOG.md │ │ ├── core.json │ │ ├── index.js │ │ ├── LICENSE │ │ ├── package.json │ │ ├── README.md │ │ └── test │ │ └── index.js │ ├── minimatch │ │ ├── LICENSE │ │ ├── minimatch.js │ │ ├── package.json │ │ └── README.md │ ├── minimist │ │ ├── .eslintrc │ │ ├── .github │ │ │ └── FUNDING.yml │ │ ├── .nycrc │ │ ├── CHANGELOG.md │ │ ├── example │ │ │ └── parse.js │ │ ├── index.js │ │ ├── LICENSE │ │ ├── package.json │ │ ├── README.md │ │ └── test │ │ ├── all_bool.js │ │ ├── bool.js │ │ ├── dash.js │ │ ├── default_bool.js │ │ ├── dotted.js │ │ ├── kv_short.js │ │ ├── long.js │ │ ├── num.js │ │ ├── parse_modified.js │ │ ├── parse.js │ │ ├── proto.js │ │ ├── short.js │ │ ├── stop_early.js │ │ ├── unknown.js │ │ └── whitespace.js │ ├── once │ │ ├── LICENSE │ │ ├── once.js │ │ ├── package.json │ │ └── README.md │ ├── path-is-absolute │ │ ├── index.js │ │ ├── license │ │ ├── package.json │ │ └── readme.md │ ├── path-parse │ │ ├── index.js │ │ ├── LICENSE │ │ ├── package.json │ │ └── README.md │ ├── raw-body │ │ ├── HISTORY.md │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── LICENSE │ │ ├── package.json │ │ ├── README.md │ │ └── SECURITY.md │ ├── rechoir │ │ ├── .npmignore │ │ ├── .travis.yml │ │ ├── CHANGELOG │ │ ├── index.js │ │ ├── lib │ │ │ ├── extension.js │ │ │ ├── normalize.js │ │ │ └── register.js │ │ ├── LICENSE │ │ ├── package.json │ │ └── README.md │ ├── resolve │ │ ├── .editorconfig │ │ ├── .eslintrc │ │ ├── .github │ │ │ └── FUNDING.yml │ │ ├── async.js │ │ ├── bin │ │ │ └── resolve │ │ ├── example │ │ │ ├── async.js │ │ │ └── sync.js │ │ ├── index.js │ │ ├── lib │ │ │ ├── async.js │ │ │ ├── caller.js │ │ │ ├── core.js │ │ │ ├── core.json │ │ │ ├── homedir.js │ │ │ ├── is-core.js │ │ │ ├── node-modules-paths.js │ │ │ ├── normalize-options.js │ │ │ └── sync.js │ │ ├── LICENSE │ │ ├── package.json │ │ ├── readme.markdown │ │ ├── SECURITY.md │ │ ├── sync.js │ │ └── test │ │ ├── core.js │ │ ├── dotdot │ │ │ ├── abc │ │ │ │ └── index.js │ │ │ └── index.js │ │ ├── dotdot.js │ │ ├── faulty_basedir.js │ │ ├── filter_sync.js │ │ ├── filter.js │ │ ├── home_paths_sync.js │ │ ├── home_paths.js │ │ ├── list-exports │ │ │ ├── .eslintignore │ │ │ ├── .eslintrc │ │ │ ├── .github │ │ │ │ ├── FUNDING.yml │ │ │ │ └── workflows │ │ │ │ ├── conditions.yml │ │ │ │ ├── fixtures.yml │ │ │ │ ├── ls-engines.yml │ │ │ │ ├── node-pretest.yml │ │ │ │ ├── node.yml │ │ │ │ ├── rebase.yml │ │ │ │ └── require-allow-edits.yml │ │ │ ├── LICENSE │ │ │ ├── package.json │ │ │ ├── packages │ │ │ │ ├── list-exports │ │ │ │ │ ├── .eslintrc │ │ │ │ │ ├── index.js │ │ │ │ │ ├── package.json │ │ │ │ │ └── README.md │ │ │ │ ├── ls-exports │ │ │ │ │ ├── .eslintrc │ │ │ │ │ ├── bin │ │ │ │ │ │ └── ls-exports │ │ │ │ │ ├── exportsTable.js │ │ │ │ │ ├── getPackageJSONPath.js │ │ │ │ │ ├── package.json │ │ │ │ │ ├── README.md │ │ │ │ │ └── table.js │ │ │ │ └── tests │ │ │ │ ├── .eslintignore │ │ │ │ ├── .eslintrc │ │ │ │ ├── conditions-expected.js │ │ │ │ ├── conditions.js │ │ │ │ ├── fixtures │ │ │ │ │ ├── es-abstract │ │ │ │ │ │ ├── expected │ │ │ │ │ │ │ ├── broken-dir-slash-conditions.json │ │ │ │ │ │ │ ├── conditions.json │ │ │ │ │ │ │ ├── pattern-trailers-no-dir-slash.json │ │ │ │ │ │ │ ├── patterns.json │ │ │ │ │ │ │ └── pre-exports.json │ │ │ │ │ │ └── project │ │ │ │ │ │ ├── 2015 │ │ │ │ │ │ │ ├── AbstractEqualityComparison.js │ │ │ │ │ │ │ ├── AbstractRelationalComparison.js │ │ │ │ │ │ │ ├── AdvanceStringIndex.js │ │ │ │ │ │ │ ├── ArrayCreate.js │ │ │ │ │ │ │ ├── ArraySetLength.js │ │ │ │ │ │ │ ├── ArraySpeciesCreate.js │ │ │ │ │ │ │ ├── Call.js │ │ │ │ │ │ │ ├── CanonicalNumericIndexString.js │ │ │ │ │ │ │ ├── CompletePropertyDescriptor.js │ │ │ │ │ │ │ ├── CreateDataProperty.js │ │ │ │ │ │ │ ├── CreateDataPropertyOrThrow.js │ │ │ │ │ │ │ ├── CreateHTML.js │ │ │ │ │ │ │ ├── CreateIterResultObject.js │ │ │ │ │ │ │ ├── CreateListFromArrayLike.js │ │ │ │ │ │ │ ├── CreateMethodProperty.js │ │ │ │ │ │ │ ├── DateFromTime.js │ │ │ │ │ │ │ ├── Day.js │ │ │ │ │ │ │ ├── DayFromYear.js │ │ │ │ │ │ │ ├── DaysInYear.js │ │ │ │ │ │ │ ├── DayWithinYear.js │ │ │ │ │ │ │ ├── DefinePropertyOrThrow.js │ │ │ │ │ │ │ ├── DeletePropertyOrThrow.js │ │ │ │ │ │ │ ├── EnumerableOwnNames.js │ │ │ │ │ │ │ ├── FromPropertyDescriptor.js │ │ │ │ │ │ │ ├── Get.js │ │ │ │ │ │ │ ├── GetIterator.js │ │ │ │ │ │ │ ├── GetMethod.js │ │ │ │ │ │ │ ├── GetOwnPropertyKeys.js │ │ │ │ │ │ │ ├── GetPrototypeFromConstructor.js │ │ │ │ │ │ │ ├── GetSubstitution.js │ │ │ │ │ │ │ ├── GetV.js │ │ │ │ │ │ │ ├── HasOwnProperty.js │ │ │ │ │ │ │ ├── HasProperty.js │ │ │ │ │ │ │ ├── HourFromTime.js │ │ │ │ │ │ │ ├── InLeapYear.js │ │ │ │ │ │ │ ├── InstanceofOperator.js │ │ │ │ │ │ │ ├── Invoke.js │ │ │ │ │ │ │ ├── IsAccessorDescriptor.js │ │ │ │ │ │ │ ├── IsArray.js │ │ │ │ │ │ │ ├── IsCallable.js │ │ │ │ │ │ │ ├── IsConcatSpreadable.js │ │ │ │ │ │ │ ├── IsConstructor.js │ │ │ │ │ │ │ ├── IsDataDescriptor.js │ │ │ │ │ │ │ ├── IsExtensible.js │ │ │ │ │ │ │ ├── IsGenericDescriptor.js │ │ │ │ │ │ │ ├── IsInteger.js │ │ │ │ │ │ │ ├── IsPromise.js │ │ │ │ │ │ │ ├── IsPropertyDescriptor.js │ │ │ │ │ │ │ ├── IsPropertyKey.js │ │ │ │ │ │ │ ├── IsRegExp.js │ │ │ │ │ │ │ ├── IteratorClose.js │ │ │ │ │ │ │ ├── IteratorComplete.js │ │ │ │ │ │ │ ├── IteratorNext.js │ │ │ │ │ │ │ ├── IteratorStep.js │ │ │ │ │ │ │ ├── IteratorValue.js │ │ │ │ │ │ │ ├── MakeDate.js │ │ │ │ │ │ │ ├── MakeDay.js │ │ │ │ │ │ │ ├── MakeTime.js │ │ │ │ │ │ │ ├── MinFromTime.js │ │ │ │ │ │ │ ├── modulo.js │ │ │ │ │ │ │ ├── MonthFromTime.js │ │ │ │ │ │ │ ├── msFromTime.js │ │ │ │ │ │ │ ├── ObjectCreate.js │ │ │ │ │ │ │ ├── OrdinaryDefineOwnProperty.js │ │ │ │ │ │ │ ├── OrdinaryGetOwnProperty.js │ │ │ │ │ │ │ ├── OrdinaryHasInstance.js │ │ │ │ │ │ │ ├── OrdinaryHasProperty.js │ │ │ │ │ │ │ ├── RegExpExec.js │ │ │ │ │ │ │ ├── RequireObjectCoercible.js │ │ │ │ │ │ │ ├── SameValue.js │ │ │ │ │ │ │ ├── SameValueZero.js │ │ │ │ │ │ │ ├── SecFromTime.js │ │ │ │ │ │ │ ├── Set.js │ │ │ │ │ │ │ ├── SetFunctionName.js │ │ │ │ │ │ │ ├── SetIntegrityLevel.js │ │ │ │ │ │ │ ├── SpeciesConstructor.js │ │ │ │ │ │ │ ├── StrictEqualityComparison.js │ │ │ │ │ │ │ ├── SymbolDescriptiveString.js │ │ │ │ │ │ │ ├── TestIntegrityLevel.js │ │ │ │ │ │ │ ├── thisBooleanValue.js │ │ │ │ │ │ │ ├── thisNumberValue.js │ │ │ │ │ │ │ ├── thisStringValue.js │ │ │ │ │ │ │ ├── thisTimeValue.js │ │ │ │ │ │ │ ├── TimeClip.js │ │ │ │ │ │ │ ├── TimeFromYear.js │ │ │ │ │ │ │ ├── TimeWithinDay.js │ │ │ │ │ │ │ ├── ToBoolean.js │ │ │ │ │ │ │ ├── ToDateString.js │ │ │ │ │ │ │ ├── ToInt16.js │ │ │ │ │ │ │ ├── ToInt32.js │ │ │ │ │ │ │ ├── ToInt8.js │ │ │ │ │ │ │ ├── ToInteger.js │ │ │ │ │ │ │ ├── ToLength.js │ │ │ │ │ │ │ ├── ToNumber.js │ │ │ │ │ │ │ ├── ToObject.js │ │ │ │ │ │ │ ├── ToPrimitive.js │ │ │ │ │ │ │ ├── ToPropertyDescriptor.js │ │ │ │ │ │ │ ├── ToPropertyKey.js │ │ │ │ │ │ │ ├── ToString.js │ │ │ │ │ │ │ ├── ToUint16.js │ │ │ │ │ │ │ ├── ToUint32.js │ │ │ │ │ │ │ ├── ToUint8.js │ │ │ │ │ │ │ ├── ToUint8Clamp.js │ │ │ │ │ │ │ ├── Type.js │ │ │ │ │ │ │ ├── ValidateAndApplyPropertyDescriptor.js │ │ │ │ │ │ │ ├── WeekDay.js │ │ │ │ │ │ │ └── YearFromTime.js │ │ │ │ │ │ ├── 2016 │ │ │ │ │ │ │ ├── AbstractEqualityComparison.js │ │ │ │ │ │ │ ├── AbstractRelationalComparison.js │ │ │ │ │ │ │ ├── AdvanceStringIndex.js │ │ │ │ │ │ │ ├── ArrayCreate.js │ │ │ │ │ │ │ ├── ArraySetLength.js │ │ │ │ │ │ │ ├── ArraySpeciesCreate.js │ │ │ │ │ │ │ ├── Call.js │ │ │ │ │ │ │ ├── CanonicalNumericIndexString.js │ │ │ │ │ │ │ ├── CompletePropertyDescriptor.js │ │ │ │ │ │ │ ├── CreateDataProperty.js │ │ │ │ │ │ │ ├── CreateDataPropertyOrThrow.js │ │ │ │ │ │ │ ├── CreateHTML.js │ │ │ │ │ │ │ ├── CreateIterResultObject.js │ │ │ │ │ │ │ ├── CreateListFromArrayLike.js │ │ │ │ │ │ │ ├── CreateMethodProperty.js │ │ │ │ │ │ │ ├── DateFromTime.js │ │ │ │ │ │ │ ├── Day.js │ │ │ │ │ │ │ ├── DayFromYear.js │ │ │ │ │ │ │ ├── DaysInYear.js │ │ │ │ │ │ │ ├── DayWithinYear.js │ │ │ │ │ │ │ ├── DefinePropertyOrThrow.js │ │ │ │ │ │ │ ├── DeletePropertyOrThrow.js │ │ │ │ │ │ │ ├── EnumerableOwnNames.js │ │ │ │ │ │ │ ├── FromPropertyDescriptor.js │ │ │ │ │ │ │ ├── Get.js │ │ │ │ │ │ │ ├── GetIterator.js │ │ │ │ │ │ │ ├── GetMethod.js │ │ │ │ │ │ │ ├── GetOwnPropertyKeys.js │ │ │ │ │ │ │ ├── GetPrototypeFromConstructor.js │ │ │ │ │ │ │ ├── GetSubstitution.js │ │ │ │ │ │ │ ├── GetV.js │ │ │ │ │ │ │ ├── HasOwnProperty.js │ │ │ │ │ │ │ ├── HasProperty.js │ │ │ │ │ │ │ ├── HourFromTime.js │ │ │ │ │ │ │ ├── InLeapYear.js │ │ │ │ │ │ │ ├── InstanceofOperator.js │ │ │ │ │ │ │ ├── Invoke.js │ │ │ │ │ │ │ ├── IsAccessorDescriptor.js │ │ │ │ │ │ │ ├── IsArray.js │ │ │ │ │ │ │ ├── IsCallable.js │ │ │ │ │ │ │ ├── IsConcatSpreadable.js │ │ │ │ │ │ │ ├── IsConstructor.js │ │ │ │ │ │ │ ├── IsDataDescriptor.js │ │ │ │ │ │ │ ├── IsExtensible.js │ │ │ │ │ │ │ ├── IsGenericDescriptor.js │ │ │ │ │ │ │ ├── IsInteger.js │ │ │ │ │ │ │ ├── IsPromise.js │ │ │ │ │ │ │ ├── IsPropertyDescriptor.js │ │ │ │ │ │ │ ├── IsPropertyKey.js │ │ │ │ │ │ │ ├── IsRegExp.js │ │ │ │ │ │ │ ├── IterableToArrayLike.js │ │ │ │ │ │ │ ├── IteratorClose.js │ │ │ │ │ │ │ ├── IteratorComplete.js │ │ │ │ │ │ │ ├── IteratorNext.js │ │ │ │ │ │ │ ├── IteratorStep.js │ │ │ │ │ │ │ ├── IteratorValue.js │ │ │ │ │ │ │ ├── MakeDate.js │ │ │ │ │ │ │ ├── MakeDay.js │ │ │ │ │ │ │ ├── MakeTime.js │ │ │ │ │ │ │ ├── MinFromTime.js │ │ │ │ │ │ │ ├── modulo.js │ │ │ │ │ │ │ ├── MonthFromTime.js │ │ │ │ │ │ │ ├── msFromTime.js │ │ │ │ │ │ │ ├── ObjectCreate.js │ │ │ │ │ │ │ ├── OrdinaryDefineOwnProperty.js │ │ │ │ │ │ │ ├── OrdinaryGetOwnProperty.js │ │ │ │ │ │ │ ├── OrdinaryGetPrototypeOf.js │ │ │ │ │ │ │ ├── OrdinaryHasInstance.js │ │ │ │ │ │ │ ├── OrdinaryHasProperty.js │ │ │ │ │ │ │ ├── OrdinarySetPrototypeOf.js │ │ │ │ │ │ │ ├── RegExpExec.js │ │ │ │ │ │ │ ├── RequireObjectCoercible.js │ │ │ │ │ │ │ ├── SameValue.js │ │ │ │ │ │ │ ├── SameValueNonNumber.js │ │ │ │ │ │ │ ├── SameValueZero.js │ │ │ │ │ │ │ ├── SecFromTime.js │ │ │ │ │ │ │ ├── Set.js │ │ │ │ │ │ │ ├── SetFunctionName.js │ │ │ │ │ │ │ ├── SetIntegrityLevel.js │ │ │ │ │ │ │ ├── SpeciesConstructor.js │ │ │ │ │ │ │ ├── StrictEqualityComparison.js │ │ │ │ │ │ │ ├── SymbolDescriptiveString.js │ │ │ │ │ │ │ ├── TestIntegrityLevel.js │ │ │ │ │ │ │ ├── thisBooleanValue.js │ │ │ │ │ │ │ ├── thisNumberValue.js │ │ │ │ │ │ │ ├── thisStringValue.js │ │ │ │ │ │ │ ├── thisTimeValue.js │ │ │ │ │ │ │ ├── TimeClip.js │ │ │ │ │ │ │ ├── TimeFromYear.js │ │ │ │ │ │ │ ├── TimeWithinDay.js │ │ │ │ │ │ │ ├── ToBoolean.js │ │ │ │ │ │ │ ├── ToDateString.js │ │ │ │ │ │ │ ├── ToInt16.js │ │ │ │ │ │ │ ├── ToInt32.js │ │ │ │ │ │ │ ├── ToInt8.js │ │ │ │ │ │ │ ├── ToInteger.js │ │ │ │ │ │ │ ├── ToLength.js │ │ │ │ │ │ │ ├── ToNumber.js │ │ │ │ │ │ │ ├── ToObject.js │ │ │ │ │ │ │ ├── ToPrimitive.js │ │ │ │ │ │ │ ├── ToPropertyDescriptor.js │ │ │ │ │ │ │ ├── ToPropertyKey.js │ │ │ │ │ │ │ ├── ToString.js │ │ │ │ │ │ │ ├── ToUint16.js │ │ │ │ │ │ │ ├── ToUint32.js │ │ │ │ │ │ │ ├── ToUint8.js │ │ │ │ │ │ │ ├── ToUint8Clamp.js │ │ │ │ │ │ │ ├── Type.js │ │ │ │ │ │ │ ├── ValidateAndApplyPropertyDescriptor.js │ │ │ │ │ │ │ ├── WeekDay.js │ │ │ │ │ │ │ └── YearFromTime.js │ │ │ │ │ │ ├── 2017 │ │ │ │ │ │ │ ├── AbstractEqualityComparison.js │ │ │ │ │ │ │ ├── AbstractRelationalComparison.js │ │ │ │ │ │ │ ├── AdvanceStringIndex.js │ │ │ │ │ │ │ ├── ArrayCreate.js │ │ │ │ │ │ │ ├── ArraySetLength.js │ │ │ │ │ │ │ ├── ArraySpeciesCreate.js │ │ │ │ │ │ │ ├── Call.js │ │ │ │ │ │ │ ├── CanonicalNumericIndexString.js │ │ │ │ │ │ │ ├── CompletePropertyDescriptor.js │ │ │ │ │ │ │ ├── CreateDataProperty.js │ │ │ │ │ │ │ ├── CreateDataPropertyOrThrow.js │ │ │ │ │ │ │ ├── CreateHTML.js │ │ │ │ │ │ │ ├── CreateIterResultObject.js │ │ │ │ │ │ │ ├── CreateListFromArrayLike.js │ │ │ │ │ │ │ ├── CreateMethodProperty.js │ │ │ │ │ │ │ ├── DateFromTime.js │ │ │ │ │ │ │ ├── Day.js │ │ │ │ │ │ │ ├── DayFromYear.js │ │ │ │ │ │ │ ├── DaysInYear.js │ │ │ │ │ │ │ ├── DayWithinYear.js │ │ │ │ │ │ │ ├── DefinePropertyOrThrow.js │ │ │ │ │ │ │ ├── DeletePropertyOrThrow.js │ │ │ │ │ │ │ ├── EnumerableOwnProperties.js │ │ │ │ │ │ │ ├── FromPropertyDescriptor.js │ │ │ │ │ │ │ ├── Get.js │ │ │ │ │ │ │ ├── GetIterator.js │ │ │ │ │ │ │ ├── GetMethod.js │ │ │ │ │ │ │ ├── GetOwnPropertyKeys.js │ │ │ │ │ │ │ ├── GetPrototypeFromConstructor.js │ │ │ │ │ │ │ ├── GetSubstitution.js │ │ │ │ │ │ │ ├── GetV.js │ │ │ │ │ │ │ ├── HasOwnProperty.js │ │ │ │ │ │ │ ├── HasProperty.js │ │ │ │ │ │ │ ├── HourFromTime.js │ │ │ │ │ │ │ ├── InLeapYear.js │ │ │ │ │ │ │ ├── InstanceofOperator.js │ │ │ │ │ │ │ ├── Invoke.js │ │ │ │ │ │ │ ├── IsAccessorDescriptor.js │ │ │ │ │ │ │ ├── IsArray.js │ │ │ │ │ │ │ ├── IsCallable.js │ │ │ │ │ │ │ ├── IsConcatSpreadable.js │ │ │ │ │ │ │ ├── IsConstructor.js │ │ │ │ │ │ │ ├── IsDataDescriptor.js │ │ │ │ │ │ │ ├── IsExtensible.js │ │ │ │ │ │ │ ├── IsGenericDescriptor.js │ │ │ │ │ │ │ ├── IsInteger.js │ │ │ │ │ │ │ ├── IsPromise.js │ │ │ │ │ │ │ ├── IsPropertyDescriptor.js │ │ │ │ │ │ │ ├── IsPropertyKey.js │ │ │ │ │ │ │ ├── IsRegExp.js │ │ │ │ │ │ │ ├── IterableToList.js │ │ │ │ │ │ │ ├── IteratorClose.js │ │ │ │ │ │ │ ├── IteratorComplete.js │ │ │ │ │ │ │ ├── IteratorNext.js │ │ │ │ │ │ │ ├── IteratorStep.js │ │ │ │ │ │ │ ├── IteratorValue.js │ │ │ │ │ │ │ ├── MakeDate.js │ │ │ │ │ │ │ ├── MakeDay.js │ │ │ │ │ │ │ ├── MakeTime.js │ │ │ │ │ │ │ ├── MinFromTime.js │ │ │ │ │ │ │ ├── modulo.js │ │ │ │ │ │ │ ├── MonthFromTime.js │ │ │ │ │ │ │ ├── msFromTime.js │ │ │ │ │ │ │ ├── ObjectCreate.js │ │ │ │ │ │ │ ├── OrdinaryDefineOwnProperty.js │ │ │ │ │ │ │ ├── OrdinaryGetOwnProperty.js │ │ │ │ │ │ │ ├── OrdinaryGetPrototypeOf.js │ │ │ │ │ │ │ ├── OrdinaryHasInstance.js │ │ │ │ │ │ │ ├── OrdinaryHasProperty.js │ │ │ │ │ │ │ ├── OrdinarySetPrototypeOf.js │ │ │ │ │ │ │ ├── RegExpExec.js │ │ │ │ │ │ │ ├── RequireObjectCoercible.js │ │ │ │ │ │ │ ├── SameValue.js │ │ │ │ │ │ │ ├── SameValueNonNumber.js │ │ │ │ │ │ │ ├── SameValueZero.js │ │ │ │ │ │ │ ├── SecFromTime.js │ │ │ │ │ │ │ ├── Set.js │ │ │ │ │ │ │ ├── SetFunctionName.js │ │ │ │ │ │ │ ├── SetIntegrityLevel.js │ │ │ │ │ │ │ ├── SpeciesConstructor.js │ │ │ │ │ │ │ ├── StrictEqualityComparison.js │ │ │ │ │ │ │ ├── SymbolDescriptiveString.js │ │ │ │ │ │ │ ├── TestIntegrityLevel.js │ │ │ │ │ │ │ ├── thisBooleanValue.js │ │ │ │ │ │ │ ├── thisNumberValue.js │ │ │ │ │ │ │ ├── thisStringValue.js │ │ │ │ │ │ │ ├── thisTimeValue.js │ │ │ │ │ │ │ ├── TimeClip.js │ │ │ │ │ │ │ ├── TimeFromYear.js │ │ │ │ │ │ │ ├── TimeWithinDay.js │ │ │ │ │ │ │ ├── ToBoolean.js │ │ │ │ │ │ │ ├── ToDateString.js │ │ │ │ │ │ │ ├── ToIndex.js │ │ │ │ │ │ │ ├── ToInt16.js │ │ │ │ │ │ │ ├── ToInt32.js │ │ │ │ │ │ │ ├── ToInt8.js │ │ │ │ │ │ │ ├── ToInteger.js │ │ │ │ │ │ │ ├── ToLength.js │ │ │ │ │ │ │ ├── ToNumber.js │ │ │ │ │ │ │ ├── ToObject.js │ │ │ │ │ │ │ ├── ToPrimitive.js │ │ │ │ │ │ │ ├── ToPropertyDescriptor.js │ │ │ │ │ │ │ ├── ToPropertyKey.js │ │ │ │ │ │ │ ├── ToString.js │ │ │ │ │ │ │ ├── ToUint16.js │ │ │ │ │ │ │ ├── ToUint32.js │ │ │ │ │ │ │ ├── ToUint8.js │ │ │ │ │ │ │ ├── ToUint8Clamp.js │ │ │ │ │ │ │ ├── Type.js │ │ │ │ │ │ │ ├── ValidateAndApplyPropertyDescriptor.js │ │ │ │ │ │ │ ├── WeekDay.js │ │ │ │ │ │ │ └── YearFromTime.js │ │ │ │ │ │ ├── 2018 │ │ │ │ │ │ │ ├── AbstractEqualityComparison.js │ │ │ │ │ │ │ ├── AbstractRelationalComparison.js │ │ │ │ │ │ │ ├── AdvanceStringIndex.js │ │ │ │ │ │ │ ├── ArrayCreate.js │ │ │ │ │ │ │ ├── ArraySetLength.js │ │ │ │ │ │ │ ├── ArraySpeciesCreate.js │ │ │ │ │ │ │ ├── Call.js │ │ │ │ │ │ │ ├── CanonicalNumericIndexString.js │ │ │ │ │ │ │ ├── CompletePropertyDescriptor.js │ │ │ │ │ │ │ ├── CopyDataProperties.js │ │ │ │ │ │ │ ├── CreateDataProperty.js │ │ │ │ │ │ │ ├── CreateDataPropertyOrThrow.js │ │ │ │ │ │ │ ├── CreateHTML.js │ │ │ │ │ │ │ ├── CreateIterResultObject.js │ │ │ │ │ │ │ ├── CreateListFromArrayLike.js │ │ │ │ │ │ │ ├── CreateMethodProperty.js │ │ │ │ │ │ │ ├── DateFromTime.js │ │ │ │ │ │ │ ├── DateString.js │ │ │ │ │ │ │ ├── Day.js │ │ │ │ │ │ │ ├── DayFromYear.js │ │ │ │ │ │ │ ├── DaysInYear.js │ │ │ │ │ │ │ ├── DayWithinYear.js │ │ │ │ │ │ │ ├── DefinePropertyOrThrow.js │ │ │ │ │ │ │ ├── DeletePropertyOrThrow.js │ │ │ │ │ │ │ ├── EnumerableOwnPropertyNames.js │ │ │ │ │ │ │ ├── FromPropertyDescriptor.js │ │ │ │ │ │ │ ├── Get.js │ │ │ │ │ │ │ ├── GetIterator.js │ │ │ │ │ │ │ ├── GetMethod.js │ │ │ │ │ │ │ ├── GetOwnPropertyKeys.js │ │ │ │ │ │ │ ├── GetPrototypeFromConstructor.js │ │ │ │ │ │ │ ├── GetSubstitution.js │ │ │ │ │ │ │ ├── GetV.js │ │ │ │ │ │ │ ├── HasOwnProperty.js │ │ │ │ │ │ │ ├── HasProperty.js │ │ │ │ │ │ │ ├── HourFromTime.js │ │ │ │ │ │ │ ├── InLeapYear.js │ │ │ │ │ │ │ ├── InstanceofOperator.js │ │ │ │ │ │ │ ├── Invoke.js │ │ │ │ │ │ │ ├── IsAccessorDescriptor.js │ │ │ │ │ │ │ ├── IsArray.js │ │ │ │ │ │ │ ├── IsCallable.js │ │ │ │ │ │ │ ├── IsConcatSpreadable.js │ │ │ │ │ │ │ ├── IsConstructor.js │ │ │ │ │ │ │ ├── IsDataDescriptor.js │ │ │ │ │ │ │ ├── IsExtensible.js │ │ │ │ │ │ │ ├── IsGenericDescriptor.js │ │ │ │ │ │ │ ├── IsInteger.js │ │ │ │ │ │ │ ├── IsPromise.js │ │ │ │ │ │ │ ├── IsPropertyKey.js │ │ │ │ │ │ │ ├── IsRegExp.js │ │ │ │ │ │ │ ├── IsStringPrefix.js │ │ │ │ │ │ │ ├── IterableToList.js │ │ │ │ │ │ │ ├── IteratorClose.js │ │ │ │ │ │ │ ├── IteratorComplete.js │ │ │ │ │ │ │ ├── IteratorNext.js │ │ │ │ │ │ │ ├── IteratorStep.js │ │ │ │ │ │ │ ├── IteratorValue.js │ │ │ │ │ │ │ ├── MakeDate.js │ │ │ │ │ │ │ ├── MakeDay.js │ │ │ │ │ │ │ ├── MakeTime.js │ │ │ │ │ │ │ ├── MinFromTime.js │ │ │ │ │ │ │ ├── modulo.js │ │ │ │ │ │ │ ├── MonthFromTime.js │ │ │ │ │ │ │ ├── msFromTime.js │ │ │ │ │ │ │ ├── NumberToString.js │ │ │ │ │ │ │ ├── ObjectCreate.js │ │ │ │ │ │ │ ├── OrdinaryDefineOwnProperty.js │ │ │ │ │ │ │ ├── OrdinaryGetOwnProperty.js │ │ │ │ │ │ │ ├── OrdinaryGetPrototypeOf.js │ │ │ │ │ │ │ ├── OrdinaryHasInstance.js │ │ │ │ │ │ │ ├── OrdinaryHasProperty.js │ │ │ │ │ │ │ ├── OrdinarySetPrototypeOf.js │ │ │ │ │ │ │ ├── PromiseResolve.js │ │ │ │ │ │ │ ├── RegExpExec.js │ │ │ │ │ │ │ ├── RequireObjectCoercible.js │ │ │ │ │ │ │ ├── SameValue.js │ │ │ │ │ │ │ ├── SameValueNonNumber.js │ │ │ │ │ │ │ ├── SameValueZero.js │ │ │ │ │ │ │ ├── SecFromTime.js │ │ │ │ │ │ │ ├── Set.js │ │ │ │ │ │ │ ├── SetFunctionName.js │ │ │ │ │ │ │ ├── SetIntegrityLevel.js │ │ │ │ │ │ │ ├── SpeciesConstructor.js │ │ │ │ │ │ │ ├── StrictEqualityComparison.js │ │ │ │ │ │ │ ├── SymbolDescriptiveString.js │ │ │ │ │ │ │ ├── TestIntegrityLevel.js │ │ │ │ │ │ │ ├── thisBooleanValue.js │ │ │ │ │ │ │ ├── thisNumberValue.js │ │ │ │ │ │ │ ├── thisStringValue.js │ │ │ │ │ │ │ ├── thisSymbolValue.js │ │ │ │ │ │ │ ├── thisTimeValue.js │ │ │ │ │ │ │ ├── TimeClip.js │ │ │ │ │ │ │ ├── TimeFromYear.js │ │ │ │ │ │ │ ├── TimeString.js │ │ │ │ │ │ │ ├── TimeWithinDay.js │ │ │ │ │ │ │ ├── ToBoolean.js │ │ │ │ │ │ │ ├── ToDateString.js │ │ │ │ │ │ │ ├── ToIndex.js │ │ │ │ │ │ │ ├── ToInt16.js │ │ │ │ │ │ │ ├── ToInt32.js │ │ │ │ │ │ │ ├── ToInt8.js │ │ │ │ │ │ │ ├── ToInteger.js │ │ │ │ │ │ │ ├── ToLength.js │ │ │ │ │ │ │ ├── ToNumber.js │ │ │ │ │ │ │ ├── ToObject.js │ │ │ │ │ │ │ ├── ToPrimitive.js │ │ │ │ │ │ │ ├── ToPropertyDescriptor.js │ │ │ │ │ │ │ ├── ToPropertyKey.js │ │ │ │ │ │ │ ├── ToString.js │ │ │ │ │ │ │ ├── ToUint16.js │ │ │ │ │ │ │ ├── ToUint32.js │ │ │ │ │ │ │ ├── ToUint8.js │ │ │ │ │ │ │ ├── ToUint8Clamp.js │ │ │ │ │ │ │ ├── Type.js │ │ │ │ │ │ │ ├── ValidateAndApplyPropertyDescriptor.js │ │ │ │ │ │ │ ├── WeekDay.js │ │ │ │ │ │ │ └── YearFromTime.js │ │ │ │ │ │ ├── 2019 │ │ │ │ │ │ │ ├── AbstractEqualityComparison.js │ │ │ │ │ │ │ ├── AbstractRelationalComparison.js │ │ │ │ │ │ │ ├── AddEntriesFromIterable.js │ │ │ │ │ │ │ ├── AdvanceStringIndex.js │ │ │ │ │ │ │ ├── ArrayCreate.js │ │ │ │ │ │ │ ├── ArraySetLength.js │ │ │ │ │ │ │ ├── ArraySpeciesCreate.js │ │ │ │ │ │ │ ├── Call.js │ │ │ │ │ │ │ ├── CanonicalNumericIndexString.js │ │ │ │ │ │ │ ├── CompletePropertyDescriptor.js │ │ │ │ │ │ │ ├── CopyDataProperties.js │ │ │ │ │ │ │ ├── CreateDataProperty.js │ │ │ │ │ │ │ ├── CreateDataPropertyOrThrow.js │ │ │ │ │ │ │ ├── CreateHTML.js │ │ │ │ │ │ │ ├── CreateIterResultObject.js │ │ │ │ │ │ │ ├── CreateListFromArrayLike.js │ │ │ │ │ │ │ ├── CreateMethodProperty.js │ │ │ │ │ │ │ ├── DateFromTime.js │ │ │ │ │ │ │ ├── DateString.js │ │ │ │ │ │ │ ├── Day.js │ │ │ │ │ │ │ ├── DayFromYear.js │ │ │ │ │ │ │ ├── DaysInYear.js │ │ │ │ │ │ │ ├── DayWithinYear.js │ │ │ │ │ │ │ ├── DefinePropertyOrThrow.js │ │ │ │ │ │ │ ├── DeletePropertyOrThrow.js │ │ │ │ │ │ │ ├── EnumerableOwnPropertyNames.js │ │ │ │ │ │ │ ├── FlattenIntoArray.js │ │ │ │ │ │ │ ├── FromPropertyDescriptor.js │ │ │ │ │ │ │ ├── Get.js │ │ │ │ │ │ │ ├── GetIterator.js │ │ │ │ │ │ │ ├── GetMethod.js │ │ │ │ │ │ │ ├── GetOwnPropertyKeys.js │ │ │ │ │ │ │ ├── GetPrototypeFromConstructor.js │ │ │ │ │ │ │ ├── GetSubstitution.js │ │ │ │ │ │ │ ├── GetV.js │ │ │ │ │ │ │ ├── HasOwnProperty.js │ │ │ │ │ │ │ ├── HasProperty.js │ │ │ │ │ │ │ ├── HourFromTime.js │ │ │ │ │ │ │ ├── InLeapYear.js │ │ │ │ │ │ │ ├── InstanceofOperator.js │ │ │ │ │ │ │ ├── Invoke.js │ │ │ │ │ │ │ ├── IsAccessorDescriptor.js │ │ │ │ │ │ │ ├── IsArray.js │ │ │ │ │ │ │ ├── IsCallable.js │ │ │ │ │ │ │ ├── IsConcatSpreadable.js │ │ │ │ │ │ │ ├── IsConstructor.js │ │ │ │ │ │ │ ├── IsDataDescriptor.js │ │ │ │ │ │ │ ├── IsExtensible.js │ │ │ │ │ │ │ ├── IsGenericDescriptor.js │ │ │ │ │ │ │ ├── IsInteger.js │ │ │ │ │ │ │ ├── IsPromise.js │ │ │ │ │ │ │ ├── IsPropertyKey.js │ │ │ │ │ │ │ ├── IsRegExp.js │ │ │ │ │ │ │ ├── IsStringPrefix.js │ │ │ │ │ │ │ ├── IterableToList.js │ │ │ │ │ │ │ ├── IteratorClose.js │ │ │ │ │ │ │ ├── IteratorComplete.js │ │ │ │ │ │ │ ├── IteratorNext.js │ │ │ │ │ │ │ ├── IteratorStep.js │ │ │ │ │ │ │ ├── IteratorValue.js │ │ │ │ │ │ │ ├── MakeDate.js │ │ │ │ │ │ │ ├── MakeDay.js │ │ │ │ │ │ │ ├── MakeTime.js │ │ │ │ │ │ │ ├── MinFromTime.js │ │ │ │ │ │ │ ├── modulo.js │ │ │ │ │ │ │ ├── MonthFromTime.js │ │ │ │ │ │ │ ├── msFromTime.js │ │ │ │ │ │ │ ├── NumberToString.js │ │ │ │ │ │ │ ├── ObjectCreate.js │ │ │ │ │ │ │ ├── OrdinaryDefineOwnProperty.js │ │ │ │ │ │ │ ├── OrdinaryGetOwnProperty.js │ │ │ │ │ │ │ ├── OrdinaryGetPrototypeOf.js │ │ │ │ │ │ │ ├── OrdinaryHasInstance.js │ │ │ │ │ │ │ ├── OrdinaryHasProperty.js │ │ │ │ │ │ │ ├── OrdinarySetPrototypeOf.js │ │ │ │ │ │ │ ├── PromiseResolve.js │ │ │ │ │ │ │ ├── RegExpExec.js │ │ │ │ │ │ │ ├── RequireObjectCoercible.js │ │ │ │ │ │ │ ├── SameValue.js │ │ │ │ │ │ │ ├── SameValueNonNumber.js │ │ │ │ │ │ │ ├── SameValueZero.js │ │ │ │ │ │ │ ├── SecFromTime.js │ │ │ │ │ │ │ ├── Set.js │ │ │ │ │ │ │ ├── SetFunctionName.js │ │ │ │ │ │ │ ├── SetIntegrityLevel.js │ │ │ │ │ │ │ ├── SpeciesConstructor.js │ │ │ │ │ │ │ ├── StrictEqualityComparison.js │ │ │ │ │ │ │ ├── SymbolDescriptiveString.js │ │ │ │ │ │ │ ├── TestIntegrityLevel.js │ │ │ │ │ │ │ ├── thisBooleanValue.js │ │ │ │ │ │ │ ├── thisNumberValue.js │ │ │ │ │ │ │ ├── thisStringValue.js │ │ │ │ │ │ │ ├── thisSymbolValue.js │ │ │ │ │ │ │ ├── thisTimeValue.js │ │ │ │ │ │ │ ├── TimeClip.js │ │ │ │ │ │ │ ├── TimeFromYear.js │ │ │ │ │ │ │ ├── TimeString.js │ │ │ │ │ │ │ ├── TimeWithinDay.js │ │ │ │ │ │ │ ├── ToBoolean.js │ │ │ │ │ │ │ ├── ToDateString.js │ │ │ │ │ │ │ ├── ToIndex.js │ │ │ │ │ │ │ ├── ToInt16.js │ │ │ │ │ │ │ ├── ToInt32.js │ │ │ │ │ │ │ ├── ToInt8.js │ │ │ │ │ │ │ ├── ToInteger.js │ │ │ │ │ │ │ ├── ToLength.js │ │ │ │ │ │ │ ├── ToNumber.js │ │ │ │ │ │ │ ├── ToObject.js │ │ │ │ │ │ │ ├── ToPrimitive.js │ │ │ │ │ │ │ ├── ToPropertyDescriptor.js │ │ │ │ │ │ │ ├── ToPropertyKey.js │ │ │ │ │ │ │ ├── ToString.js │ │ │ │ │ │ │ ├── ToUint16.js │ │ │ │ │ │ │ ├── ToUint32.js │ │ │ │ │ │ │ ├── ToUint8.js │ │ │ │ │ │ │ ├── ToUint8Clamp.js │ │ │ │ │ │ │ ├── TrimString.js │ │ │ │ │ │ │ ├── Type.js │ │ │ │ │ │ │ ├── ValidateAndApplyPropertyDescriptor.js │ │ │ │ │ │ │ ├── WeekDay.js │ │ │ │ │ │ │ └── YearFromTime.js │ │ │ │ │ │ ├── 5 │ │ │ │ │ │ │ ├── AbstractEqualityComparison.js │ │ │ │ │ │ │ ├── AbstractRelationalComparison.js │ │ │ │ │ │ │ ├── CheckObjectCoercible.js │ │ │ │ │ │ │ ├── DateFromTime.js │ │ │ │ │ │ │ ├── Day.js │ │ │ │ │ │ │ ├── DayFromYear.js │ │ │ │ │ │ │ ├── DaysInYear.js │ │ │ │ │ │ │ ├── DayWithinYear.js │ │ │ │ │ │ │ ├── FromPropertyDescriptor.js │ │ │ │ │ │ │ ├── HourFromTime.js │ │ │ │ │ │ │ ├── InLeapYear.js │ │ │ │ │ │ │ ├── IsAccessorDescriptor.js │ │ │ │ │ │ │ ├── IsCallable.js │ │ │ │ │ │ │ ├── IsDataDescriptor.js │ │ │ │ │ │ │ ├── IsGenericDescriptor.js │ │ │ │ │ │ │ ├── IsPropertyDescriptor.js │ │ │ │ │ │ │ ├── MakeDate.js │ │ │ │ │ │ │ ├── MakeDay.js │ │ │ │ │ │ │ ├── MakeTime.js │ │ │ │ │ │ │ ├── MinFromTime.js │ │ │ │ │ │ │ ├── modulo.js │ │ │ │ │ │ │ ├── MonthFromTime.js │ │ │ │ │ │ │ ├── msFromTime.js │ │ │ │ │ │ │ ├── SameValue.js │ │ │ │ │ │ │ ├── SecFromTime.js │ │ │ │ │ │ │ ├── StrictEqualityComparison.js │ │ │ │ │ │ │ ├── TimeClip.js │ │ │ │ │ │ │ ├── TimeFromYear.js │ │ │ │ │ │ │ ├── TimeWithinDay.js │ │ │ │ │ │ │ ├── ToBoolean.js │ │ │ │ │ │ │ ├── ToInt32.js │ │ │ │ │ │ │ ├── ToInteger.js │ │ │ │ │ │ │ ├── ToNumber.js │ │ │ │ │ │ │ ├── ToObject.js │ │ │ │ │ │ │ ├── ToPrimitive.js │ │ │ │ │ │ │ ├── ToPropertyDescriptor.js │ │ │ │ │ │ │ ├── ToString.js │ │ │ │ │ │ │ ├── ToUint16.js │ │ │ │ │ │ │ ├── ToUint32.js │ │ │ │ │ │ │ ├── Type.js │ │ │ │ │ │ │ ├── WeekDay.js │ │ │ │ │ │ │ └── YearFromTime.js │ │ │ │ │ │ ├── CHANGELOG.md │ │ │ │ │ │ ├── es2015.js │ │ │ │ │ │ ├── es2016.js │ │ │ │ │ │ ├── es2017.js │ │ │ │ │ │ ├── es2018.js │ │ │ │ │ │ ├── es2019.js │ │ │ │ │ │ ├── es5.js │ │ │ │ │ │ ├── es6.js │ │ │ │ │ │ ├── es7.js │ │ │ │ │ │ ├── GetIntrinsic.js │ │ │ │ │ │ ├── helpers │ │ │ │ │ │ │ ├── assertRecord.js │ │ │ │ │ │ │ ├── assign.js │ │ │ │ │ │ │ ├── callBind.js │ │ │ │ │ │ │ ├── callBound.js │ │ │ │ │ │ │ ├── DefineOwnProperty.js │ │ │ │ │ │ │ ├── every.js │ │ │ │ │ │ │ ├── forEach.js │ │ │ │ │ │ │ ├── getInferredName.js │ │ │ │ │ │ │ ├── getIteratorMethod.js │ │ │ │ │ │ │ ├── getOwnPropertyDescriptor.js │ │ │ │ │ │ │ ├── getProto.js │ │ │ │ │ │ │ ├── getSymbolDescription.js │ │ │ │ │ │ │ ├── isFinite.js │ │ │ │ │ │ │ ├── isNaN.js │ │ │ │ │ │ │ ├── isPrefixOf.js │ │ │ │ │ │ │ ├── isPrimitive.js │ │ │ │ │ │ │ ├── isPropertyDescriptor.js │ │ │ │ │ │ │ ├── isSamePropertyDescriptor.js │ │ │ │ │ │ │ ├── maxSafeInteger.js │ │ │ │ │ │ │ ├── mod.js │ │ │ │ │ │ │ ├── OwnPropertyKeys.js │ │ │ │ │ │ │ ├── padTimeComponent.js │ │ │ │ │ │ │ ├── regexTester.js │ │ │ │ │ │ │ ├── setProto.js │ │ │ │ │ │ │ ├── sign.js │ │ │ │ │ │ │ └── timeConstants.js │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ ├── operations │ │ │ │ │ │ │ ├── .eslintrc │ │ │ │ │ │ │ ├── 2015.js │ │ │ │ │ │ │ ├── 2016.js │ │ │ │ │ │ │ ├── 2017.js │ │ │ │ │ │ │ ├── 2018.js │ │ │ │ │ │ │ └── 2019.js │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ └── test │ │ │ │ │ │ ├── diffOps.js │ │ │ │ │ │ ├── es2015.js │ │ │ │ │ │ ├── es2016.js │ │ │ │ │ │ ├── es2017.js │ │ │ │ │ │ ├── es2018.js │ │ │ │ │ │ ├── es2019.js │ │ │ │ │ │ ├── es5.js │ │ │ │ │ │ ├── es6.js │ │ │ │ │ │ ├── es7.js │ │ │ │ │ │ ├── GetIntrinsic.js │ │ │ │ │ │ ├── helpers │ │ │ │ │ │ │ ├── assertRecord.js │ │ │ │ │ │ │ ├── defineProperty.js │ │ │ │ │ │ │ ├── getSymbolDescription.js │ │ │ │ │ │ │ ├── OwnPropertyKeys.js │ │ │ │ │ │ │ ├── runManifestTest.js │ │ │ │ │ │ │ └── values.js │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ └── tests.js │ │ │ │ │ ├── ex-conditions │ │ │ │ │ │ ├── expected │ │ │ │ │ │ │ ├── broken-dir-slash-conditions.json │ │ │ │ │ │ │ ├── broken.json │ │ │ │ │ │ │ ├── conditions.json │ │ │ │ │ │ │ ├── experimental.json │ │ │ │ │ │ │ ├── pattern-trailers-no-dir-slash.json │ │ │ │ │ │ │ ├── pattern-trailers.json │ │ │ │ │ │ │ ├── patterns.json │ │ │ │ │ │ │ └── pre-exports.json │ │ │ │ │ │ └── project │ │ │ │ │ │ ├── default.js │ │ │ │ │ │ ├── dinr.js │ │ │ │ │ │ ├── dirn.js │ │ │ │ │ │ ├── dnir.js │ │ │ │ │ │ ├── dnri.js │ │ │ │ │ │ ├── drin.js │ │ │ │ │ │ ├── drni.js │ │ │ │ │ │ ├── fallback.js │ │ │ │ │ │ ├── gen.js │ │ │ │ │ │ ├── idnr.js │ │ │ │ │ │ ├── idrn.js │ │ │ │ │ │ ├── import.mjs │ │ │ │ │ │ ├── indr.js │ │ │ │ │ │ ├── inrd.js │ │ │ │ │ │ ├── irdn.js │ │ │ │ │ │ ├── irnd.js │ │ │ │ │ │ ├── main.js │ │ │ │ │ │ ├── ndir.js │ │ │ │ │ │ ├── ndri.js │ │ │ │ │ │ ├── nidr.js │ │ │ │ │ │ ├── nird.js │ │ │ │ │ │ ├── node.js │ │ │ │ │ │ ├── nrdi.js │ │ │ │ │ │ ├── nrid.js │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ ├── rdin.js │ │ │ │ │ │ ├── rdni.js │ │ │ │ │ │ ├── require.js │ │ │ │ │ │ ├── ridn.js │ │ │ │ │ │ ├── rind.js │ │ │ │ │ │ ├── rndi.js │ │ │ │ │ │ └── rnid.js │ │ │ │ │ ├── ex-conditions-in-folder │ │ │ │ │ │ ├── expected │ │ │ │ │ │ │ ├── broken-dir-slash-conditions.json │ │ │ │ │ │ │ ├── broken.json │ │ │ │ │ │ │ ├── conditions.json │ │ │ │ │ │ │ ├── experimental.json │ │ │ │ │ │ │ ├── pattern-trailers-no-dir-slash.json │ │ │ │ │ │ │ ├── pattern-trailers.json │ │ │ │ │ │ │ ├── patterns.json │ │ │ │ │ │ │ └── pre-exports.json │ │ │ │ │ │ └── project │ │ │ │ │ │ ├── cjs │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ └── utils.js │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── mjs │ │ │ │ │ │ │ ├── index.mjs │ │ │ │ │ │ │ └── utils.mjs │ │ │ │ │ │ └── package.json │ │ │ │ │ ├── ex-exports-string │ │ │ │ │ │ ├── expected │ │ │ │ │ │ │ ├── broken-dir-slash-conditions.json │ │ │ │ │ │ │ ├── broken.json │ │ │ │ │ │ │ ├── conditions.json │ │ │ │ │ │ │ ├── experimental.json │ │ │ │ │ │ │ ├── pattern-trailers-no-dir-slash.json │ │ │ │ │ │ │ ├── pattern-trailers.json │ │ │ │ │ │ │ ├── patterns.json │ │ │ │ │ │ │ └── pre-exports.json │ │ │ │ │ │ └── project │ │ │ │ │ │ ├── dir │ │ │ │ │ │ │ ├── extra.js │ │ │ │ │ │ │ ├── extra.mjs │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ ├── file.js │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── index.mjs │ │ │ │ │ │ └── package.json │ │ │ │ │ ├── ex-exports-TL-object │ │ │ │ │ │ ├── expected │ │ │ │ │ │ │ ├── broken-dir-slash-conditions.json │ │ │ │ │ │ │ ├── broken.json │ │ │ │ │ │ │ ├── conditions.json │ │ │ │ │ │ │ ├── experimental.json │ │ │ │ │ │ │ ├── pattern-trailers-no-dir-slash.json │ │ │ │ │ │ │ ├── pattern-trailers.json │ │ │ │ │ │ │ ├── patterns.json │ │ │ │ │ │ │ └── pre-exports.json │ │ │ │ │ │ └── project │ │ │ │ │ │ ├── dir │ │ │ │ │ │ │ ├── extra.js │ │ │ │ │ │ │ ├── extra.mjs │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ ├── file.js │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── index.mjs │ │ │ │ │ │ └── package.json │ │ │ │ │ ├── ex-folder-mapped │ │ │ │ │ │ ├── expected │ │ │ │ │ │ │ ├── broken-dir-slash-conditions.json │ │ │ │ │ │ │ ├── broken.json │ │ │ │ │ │ │ ├── conditions.json │ │ │ │ │ │ │ ├── expected-without-conditions.json │ │ │ │ │ │ │ ├── expected.json │ │ │ │ │ │ │ ├── experimental.json │ │ │ │ │ │ │ ├── pattern-trailers-no-dir-slash.json │ │ │ │ │ │ │ ├── pattern-trailers.json │ │ │ │ │ │ │ ├── patterns.json │ │ │ │ │ │ │ └── pre-exports.json │ │ │ │ │ │ └── project │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── mapped │ │ │ │ │ │ │ ├── in-mapped-only.js │ │ │ │ │ │ │ └── shared.js │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ └── unmapped │ │ │ │ │ │ ├── in-unmapped-only.js │ │ │ │ │ │ └── shared.js │ │ │ │ │ ├── ex-main-dot-slash │ │ │ │ │ │ ├── expected │ │ │ │ │ │ │ ├── broken-dir-slash-conditions.json │ │ │ │ │ │ │ ├── conditions.json │ │ │ │ │ │ │ ├── pattern-trailers-no-dir-slash.json │ │ │ │ │ │ │ ├── patterns.json │ │ │ │ │ │ │ └── pre-exports.json │ │ │ │ │ │ └── project │ │ │ │ │ │ ├── dir │ │ │ │ │ │ │ ├── extra.js │ │ │ │ │ │ │ ├── extra.mjs │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ ├── file.js │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── index.mjs │ │ │ │ │ │ └── package.json │ │ │ │ │ ├── ex-main-dotless │ │ │ │ │ │ ├── expected │ │ │ │ │ │ │ ├── broken-dir-slash-conditions.json │ │ │ │ │ │ │ ├── conditions.json │ │ │ │ │ │ │ ├── pattern-trailers-no-dir-slash.json │ │ │ │ │ │ │ ├── patterns.json │ │ │ │ │ │ │ └── pre-exports.json │ │ │ │ │ │ └── project │ │ │ │ │ │ ├── dir │ │ │ │ │ │ │ ├── extra.js │ │ │ │ │ │ │ ├── extra.mjs │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ ├── file.js │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── index.mjs │ │ │ │ │ │ └── package.json │ │ │ │ │ ├── ex-main-dotted │ │ │ │ │ │ ├── expected │ │ │ │ │ │ │ ├── broken-dir-slash-conditions.json │ │ │ │ │ │ │ ├── conditions.json │ │ │ │ │ │ │ ├── pattern-trailers-no-dir-slash.json │ │ │ │ │ │ │ ├── patterns.json │ │ │ │ │ │ │ └── pre-exports.json │ │ │ │ │ │ └── project │ │ │ │ │ │ ├── dir │ │ │ │ │ │ │ ├── extra.js │ │ │ │ │ │ │ ├── extra.mjs │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ ├── file.js │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── index.mjs │ │ │ │ │ │ └── package.json │ │ │ │ │ ├── ex-main-exports-dot-object │ │ │ │ │ │ ├── expected │ │ │ │ │ │ │ ├── broken-dir-slash-conditions.json │ │ │ │ │ │ │ ├── broken.json │ │ │ │ │ │ │ ├── conditions.json │ │ │ │ │ │ │ ├── experimental.json │ │ │ │ │ │ │ ├── pattern-trailers-no-dir-slash.json │ │ │ │ │ │ │ ├── pattern-trailers.json │ │ │ │ │ │ │ ├── patterns.json │ │ │ │ │ │ │ └── pre-exports.json │ │ │ │ │ │ └── project │ │ │ │ │ │ ├── dir │ │ │ │ │ │ │ ├── extra.js │ │ │ │ │ │ │ ├── extra.mjs │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ ├── file.js │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── index.mjs │ │ │ │ │ │ └── package.json │ │ │ │ │ ├── ex-main-exports-multi-object │ │ │ │ │ │ ├── expected │ │ │ │ │ │ │ ├── broken-dir-slash-conditions.json │ │ │ │ │ │ │ ├── broken.json │ │ │ │ │ │ │ ├── conditions.json │ │ │ │ │ │ │ ├── experimental.json │ │ │ │ │ │ │ ├── pattern-trailers-no-dir-slash.json │ │ │ │ │ │ │ ├── pattern-trailers.json │ │ │ │ │ │ │ ├── patterns.json │ │ │ │ │ │ │ └── pre-exports.json │ │ │ │ │ │ └── project │ │ │ │ │ │ ├── dir │ │ │ │ │ │ │ ├── extra.js │ │ │ │ │ │ │ ├── extra.mjs │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ ├── file.js │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── index.mjs │ │ │ │ │ │ └── package.json │ │ │ │ │ ├── ex-main-exports-string │ │ │ │ │ │ ├── expected │ │ │ │ │ │ │ ├── broken-dir-slash-conditions.json │ │ │ │ │ │ │ ├── broken.json │ │ │ │ │ │ │ ├── conditions.json │ │ │ │ │ │ │ ├── experimental.json │ │ │ │ │ │ │ ├── pattern-trailers-no-dir-slash.json │ │ │ │ │ │ │ ├── pattern-trailers.json │ │ │ │ │ │ │ ├── patterns.json │ │ │ │ │ │ │ └── pre-exports.json │ │ │ │ │ │ └── project │ │ │ │ │ │ ├── dir │ │ │ │ │ │ │ ├── extra.js │ │ │ │ │ │ │ ├── extra.mjs │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ ├── file.js │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── index.mjs │ │ │ │ │ │ └── package.json │ │ │ │ │ ├── ex-main-exports-TL-object │ │ │ │ │ │ ├── expected │ │ │ │ │ │ │ ├── broken-dir-slash-conditions.json │ │ │ │ │ │ │ ├── broken.json │ │ │ │ │ │ │ ├── conditions.json │ │ │ │ │ │ │ ├── experimental.json │ │ │ │ │ │ │ ├── pattern-trailers-no-dir-slash.json │ │ │ │ │ │ │ ├── pattern-trailers.json │ │ │ │ │ │ │ ├── patterns.json │ │ │ │ │ │ │ └── pre-exports.json │ │ │ │ │ │ └── project │ │ │ │ │ │ ├── dir │ │ │ │ │ │ │ ├── extra.js │ │ │ │ │ │ │ ├── extra.mjs │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ ├── file.js │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── index.mjs │ │ │ │ │ │ └── package.json │ │ │ │ │ ├── ex-main-implicit │ │ │ │ │ │ ├── expected │ │ │ │ │ │ │ ├── broken-dir-slash-conditions.json │ │ │ │ │ │ │ ├── conditions.json │ │ │ │ │ │ │ ├── pattern-trailers-no-dir-slash.json │ │ │ │ │ │ │ ├── patterns.json │ │ │ │ │ │ │ └── pre-exports.json │ │ │ │ │ │ └── project │ │ │ │ │ │ ├── dir │ │ │ │ │ │ │ ├── extra.js │ │ │ │ │ │ │ ├── extra.mjs │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ ├── file.js │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── index.mjs │ │ │ │ │ │ └── package.json │ │ │ │ │ ├── ex-no-exports-with-root-type-commonjs │ │ │ │ │ │ ├── expected │ │ │ │ │ │ │ ├── broken-dir-slash-conditions.json │ │ │ │ │ │ │ ├── conditions.json │ │ │ │ │ │ │ ├── pattern-trailers-no-dir-slash.json │ │ │ │ │ │ │ ├── patterns.json │ │ │ │ │ │ │ └── pre-exports.json │ │ │ │ │ │ └── project │ │ │ │ │ │ ├── cjs.cjs │ │ │ │ │ │ ├── esm.mjs │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ └── package.json │ │ │ │ │ ├── ex-no-exports-with-root-type-module │ │ │ │ │ │ ├── expected │ │ │ │ │ │ │ ├── broken-dir-slash-conditions.json │ │ │ │ │ │ │ ├── conditions.json │ │ │ │ │ │ │ ├── pattern-trailers-no-dir-slash.json │ │ │ │ │ │ │ ├── patterns.json │ │ │ │ │ │ │ └── pre-exports.json │ │ │ │ │ │ └── project │ │ │ │ │ │ ├── cjs.cjs │ │ │ │ │ │ ├── esm.mjs │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ └── package.json │ │ │ │ │ ├── ex-node-modules │ │ │ │ │ │ ├── expected │ │ │ │ │ │ │ ├── broken-dir-slash-conditions.json │ │ │ │ │ │ │ ├── broken.json │ │ │ │ │ │ │ ├── conditions.json │ │ │ │ │ │ │ ├── experimental.json │ │ │ │ │ │ │ ├── pattern-trailers-no-dir-slash.json │ │ │ │ │ │ │ ├── pattern-trailers.json │ │ │ │ │ │ │ ├── patterns.json │ │ │ │ │ │ │ └── pre-exports.json │ │ │ │ │ │ ├── expected-without-conditions.json │ │ │ │ │ │ ├── expected.json │ │ │ │ │ │ └── project │ │ │ │ │ │ ├── default.js │ │ │ │ │ │ ├── dep.js │ │ │ │ │ │ └── package.json │ │ │ │ │ ├── ex-nonexistent-dir │ │ │ │ │ │ ├── expected │ │ │ │ │ │ │ ├── broken-dir-slash-conditions.json │ │ │ │ │ │ │ ├── broken.json │ │ │ │ │ │ │ ├── conditions.json │ │ │ │ │ │ │ ├── experimental.json │ │ │ │ │ │ │ ├── pattern-trailers-no-dir-slash.json │ │ │ │ │ │ │ ├── pattern-trailers.json │ │ │ │ │ │ │ ├── patterns.json │ │ │ │ │ │ │ └── pre-exports.json │ │ │ │ │ │ ├── expected-without-conditions.json │ │ │ │ │ │ ├── expected.json │ │ │ │ │ │ └── project │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ └── package.json │ │ │ │ │ ├── ex-private │ │ │ │ │ │ ├── expected │ │ │ │ │ │ │ ├── broken-dir-slash-conditions.json │ │ │ │ │ │ │ ├── pattern-trailers-no-dir-slash.json │ │ │ │ │ │ │ ├── patterns.json │ │ │ │ │ │ │ └── pre-exports.json │ │ │ │ │ │ └── project │ │ │ │ │ │ ├── dir │ │ │ │ │ │ │ ├── extra.js │ │ │ │ │ │ │ ├── extra.mjs │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ ├── file.js │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── index.mjs │ │ │ │ │ │ └── package.json │ │ │ │ │ ├── flatted-1 │ │ │ │ │ │ ├── expected │ │ │ │ │ │ │ ├── broken-dir-slash-conditions.json │ │ │ │ │ │ │ ├── conditions.json │ │ │ │ │ │ │ ├── pattern-trailers-no-dir-slash.json │ │ │ │ │ │ │ ├── patterns.json │ │ │ │ │ │ │ └── pre-exports.json │ │ │ │ │ │ └── project │ │ │ │ │ │ ├── cjs │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ ├── esm │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ ├── min.js │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ └── types.d.ts │ │ │ │ │ ├── flatted-2 │ │ │ │ │ │ ├── expected │ │ │ │ │ │ │ ├── broken-dir-slash-conditions.json │ │ │ │ │ │ │ ├── broken.json │ │ │ │ │ │ │ ├── conditions.json │ │ │ │ │ │ │ ├── experimental.json │ │ │ │ │ │ │ ├── pattern-trailers-no-dir-slash.json │ │ │ │ │ │ │ ├── pattern-trailers.json │ │ │ │ │ │ │ ├── patterns.json │ │ │ │ │ │ │ └── pre-exports.json │ │ │ │ │ │ └── project │ │ │ │ │ │ ├── .github │ │ │ │ │ │ │ └── FUNDING.yml │ │ │ │ │ │ ├── cjs │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ ├── esm │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ ├── min.js │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── SPECS.md │ │ │ │ │ │ └── types.d.ts │ │ │ │ │ ├── flatted-3 │ │ │ │ │ │ ├── expected │ │ │ │ │ │ │ ├── broken-dir-slash-conditions.json │ │ │ │ │ │ │ ├── broken.json │ │ │ │ │ │ │ ├── conditions.json │ │ │ │ │ │ │ ├── experimental.json │ │ │ │ │ │ │ ├── pattern-trailers-no-dir-slash.json │ │ │ │ │ │ │ ├── pattern-trailers.json │ │ │ │ │ │ │ ├── patterns.json │ │ │ │ │ │ │ └── pre-exports.json │ │ │ │ │ │ └── project │ │ │ │ │ │ ├── .github │ │ │ │ │ │ │ └── FUNDING.yml │ │ │ │ │ │ ├── cjs │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ └── package.json │ │ │ │ │ │ ├── es.js │ │ │ │ │ │ ├── esm │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ ├── min.js │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── SPECS.md │ │ │ │ │ │ └── types.d.ts │ │ │ │ │ ├── has-package-exports │ │ │ │ │ │ ├── expected │ │ │ │ │ │ │ ├── broken-dir-slash-conditions.json │ │ │ │ │ │ │ ├── broken.json │ │ │ │ │ │ │ ├── conditions.json │ │ │ │ │ │ │ ├── experimental.json │ │ │ │ │ │ │ ├── pattern-trailers-no-dir-slash.json │ │ │ │ │ │ │ ├── pattern-trailers.json │ │ │ │ │ │ │ ├── patterns.json │ │ │ │ │ │ │ └── pre-exports.json │ │ │ │ │ │ ├── expected-without-conditions.json │ │ │ │ │ │ ├── expected.json │ │ │ │ │ │ └── project │ │ │ │ │ │ ├── .eslintignore │ │ │ │ │ │ ├── .eslintrc │ │ │ │ │ │ ├── .nycrc │ │ │ │ │ │ ├── browser.js │ │ │ │ │ │ ├── CHANGELOG.md │ │ │ │ │ │ ├── conditional.js │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ ├── no.js │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ ├── pattern.js │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── test │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ └── yes.js │ │ │ │ │ ├── is-promise-2.1.0 │ │ │ │ │ │ ├── expected │ │ │ │ │ │ │ ├── broken-dir-slash-conditions.json │ │ │ │ │ │ │ ├── conditions.json │ │ │ │ │ │ │ ├── pattern-trailers-no-dir-slash.json │ │ │ │ │ │ │ ├── patterns.json │ │ │ │ │ │ │ └── pre-exports.json │ │ │ │ │ │ └── project │ │ │ │ │ │ ├── .travis.yml │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ └── readme.md │ │ │ │ │ ├── is-promise-2.2.0 │ │ │ │ │ │ ├── expected │ │ │ │ │ │ │ ├── broken-dir-slash-conditions.json │ │ │ │ │ │ │ ├── broken.json │ │ │ │ │ │ │ ├── conditions.json │ │ │ │ │ │ │ ├── experimental.json │ │ │ │ │ │ │ ├── pattern-trailers-no-dir-slash.json │ │ │ │ │ │ │ ├── pattern-trailers.json │ │ │ │ │ │ │ ├── patterns.json │ │ │ │ │ │ │ └── pre-exports.json │ │ │ │ │ │ ├── expected.json │ │ │ │ │ │ └── project │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ └── readme.md │ │ │ │ │ ├── is-promise-2.2.1 │ │ │ │ │ │ ├── expected │ │ │ │ │ │ │ ├── broken-dir-slash-conditions.json │ │ │ │ │ │ │ ├── broken.json │ │ │ │ │ │ │ ├── conditions.json │ │ │ │ │ │ │ ├── experimental.json │ │ │ │ │ │ │ ├── pattern-trailers-no-dir-slash.json │ │ │ │ │ │ │ ├── pattern-trailers.json │ │ │ │ │ │ │ ├── patterns.json │ │ │ │ │ │ │ └── pre-exports.json │ │ │ │ │ │ └── project │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── index.mjs │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ └── readme.md │ │ │ │ │ ├── is-promise-2.2.2 │ │ │ │ │ │ ├── expected │ │ │ │ │ │ │ ├── broken-dir-slash-conditions.json │ │ │ │ │ │ │ ├── conditions.json │ │ │ │ │ │ │ ├── pattern-trailers-no-dir-slash.json │ │ │ │ │ │ │ ├── patterns.json │ │ │ │ │ │ │ └── pre-exports.json │ │ │ │ │ │ └── project │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── index.mjs │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ └── readme.md │ │ │ │ │ ├── list-exports │ │ │ │ │ │ ├── expected │ │ │ │ │ │ │ ├── broken-dir-slash-conditions.json │ │ │ │ │ │ │ ├── broken.json │ │ │ │ │ │ │ ├── conditions.json │ │ │ │ │ │ │ ├── experimental.json │ │ │ │ │ │ │ ├── pattern-trailers-no-dir-slash.json │ │ │ │ │ │ │ ├── pattern-trailers.json │ │ │ │ │ │ │ ├── patterns.json │ │ │ │ │ │ │ └── pre-exports.json │ │ │ │ │ │ ├── expected-without-conditions.json │ │ │ │ │ │ └── expected.json │ │ │ │ │ ├── ls-exports │ │ │ │ │ │ ├── expected │ │ │ │ │ │ │ ├── broken-dir-slash-conditions.json │ │ │ │ │ │ │ ├── broken.json │ │ │ │ │ │ │ ├── conditions.json │ │ │ │ │ │ │ ├── experimental.json │ │ │ │ │ │ │ ├── pattern-trailers-no-dir-slash.json │ │ │ │ │ │ │ ├── pattern-trailers.json │ │ │ │ │ │ │ ├── patterns.json │ │ │ │ │ │ │ └── pre-exports.json │ │ │ │ │ │ └── expected-without-conditions.json │ │ │ │ │ ├── preact │ │ │ │ │ │ ├── expected │ │ │ │ │ │ │ ├── broken-dir-slash-conditions.json │ │ │ │ │ │ │ ├── broken.json │ │ │ │ │ │ │ ├── conditions.json │ │ │ │ │ │ │ ├── experimental.json │ │ │ │ │ │ │ ├── pattern-trailers-no-dir-slash.json │ │ │ │ │ │ │ ├── pattern-trailers.json │ │ │ │ │ │ │ ├── patterns.json │ │ │ │ │ │ │ └── pre-exports.json │ │ │ │ │ │ └── project │ │ │ │ │ │ ├── compat │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ ├── server.js │ │ │ │ │ │ │ └── src │ │ │ │ │ │ │ ├── Children.js │ │ │ │ │ │ │ ├── events.js │ │ │ │ │ │ │ ├── forwardRef.js │ │ │ │ │ │ │ ├── index.d.ts │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ ├── internal.d.ts │ │ │ │ │ │ │ ├── memo.js │ │ │ │ │ │ │ ├── portals.js │ │ │ │ │ │ │ ├── PureComponent.js │ │ │ │ │ │ │ ├── render.js │ │ │ │ │ │ │ ├── suspense-list.d.ts │ │ │ │ │ │ │ ├── suspense-list.js │ │ │ │ │ │ │ ├── suspense.d.ts │ │ │ │ │ │ │ ├── suspense.js │ │ │ │ │ │ │ └── util.js │ │ │ │ │ │ ├── debug │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ └── src │ │ │ │ │ │ │ ├── check-props.js │ │ │ │ │ │ │ ├── component-stack.js │ │ │ │ │ │ │ ├── constants.js │ │ │ │ │ │ │ ├── debug.js │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ └── internal.d.ts │ │ │ │ │ │ ├── devtools │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ └── src │ │ │ │ │ │ │ ├── devtools.js │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ ├── hooks │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ └── src │ │ │ │ │ │ │ ├── index.d.ts │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ └── internal.d.ts │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── src │ │ │ │ │ │ │ ├── clone-element.js │ │ │ │ │ │ │ ├── component.js │ │ │ │ │ │ │ ├── constants.js │ │ │ │ │ │ │ ├── create-context.js │ │ │ │ │ │ │ ├── create-element.js │ │ │ │ │ │ │ ├── diff │ │ │ │ │ │ │ │ ├── catch-error.js │ │ │ │ │ │ │ │ ├── children.js │ │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ │ └── props.js │ │ │ │ │ │ │ ├── index.d.ts │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ ├── internal.d.ts │ │ │ │ │ │ │ ├── jsx.d.ts │ │ │ │ │ │ │ ├── options.js │ │ │ │ │ │ │ ├── render.js │ │ │ │ │ │ │ └── util.js │ │ │ │ │ │ └── test-utils │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ └── src │ │ │ │ │ │ ├── index.d.ts │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── resolve-1 │ │ │ │ │ │ ├── expected │ │ │ │ │ │ │ ├── broken-dir-slash-conditions.json │ │ │ │ │ │ │ ├── conditions.json │ │ │ │ │ │ │ ├── pattern-trailers-no-dir-slash.json │ │ │ │ │ │ │ ├── patterns.json │ │ │ │ │ │ │ └── pre-exports.json │ │ │ │ │ │ └── project │ │ │ │ │ │ ├── .eslintignore │ │ │ │ │ │ ├── .eslintrc │ │ │ │ │ │ ├── .travis.yml │ │ │ │ │ │ ├── example │ │ │ │ │ │ │ ├── async.js │ │ │ │ │ │ │ └── sync.js │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── lib │ │ │ │ │ │ │ ├── async.js │ │ │ │ │ │ │ ├── caller.js │ │ │ │ │ │ │ ├── core.js │ │ │ │ │ │ │ ├── core.json │ │ │ │ │ │ │ ├── is-core.js │ │ │ │ │ │ │ ├── node-modules-paths.js │ │ │ │ │ │ │ ├── normalize-options.js │ │ │ │ │ │ │ └── sync.js │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ ├── readme.markdown │ │ │ │ │ │ └── test │ │ │ │ │ │ ├── .eslintrc │ │ │ │ │ │ ├── core.js │ │ │ │ │ │ ├── dotdot │ │ │ │ │ │ │ ├── abc │ │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ ├── dotdot.js │ │ │ │ │ │ ├── faulty_basedir.js │ │ │ │ │ │ ├── filter_sync.js │ │ │ │ │ │ ├── filter.js │ │ │ │ │ │ ├── mock_sync.js │ │ │ │ │ │ ├── mock.js │ │ │ │ │ │ ├── module_dir │ │ │ │ │ │ │ ├── xmodules │ │ │ │ │ │ │ │ └── aaa │ │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ │ ├── ymodules │ │ │ │ │ │ │ │ └── aaa │ │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ │ └── zmodules │ │ │ │ │ │ │ └── bbb │ │ │ │ │ │ │ ├── main.js │ │ │ │ │ │ │ └── package.json │ │ │ │ │ │ ├── module_dir.js │ │ │ │ │ │ ├── node_path │ │ │ │ │ │ │ ├── x │ │ │ │ │ │ │ │ ├── aaa │ │ │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ │ │ └── ccc │ │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ │ └── y │ │ │ │ │ │ │ ├── bbb │ │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ │ └── ccc │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ ├── node_path.js │ │ │ │ │ │ ├── node-modules-paths.js │ │ │ │ │ │ ├── nonstring.js │ │ │ │ │ │ ├── pathfilter │ │ │ │ │ │ │ └── deep_ref │ │ │ │ │ │ │ └── main.js │ │ │ │ │ │ ├── pathfilter.js │ │ │ │ │ │ ├── precedence │ │ │ │ │ │ │ ├── aaa │ │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ │ └── main.js │ │ │ │ │ │ │ ├── aaa.js │ │ │ │ │ │ │ ├── bbb │ │ │ │ │ │ │ │ └── main.js │ │ │ │ │ │ │ └── bbb.js │ │ │ │ │ │ ├── precedence.js │ │ │ │ │ │ ├── resolver │ │ │ │ │ │ │ ├── baz │ │ │ │ │ │ │ │ ├── doom.js │ │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ │ └── quux.js │ │ │ │ │ │ │ ├── browser_field │ │ │ │ │ │ │ │ ├── a.js │ │ │ │ │ │ │ │ ├── b.js │ │ │ │ │ │ │ │ └── package.json │ │ │ │ │ │ │ ├── cup.coffee │ │ │ │ │ │ │ ├── dot_main │ │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ │ └── package.json │ │ │ │ │ │ │ ├── dot_slash_main │ │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ │ └── package.json │ │ │ │ │ │ │ ├── foo.js │ │ │ │ │ │ │ ├── incorrect_main │ │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ │ └── package.json │ │ │ │ │ │ │ ├── invalid_main │ │ │ │ │ │ │ │ └── package.json │ │ │ │ │ │ │ ├── mug.coffee │ │ │ │ │ │ │ ├── mug.js │ │ │ │ │ │ │ ├── multirepo │ │ │ │ │ │ │ │ ├── lerna.json │ │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ │ └── packages │ │ │ │ │ │ │ │ ├── package-a │ │ │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ │ │ └── package.json │ │ │ │ │ │ │ │ └── package-b │ │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ │ └── package.json │ │ │ │ │ │ │ ├── nested_symlinks │ │ │ │ │ │ │ │ └── mylib │ │ │ │ │ │ │ │ ├── async.js │ │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ │ └── sync.js │ │ │ │ │ │ │ ├── other_path │ │ │ │ │ │ │ │ ├── lib │ │ │ │ │ │ │ │ │ └── other-lib.js │ │ │ │ │ │ │ │ └── root.js │ │ │ │ │ │ │ ├── quux │ │ │ │ │ │ │ │ └── foo │ │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ │ ├── same_names │ │ │ │ │ │ │ │ ├── foo │ │ │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ │ │ └── foo.js │ │ │ │ │ │ │ ├── symlinked │ │ │ │ │ │ │ │ ├── _ │ │ │ │ │ │ │ │ │ ├── node_modules │ │ │ │ │ │ │ │ │ │ └── foo.js │ │ │ │ │ │ │ │ │ └── symlink_target │ │ │ │ │ │ │ │ │ └── .gitkeep │ │ │ │ │ │ │ │ └── package │ │ │ │ │ │ │ │ ├── bar.js │ │ │ │ │ │ │ │ └── package.json │ │ │ │ │ │ │ └── without_basedir │ │ │ │ │ │ │ └── main.js │ │ │ │ │ │ ├── resolver_sync.js │ │ │ │ │ │ ├── resolver.js │ │ │ │ │ │ ├── shadowed_core │ │ │ │ │ │ │ └── node_modules │ │ │ │ │ │ │ └── util │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ ├── shadowed_core.js │ │ │ │ │ │ ├── subdirs.js │ │ │ │ │ │ └── symlinks.js │ │ │ │ │ ├── resolve-2 │ │ │ │ │ │ ├── expected │ │ │ │ │ │ │ ├── broken-dir-slash-conditions.json │ │ │ │ │ │ │ ├── broken.json │ │ │ │ │ │ │ ├── conditions.json │ │ │ │ │ │ │ ├── experimental.json │ │ │ │ │ │ │ ├── pattern-trailers-no-dir-slash.json │ │ │ │ │ │ │ ├── pattern-trailers.json │ │ │ │ │ │ │ ├── patterns.json │ │ │ │ │ │ │ └── pre-exports.json │ │ │ │ │ │ └── project │ │ │ │ │ │ ├── .eslintignore │ │ │ │ │ │ ├── .eslintrc │ │ │ │ │ │ ├── .github │ │ │ │ │ │ │ └── FUNDING.yml │ │ │ │ │ │ ├── .travis.yml │ │ │ │ │ │ ├── example │ │ │ │ │ │ │ ├── async.js │ │ │ │ │ │ │ └── sync.js │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ ├── index.mjs │ │ │ │ │ │ ├── lib │ │ │ │ │ │ │ ├── async.js │ │ │ │ │ │ │ ├── caller.js │ │ │ │ │ │ │ ├── core.js │ │ │ │ │ │ │ ├── core.json │ │ │ │ │ │ │ ├── is-core.js │ │ │ │ │ │ │ ├── node-modules-paths.js │ │ │ │ │ │ │ ├── normalize-options.js │ │ │ │ │ │ │ └── sync.js │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ ├── readme.markdown │ │ │ │ │ │ └── test │ │ │ │ │ │ ├── core.js │ │ │ │ │ │ ├── dotdot │ │ │ │ │ │ │ ├── abc │ │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ ├── dotdot.js │ │ │ │ │ │ ├── faulty_basedir.js │ │ │ │ │ │ ├── filter_sync.js │ │ │ │ │ │ ├── filter.js │ │ │ │ │ │ ├── mock_sync.js │ │ │ │ │ │ ├── mock.js │ │ │ │ │ │ ├── module_dir │ │ │ │ │ │ │ ├── xmodules │ │ │ │ │ │ │ │ └── aaa │ │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ │ ├── ymodules │ │ │ │ │ │ │ │ └── aaa │ │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ │ └── zmodules │ │ │ │ │ │ │ └── bbb │ │ │ │ │ │ │ ├── main.js │ │ │ │ │ │ │ └── package.json │ │ │ │ │ │ ├── module_dir.js │ │ │ │ │ │ ├── node_path │ │ │ │ │ │ │ ├── x │ │ │ │ │ │ │ │ ├── aaa │ │ │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ │ │ └── ccc │ │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ │ └── y │ │ │ │ │ │ │ ├── bbb │ │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ │ └── ccc │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ ├── node_path.js │ │ │ │ │ │ ├── node-modules-paths.js │ │ │ │ │ │ ├── nonstring.js │ │ │ │ │ │ ├── pathfilter │ │ │ │ │ │ │ └── deep_ref │ │ │ │ │ │ │ └── main.js │ │ │ │ │ │ ├── pathfilter_sync.js │ │ │ │ │ │ ├── pathfilter.js │ │ │ │ │ │ ├── precedence │ │ │ │ │ │ │ ├── aaa │ │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ │ └── main.js │ │ │ │ │ │ │ ├── aaa.js │ │ │ │ │ │ │ ├── bbb │ │ │ │ │ │ │ │ └── main.js │ │ │ │ │ │ │ └── bbb.js │ │ │ │ │ │ ├── precedence.js │ │ │ │ │ │ ├── resolver │ │ │ │ │ │ │ ├── baz │ │ │ │ │ │ │ │ ├── doom.js │ │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ │ └── quux.js │ │ │ │ │ │ │ ├── browser_field │ │ │ │ │ │ │ │ ├── a.js │ │ │ │ │ │ │ │ ├── b.js │ │ │ │ │ │ │ │ └── package.json │ │ │ │ │ │ │ ├── cup.coffee │ │ │ │ │ │ │ ├── dot_main │ │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ │ └── package.json │ │ │ │ │ │ │ ├── dot_slash_main │ │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ │ └── package.json │ │ │ │ │ │ │ ├── foo.js │ │ │ │ │ │ │ ├── incorrect_main │ │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ │ └── package.json │ │ │ │ │ │ │ ├── invalid_main │ │ │ │ │ │ │ │ └── package.json │ │ │ │ │ │ │ ├── mug.coffee │ │ │ │ │ │ │ ├── mug.js │ │ │ │ │ │ │ ├── multirepo │ │ │ │ │ │ │ │ ├── lerna.json │ │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ │ └── packages │ │ │ │ │ │ │ │ ├── package-a │ │ │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ │ │ └── package.json │ │ │ │ │ │ │ │ └── package-b │ │ │ │ │ │ │ │ ├── index.js │ │ │ │ │ │ │ │ └── package.json │ │ │ │ │ │ │ ├── nested_symlinks │ │ │ │ │ │ │ │ └── mylib │ │ │ │ │ │ │ │ ├── async.js │ │ │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ │ │ └── sync.js │ │ │ │ │ │ │ ├── other_path │ │ │ │ │ │ │ │ ├── lib │ │ │ │ │ │ │ │ │ └── other-lib.js │ │ │ │ │ │ │ │ └── root.js │ │ │ │ │ │ │ ├── quux │ │ │ │ │ │ │ │ └── foo │ │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ │ ├── same_names │ │ │ │ │ │ │ │ ├── foo │ │ │ │ │ │ │ │ │ └── index.js │ │ │ │ │ │ │ │ └── foo.js │ │ │ │ │ │ │ ├── symlinked │ │ │ │ │ │ │ │ ├── _ │ │ │ │ │ │ │ │ │ └── symlink_target │ │ │ │ │ │ │ │ │ └── .gitkeep │ │ │ │ │ │ │ │ └── package │ │ │ │ │ │ │ │ ├── bar.js │ │ │ │ │ │ │ │ └── package.json │ │ │ │ │ │ │ └── without_basedir │ │ │ │ │ │ │ └── main.js │ │ │ │ │ │ ├── resolver_sync.js │ │ │ │ │ │ ├── resolver.js │ │ │ │ │ │ ├── shadowed_core.js │ │ │ │ │ │ ├── subdirs.js │ │ │ │ │ │ └── symlinks.js │ │ │ │ │ └── single-spa-layout │ │ │ │ │ ├── expected │ │ │ │ │ │ ├── broken-dir-slash-conditions.json │ │ │ │ │ │ ├── broken.json │ │ │ │ │ │ ├── conditions.json │ │ │ │ │ │ ├── experimental.json │ │ │ │ │ │ ├── pattern-trailers-no-dir-slash.json │ │ │ │ │ │ ├── pattern-trailers.json │ │ │ │ │ │ ├── patterns.json │ │ │ │ │ │ └── pre-exports.json │ │ │ │ │ └── project │ │ │ │ │ ├── LICENSE │ │ │ │ │ ├── package.json │ │ │ │ │ └── README.md │ │ │ │ ├── index.js │ │ │ │ └── package.json │ │ │ ├── README.md │ │ │ └── since.js │ │ ├── mock_sync.js │ │ ├── mock.js │ │ ├── module_dir │ │ │ ├── xmodules │ │ │ │ └── aaa │ │ │ │ └── index.js │ │ │ ├── ymodules │ │ │ │ └── aaa │ │ │ │ └── index.js │ │ │ └── zmodules │ │ │ └── bbb │ │ │ ├── main.js │ │ │ └── package.json │ │ ├── module_dir.js │ │ ├── node_path │ │ │ ├── x │ │ │ │ ├── aaa │ │ │ │ │ └── index.js │ │ │ │ └── ccc │ │ │ │ └── index.js │ │ │ └── y │ │ │ ├── bbb │ │ │ │ └── index.js │ │ │ └── ccc │ │ │ └── index.js │ │ ├── node_path.js │ │ ├── node-modules-paths.js │ │ ├── nonstring.js │ │ ├── pathfilter │ │ │ └── deep_ref │ │ │ └── main.js │ │ ├── pathfilter.js │ │ ├── precedence │ │ │ ├── aaa │ │ │ │ ├── index.js │ │ │ │ └── main.js │ │ │ ├── aaa.js │ │ │ ├── bbb │ │ │ │ └── main.js │ │ │ └── bbb.js │ │ ├── precedence.js │ │ ├── resolver │ │ │ ├── baz │ │ │ │ ├── doom.js │ │ │ │ ├── package.json │ │ │ │ └── quux.js │ │ │ ├── browser_field │ │ │ │ ├── a.js │ │ │ │ ├── b.js │ │ │ │ └── package.json │ │ │ ├── cup.coffee │ │ │ ├── dot_main │ │ │ │ ├── index.js │ │ │ │ └── package.json │ │ │ ├── dot_slash_main │ │ │ │ ├── index.js │ │ │ │ └── package.json │ │ │ ├── false_main │ │ │ │ ├── index.js │ │ │ │ └── package.json │ │ │ ├── foo.js │ │ │ ├── incorrect_main │ │ │ │ ├── index.js │ │ │ │ └── package.json │ │ │ ├── invalid_main │ │ │ │ └── package.json │ │ │ ├── mug.coffee │ │ │ ├── mug.js │ │ │ ├── multirepo │ │ │ │ ├── lerna.json │ │ │ │ ├── package.json │ │ │ │ └── packages │ │ │ │ ├── package-a │ │ │ │ │ ├── index.js │ │ │ │ │ └── package.json │ │ │ │ └── package-b │ │ │ │ ├── index.js │ │ │ │ └── package.json │ │ │ ├── nested_symlinks │ │ │ │ └── mylib │ │ │ │ ├── async.js │ │ │ │ ├── package.json │ │ │ │ └── sync.js │ │ │ ├── other_path │ │ │ │ ├── lib │ │ │ │ │ └── other-lib.js │ │ │ │ └── root.js │ │ │ ├── quux │ │ │ │ └── foo │ │ │ │ └── index.js │ │ │ ├── same_names │ │ │ │ ├── foo │ │ │ │ │ └── index.js │ │ │ │ └── foo.js │ │ │ ├── symlinked │ │ │ │ ├── _ │ │ │ │ │ ├── node_modules │ │ │ │ │ │ └── foo.js │ │ │ │ │ └── symlink_target │ │ │ │ │ └── .gitkeep │ │ │ │ └── package │ │ │ │ ├── bar.js │ │ │ │ └── package.json │ │ │ └── without_basedir │ │ │ └── main.js │ │ ├── resolver_sync.js │ │ ├── resolver.js │ │ ├── shadowed_core │ │ │ └── node_modules │ │ │ └── util │ │ │ └── index.js │ │ ├── shadowed_core.js │ │ ├── subdirs.js │ │ └── symlinks.js │ ├── safer-buffer │ │ ├── dangerous.js │ │ ├── LICENSE │ │ ├── package.json │ │ ├── Porting-Buffer.md │ │ ├── Readme.md │ │ ├── safer.js │ │ └── tests.js │ ├── setprototypeof │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── LICENSE │ │ ├── package.json │ │ ├── README.md │ │ └── test │ │ └── index.js │ ├── shelljs │ │ ├── bin │ │ │ └── shjs │ │ ├── CHANGELOG.md │ │ ├── commands.js │ │ ├── global.js │ │ ├── LICENSE │ │ ├── make.js │ │ ├── package.json │ │ ├── plugin.js │ │ ├── README.md │ │ ├── shell.js │ │ └── src │ │ ├── cat.js │ │ ├── cd.js │ │ ├── chmod.js │ │ ├── common.js │ │ ├── cp.js │ │ ├── dirs.js │ │ ├── echo.js │ │ ├── error.js │ │ ├── exec-child.js │ │ ├── exec.js │ │ ├── find.js │ │ ├── grep.js │ │ ├── head.js │ │ ├── ln.js │ │ ├── ls.js │ │ ├── mkdir.js │ │ ├── mv.js │ │ ├── popd.js │ │ ├── pushd.js │ │ ├── pwd.js │ │ ├── rm.js │ │ ├── sed.js │ │ ├── set.js │ │ ├── sort.js │ │ ├── tail.js │ │ ├── tempdir.js │ │ ├── test.js │ │ ├── to.js │ │ ├── toEnd.js │ │ ├── touch.js │ │ ├── uniq.js │ │ └── which.js │ ├── shx │ │ ├── CHANGELOG.md │ │ ├── lib │ │ │ ├── cli.js │ │ │ ├── config.js │ │ │ ├── help.js │ │ │ ├── plugin-true-false.js │ │ │ ├── printCmdRet.js │ │ │ └── shx.js │ │ ├── LICENSE │ │ ├── package.json │ │ └── README.md │ ├── statuses │ │ ├── codes.json │ │ ├── HISTORY.md │ │ ├── index.js │ │ ├── LICENSE │ │ ├── package.json │ │ └── README.md │ ├── supports-preserve-symlinks-flag │ │ ├── .eslintrc │ │ ├── .github │ │ │ └── FUNDING.yml │ │ ├── .nycrc │ │ ├── browser.js │ │ ├── CHANGELOG.md │ │ ├── index.js │ │ ├── LICENSE │ │ ├── package.json │ │ ├── README.md │ │ └── test │ │ └── index.js │ ├── toidentifier │ │ ├── HISTORY.md │ │ ├── index.js │ │ ├── LICENSE │ │ ├── package.json │ │ └── README.md │ ├── typescript │ │ ├── bin │ │ │ ├── tsc │ │ │ └── tsserver │ │ ├── lib │ │ │ ├── _tsc.js │ │ │ ├── _tsserver.js │ │ │ ├── _typingsInstaller.js │ │ │ ├── cancellationToken.js │ │ │ ├── cs │ │ │ │ └── diagnosticMessages.generated.json │ │ │ ├── de │ │ │ │ └── diagnosticMessages.generated.json │ │ │ ├── es │ │ │ │ └── diagnosticMessages.generated.json │ │ │ ├── fr │ │ │ │ └── diagnosticMessages.generated.json │ │ │ ├── it │ │ │ │ └── diagnosticMessages.generated.json │ │ │ ├── ja │ │ │ │ └── diagnosticMessages.generated.json │ │ │ ├── ko │ │ │ │ └── diagnosticMessages.generated.json │ │ │ ├── lib.d.ts │ │ │ ├── lib.decorators.d.ts │ │ │ ├── lib.decorators.legacy.d.ts │ │ │ ├── lib.dom.asynciterable.d.ts │ │ │ ├── lib.dom.d.ts │ │ │ ├── lib.dom.iterable.d.ts │ │ │ ├── lib.es2015.collection.d.ts │ │ │ ├── lib.es2015.core.d.ts │ │ │ ├── lib.es2015.d.ts │ │ │ ├── lib.es2015.generator.d.ts │ │ │ ├── lib.es2015.iterable.d.ts │ │ │ ├── lib.es2015.promise.d.ts │ │ │ ├── lib.es2015.proxy.d.ts │ │ │ ├── lib.es2015.reflect.d.ts │ │ │ ├── lib.es2015.symbol.d.ts │ │ │ ├── lib.es2015.symbol.wellknown.d.ts │ │ │ ├── lib.es2016.array.include.d.ts │ │ │ ├── lib.es2016.d.ts │ │ │ ├── lib.es2016.full.d.ts │ │ │ ├── lib.es2016.intl.d.ts │ │ │ ├── lib.es2017.arraybuffer.d.ts │ │ │ ├── lib.es2017.d.ts │ │ │ ├── lib.es2017.date.d.ts │ │ │ ├── lib.es2017.full.d.ts │ │ │ ├── lib.es2017.intl.d.ts │ │ │ ├── lib.es2017.object.d.ts │ │ │ ├── lib.es2017.sharedmemory.d.ts │ │ │ ├── lib.es2017.string.d.ts │ │ │ ├── lib.es2017.typedarrays.d.ts │ │ │ ├── lib.es2018.asyncgenerator.d.ts │ │ │ ├── lib.es2018.asynciterable.d.ts │ │ │ ├── lib.es2018.d.ts │ │ │ ├── lib.es2018.full.d.ts │ │ │ ├── lib.es2018.intl.d.ts │ │ │ ├── lib.es2018.promise.d.ts │ │ │ ├── lib.es2018.regexp.d.ts │ │ │ ├── lib.es2019.array.d.ts │ │ │ ├── lib.es2019.d.ts │ │ │ ├── lib.es2019.full.d.ts │ │ │ ├── lib.es2019.intl.d.ts │ │ │ ├── lib.es2019.object.d.ts │ │ │ ├── lib.es2019.string.d.ts │ │ │ ├── lib.es2019.symbol.d.ts │ │ │ ├── lib.es2020.bigint.d.ts │ │ │ ├── lib.es2020.d.ts │ │ │ ├── lib.es2020.date.d.ts │ │ │ ├── lib.es2020.full.d.ts │ │ │ ├── lib.es2020.intl.d.ts │ │ │ ├── lib.es2020.number.d.ts │ │ │ ├── lib.es2020.promise.d.ts │ │ │ ├── lib.es2020.sharedmemory.d.ts │ │ │ ├── lib.es2020.string.d.ts │ │ │ ├── lib.es2020.symbol.wellknown.d.ts │ │ │ ├── lib.es2021.d.ts │ │ │ ├── lib.es2021.full.d.ts │ │ │ ├── lib.es2021.intl.d.ts │ │ │ ├── lib.es2021.promise.d.ts │ │ │ ├── lib.es2021.string.d.ts │ │ │ ├── lib.es2021.weakref.d.ts │ │ │ ├── lib.es2022.array.d.ts │ │ │ ├── lib.es2022.d.ts │ │ │ ├── lib.es2022.error.d.ts │ │ │ ├── lib.es2022.full.d.ts │ │ │ ├── lib.es2022.intl.d.ts │ │ │ ├── lib.es2022.object.d.ts │ │ │ ├── lib.es2022.regexp.d.ts │ │ │ ├── lib.es2022.string.d.ts │ │ │ ├── lib.es2023.array.d.ts │ │ │ ├── lib.es2023.collection.d.ts │ │ │ ├── lib.es2023.d.ts │ │ │ ├── lib.es2023.full.d.ts │ │ │ ├── lib.es2023.intl.d.ts │ │ │ ├── lib.es2024.arraybuffer.d.ts │ │ │ ├── lib.es2024.collection.d.ts │ │ │ ├── lib.es2024.d.ts │ │ │ ├── lib.es2024.full.d.ts │ │ │ ├── lib.es2024.object.d.ts │ │ │ ├── lib.es2024.promise.d.ts │ │ │ ├── lib.es2024.regexp.d.ts │ │ │ ├── lib.es2024.sharedmemory.d.ts │ │ │ ├── lib.es2024.string.d.ts │ │ │ ├── lib.es5.d.ts │ │ │ ├── lib.es6.d.ts │ │ │ ├── lib.esnext.array.d.ts │ │ │ ├── lib.esnext.collection.d.ts │ │ │ ├── lib.esnext.d.ts │ │ │ ├── lib.esnext.decorators.d.ts │ │ │ ├── lib.esnext.disposable.d.ts │ │ │ ├── lib.esnext.full.d.ts │ │ │ ├── lib.esnext.intl.d.ts │ │ │ ├── lib.esnext.iterator.d.ts │ │ │ ├── lib.scripthost.d.ts │ │ │ ├── lib.webworker.asynciterable.d.ts │ │ │ ├── lib.webworker.d.ts │ │ │ ├── lib.webworker.importscripts.d.ts │ │ │ ├── lib.webworker.iterable.d.ts │ │ │ ├── pl │ │ │ │ └── diagnosticMessages.generated.json │ │ │ ├── pt-br │ │ │ │ └── diagnosticMessages.generated.json │ │ │ ├── ru │ │ │ │ └── diagnosticMessages.generated.json │ │ │ ├── tr │ │ │ │ └── diagnosticMessages.generated.json │ │ │ ├── tsc.js │ │ │ ├── tsserver.js │ │ │ ├── tsserverlibrary.d.ts │ │ │ ├── tsserverlibrary.js │ │ │ ├── typescript.d.ts │ │ │ ├── typescript.js │ │ │ ├── typesMap.json │ │ │ ├── typingsInstaller.js │ │ │ ├── watchGuard.js │ │ │ ├── zh-cn │ │ │ │ └── diagnosticMessages.generated.json │ │ │ └── zh-tw │ │ │ └── diagnosticMessages.generated.json │ │ ├── LICENSE.txt │ │ ├── package.json │ │ ├── README.md │ │ ├── SECURITY.md │ │ └── ThirdPartyNoticeText.txt │ ├── undici-types │ │ ├── agent.d.ts │ │ ├── api.d.ts │ │ ├── balanced-pool.d.ts │ │ ├── cache.d.ts │ │ ├── client.d.ts │ │ ├── connector.d.ts │ │ ├── content-type.d.ts │ │ ├── cookies.d.ts │ │ ├── diagnostics-channel.d.ts │ │ ├── dispatcher.d.ts │ │ ├── env-http-proxy-agent.d.ts │ │ ├── errors.d.ts │ │ ├── eventsource.d.ts │ │ ├── fetch.d.ts │ │ ├── file.d.ts │ │ ├── filereader.d.ts │ │ ├── formdata.d.ts │ │ ├── global-dispatcher.d.ts │ │ ├── global-origin.d.ts │ │ ├── handlers.d.ts │ │ ├── header.d.ts │ │ ├── index.d.ts │ │ ├── interceptors.d.ts │ │ ├── LICENSE │ │ ├── mock-agent.d.ts │ │ ├── mock-client.d.ts │ │ ├── mock-errors.d.ts │ │ ├── mock-interceptor.d.ts │ │ ├── mock-pool.d.ts │ │ ├── package.json │ │ ├── patch.d.ts │ │ ├── pool-stats.d.ts │ │ ├── pool.d.ts │ │ ├── proxy-agent.d.ts │ │ ├── readable.d.ts │ │ ├── README.md │ │ ├── retry-agent.d.ts │ │ ├── retry-handler.d.ts │ │ ├── util.d.ts │ │ ├── webidl.d.ts │ │ └── websocket.d.ts │ ├── unpipe │ │ ├── HISTORY.md │ │ ├── index.js │ │ ├── LICENSE │ │ ├── package.json │ │ └── README.md │ ├── wrappy │ │ ├── LICENSE │ │ ├── package.json │ │ ├── README.md │ │ └── wrappy.js │ └── zod │ ├── index.d.ts │ ├── lib │ │ ├── __tests__ │ │ │ ├── Mocker.d.ts │ │ │ └── Mocker.js │ │ ├── benchmarks │ │ │ ├── datetime.d.ts │ │ │ ├── datetime.js │ │ │ ├── discriminatedUnion.d.ts │ │ │ ├── discriminatedUnion.js │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ ├── ipv4.d.ts │ │ │ ├── ipv4.js │ │ │ ├── object.d.ts │ │ │ ├── object.js │ │ │ ├── primitives.d.ts │ │ │ ├── primitives.js │ │ │ ├── realworld.d.ts │ │ │ ├── realworld.js │ │ │ ├── string.d.ts │ │ │ ├── string.js │ │ │ ├── union.d.ts │ │ │ └── union.js │ │ ├── errors.d.ts │ │ ├── errors.js │ │ ├── external.d.ts │ │ ├── external.js │ │ ├── helpers │ │ │ ├── enumUtil.d.ts │ │ │ ├── enumUtil.js │ │ │ ├── errorUtil.d.ts │ │ │ ├── errorUtil.js │ │ │ ├── parseUtil.d.ts │ │ │ ├── parseUtil.js │ │ │ ├── partialUtil.d.ts │ │ │ ├── partialUtil.js │ │ │ ├── typeAliases.d.ts │ │ │ ├── typeAliases.js │ │ │ ├── util.d.ts │ │ │ └── util.js │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.mjs │ │ ├── index.umd.js │ │ ├── locales │ │ │ ├── en.d.ts │ │ │ └── en.js │ │ ├── standard-schema.d.ts │ │ ├── standard-schema.js │ │ ├── types.d.ts │ │ ├── types.js │ │ ├── ZodError.d.ts │ │ └── ZodError.js │ ├── LICENSE │ ├── package.json │ └── README.md ├── package-lock.json ├── package.json ├── README.md ├── src │ ├── index.ts │ ├── reasoner.ts │ ├── state.ts │ ├── strategies │ │ ├── base.ts │ │ ├── beam-search.ts │ │ ├── experiments │ │ │ ├── mcts-002-alpha.ts │ │ │ └── mcts-002alt-alpha.ts │ │ ├── factory.ts │ │ └── mcts.ts │ ├── types │ │ └── modelcontextprotocol.d.ts │ └── types.ts └── tsconfig.json ``` # Files -------------------------------------------------------------------------------- /src/reasoner.ts: -------------------------------------------------------------------------------- ```typescript 1 | import { ThoughtNode, ReasoningRequest, ReasoningResponse, ReasoningStats, CONFIG } from './types.js'; 2 | import { StateManager } from './state.js'; 3 | import { StrategyFactory, ReasoningStrategy } from './strategies/factory.js'; 4 | import { BaseStrategy, StrategyMetrics } from './strategies/base.js'; 5 | 6 | export class Reasoner { 7 | private stateManager: StateManager; 8 | private currentStrategy: BaseStrategy; 9 | private strategies: Map<ReasoningStrategy, BaseStrategy>; 10 | 11 | constructor() { 12 | this.stateManager = new StateManager(CONFIG.cacheSize); 13 | 14 | // Initialize available strategies 15 | this.strategies = new Map(); 16 | 17 | // Initialize base strategies 18 | this.strategies.set( 19 | ReasoningStrategy.BEAM_SEARCH, 20 | StrategyFactory.createStrategy(ReasoningStrategy.BEAM_SEARCH, this.stateManager, CONFIG.beamWidth) 21 | ); 22 | this.strategies.set( 23 | ReasoningStrategy.MCTS, 24 | StrategyFactory.createStrategy(ReasoningStrategy.MCTS, this.stateManager, undefined, CONFIG.numSimulations) 25 | ); 26 | 27 | // Initialize experimental MCTS strategies 28 | this.strategies.set( 29 | ReasoningStrategy.MCTS_002_ALPHA, 30 | StrategyFactory.createStrategy(ReasoningStrategy.MCTS_002_ALPHA, this.stateManager, undefined, CONFIG.numSimulations) 31 | ); 32 | this.strategies.set( 33 | ReasoningStrategy.MCTS_002_ALT_ALPHA, 34 | StrategyFactory.createStrategy(ReasoningStrategy.MCTS_002_ALT_ALPHA, this.stateManager, undefined, CONFIG.numSimulations) 35 | ); 36 | 37 | // Set default strategy 38 | const defaultStrategy = CONFIG.defaultStrategy as ReasoningStrategy; 39 | this.currentStrategy = this.strategies.get(defaultStrategy) || 40 | this.strategies.get(ReasoningStrategy.BEAM_SEARCH)!; 41 | } 42 | 43 | public async processThought(request: ReasoningRequest): Promise<ReasoningResponse> { 44 | // Switch strategy if requested 45 | if (request.strategyType && this.strategies.has(request.strategyType as ReasoningStrategy)) { 46 | const strategyType = request.strategyType as ReasoningStrategy; 47 | 48 | // Create new strategy instance with appropriate parameters 49 | if (strategyType === ReasoningStrategy.BEAM_SEARCH) { 50 | this.currentStrategy = StrategyFactory.createStrategy( 51 | strategyType, 52 | this.stateManager, 53 | request.beamWidth 54 | ); 55 | } else { 56 | // All MCTS variants (base and experimental) use numSimulations 57 | this.currentStrategy = StrategyFactory.createStrategy( 58 | strategyType, 59 | this.stateManager, 60 | undefined, 61 | request.numSimulations 62 | ); 63 | } 64 | // Update strategy in map 65 | this.strategies.set(strategyType, this.currentStrategy); 66 | } 67 | 68 | // Process thought using current strategy 69 | const response = await this.currentStrategy.processThought(request); 70 | 71 | // Add strategy information to response 72 | return { 73 | ...response, 74 | strategyUsed: this.getCurrentStrategyName() 75 | }; 76 | } 77 | 78 | public async getStats(): Promise<ReasoningStats> { 79 | const nodes = await this.stateManager.getAllNodes(); 80 | 81 | if (nodes.length === 0) { 82 | return { 83 | totalNodes: 0, 84 | averageScore: 0, 85 | maxDepth: 0, 86 | branchingFactor: 0, 87 | strategyMetrics: {} 88 | }; 89 | } 90 | 91 | const scores = nodes.map(n => n.score); 92 | const depths = nodes.map(n => n.depth); 93 | const branchingFactors = nodes.map(n => n.children.length); 94 | 95 | const metrics = await this.getStrategyMetrics(); 96 | 97 | return { 98 | totalNodes: nodes.length, 99 | averageScore: scores.reduce((a, b) => a + b, 0) / scores.length, 100 | maxDepth: Math.max(...depths), 101 | branchingFactor: branchingFactors.reduce((a, b) => a + b, 0) / nodes.length, 102 | strategyMetrics: metrics 103 | }; 104 | } 105 | 106 | private async getStrategyMetrics(): Promise<Record<string, StrategyMetrics>> { 107 | const metrics: Record<string, StrategyMetrics> = {}; 108 | 109 | for (const [name, strategy] of this.strategies.entries()) { 110 | metrics[name] = await strategy.getMetrics(); 111 | if (strategy === this.currentStrategy) { 112 | metrics[name] = { 113 | ...metrics[name], 114 | active: true 115 | }; 116 | } 117 | } 118 | 119 | return metrics; 120 | } 121 | 122 | public getCurrentStrategyName(): ReasoningStrategy { 123 | for (const [name, strategy] of this.strategies.entries()) { 124 | if (strategy === this.currentStrategy) { 125 | return name; 126 | } 127 | } 128 | return ReasoningStrategy.BEAM_SEARCH; 129 | } 130 | 131 | public async getBestPath(): Promise<ThoughtNode[]> { 132 | return this.currentStrategy.getBestPath(); 133 | } 134 | 135 | public async clear(): Promise<void> { 136 | await this.stateManager.clear(); 137 | // Clear all strategies 138 | for (const strategy of this.strategies.values()) { 139 | await strategy.clear(); 140 | } 141 | } 142 | 143 | public setStrategy(strategyType: ReasoningStrategy, beamWidth?: number, numSimulations?: number): void { 144 | if (!this.strategies.has(strategyType)) { 145 | throw new Error(`Unknown strategy type: ${strategyType}`); 146 | } 147 | // Create new strategy instance with appropriate parameters 148 | if (strategyType === ReasoningStrategy.BEAM_SEARCH) { 149 | this.currentStrategy = StrategyFactory.createStrategy(strategyType, this.stateManager, beamWidth); 150 | } else { 151 | // All MCTS variants (base and experimental) use numSimulations 152 | this.currentStrategy = StrategyFactory.createStrategy(strategyType, this.stateManager, undefined, numSimulations); 153 | } 154 | // Update strategy in map 155 | this.strategies.set(strategyType, this.currentStrategy); 156 | } 157 | 158 | public getAvailableStrategies(): ReasoningStrategy[] { 159 | return Array.from(this.strategies.keys()); 160 | } 161 | } 162 | ``` -------------------------------------------------------------------------------- /src/strategies/mcts.ts: -------------------------------------------------------------------------------- ```typescript 1 | import { v4 as uuidv4 } from 'uuid'; 2 | import { ThoughtNode, ReasoningRequest, ReasoningResponse, CONFIG } from '../types.js'; 3 | import { BaseStrategy } from './base.js'; 4 | 5 | interface MCTSNode extends ThoughtNode { 6 | visits: number; 7 | totalReward: number; 8 | untriedActions?: string[]; 9 | } 10 | 11 | export class MonteCarloTreeSearchStrategy extends BaseStrategy { 12 | private readonly explorationConstant = Math.sqrt(2); 13 | private readonly simulationDepth = CONFIG.maxDepth; 14 | private numSimulations: number; 15 | private root: MCTSNode | null = null; 16 | 17 | constructor(stateManager: any, numSimulations: number = CONFIG.numSimulations) { 18 | super(stateManager); 19 | // Ensure numSimulations is within reasonable bounds 20 | this.numSimulations = Math.max(1, Math.min(150, numSimulations)); 21 | } 22 | 23 | public async processThought(request: ReasoningRequest): Promise<ReasoningResponse> { 24 | const nodeId = uuidv4(); 25 | const parentNode = request.parentId ? 26 | await this.getNode(request.parentId) as MCTSNode : undefined; 27 | 28 | const node: MCTSNode = { 29 | id: nodeId, 30 | thought: request.thought, 31 | depth: request.thoughtNumber - 1, 32 | score: 0, 33 | children: [], 34 | parentId: request.parentId, 35 | isComplete: !request.nextThoughtNeeded, 36 | visits: 0, 37 | totalReward: 0, 38 | untriedActions: [] 39 | }; 40 | 41 | // Initialize node 42 | node.score = this.evaluateThought(node, parentNode); 43 | node.visits = 1; 44 | node.totalReward = node.score; 45 | await this.saveNode(node); 46 | 47 | // Update parent if exists 48 | if (parentNode) { 49 | parentNode.children.push(node.id); 50 | await this.saveNode(parentNode); 51 | } 52 | 53 | // If this is a root node, store it 54 | if (!parentNode) { 55 | this.root = node; 56 | } 57 | 58 | // Run MCTS simulations 59 | if (!node.isComplete) { 60 | await this.runSimulations(node); 61 | } 62 | 63 | // Calculate path statistics 64 | const currentPath = await this.stateManager.getPath(nodeId); 65 | const pathScore = this.calculatePathScore(currentPath); 66 | 67 | return { 68 | nodeId: node.id, 69 | thought: node.thought, 70 | score: node.score, 71 | depth: node.depth, 72 | isComplete: node.isComplete, 73 | nextThoughtNeeded: request.nextThoughtNeeded, 74 | possiblePaths: this.calculatePossiblePaths(node), 75 | bestScore: pathScore 76 | }; 77 | } 78 | 79 | private async runSimulations(node: MCTSNode): Promise<void> { 80 | for (let i = 0; i < this.numSimulations; i++) { 81 | const selectedNode = await this.select(node); 82 | const expandedNode = await this.expand(selectedNode); 83 | const reward = await this.simulate(expandedNode); 84 | await this.backpropagate(expandedNode, reward); 85 | } 86 | } 87 | 88 | private async select(node: MCTSNode): Promise<MCTSNode> { 89 | let current = node; 90 | 91 | while (current.children.length > 0 && !current.untriedActions?.length) { 92 | const children = await Promise.all( 93 | current.children.map(id => this.getNode(id)) 94 | ) as MCTSNode[]; 95 | 96 | current = this.selectBestUCT(children); 97 | } 98 | 99 | return current; 100 | } 101 | 102 | private async expand(node: MCTSNode): Promise<MCTSNode> { 103 | if (node.isComplete || node.depth >= this.simulationDepth) { 104 | return node; 105 | } 106 | 107 | // Create a new thought node as expansion 108 | const newNode: MCTSNode = { 109 | id: uuidv4(), 110 | thought: `Simulated thought at depth ${node.depth + 1}`, 111 | depth: node.depth + 1, 112 | score: 0, 113 | children: [], 114 | parentId: node.id, 115 | isComplete: false, 116 | visits: 1, 117 | totalReward: 0 118 | }; 119 | 120 | newNode.score = this.evaluateThought(newNode, node); 121 | await this.saveNode(newNode); 122 | 123 | node.children.push(newNode.id); 124 | await this.saveNode(node); 125 | 126 | return newNode; 127 | } 128 | 129 | private async simulate(node: MCTSNode): Promise<number> { 130 | let current = node; 131 | let totalScore = current.score; 132 | let depth = current.depth; 133 | 134 | while (depth < this.simulationDepth && !current.isComplete) { 135 | const simulatedNode: MCTSNode = { 136 | id: uuidv4(), 137 | thought: `Random simulation at depth ${depth + 1}`, 138 | depth: depth + 1, 139 | score: 0, 140 | children: [], 141 | parentId: current.id, 142 | isComplete: depth + 1 >= this.simulationDepth, 143 | visits: 1, 144 | totalReward: 0 145 | }; 146 | 147 | simulatedNode.score = this.evaluateThought(simulatedNode, current); 148 | totalScore += simulatedNode.score; 149 | current = simulatedNode; 150 | depth++; 151 | } 152 | 153 | return totalScore / (depth - node.depth + 1); 154 | } 155 | 156 | private async backpropagate(node: MCTSNode, reward: number): Promise<void> { 157 | let current: MCTSNode | undefined = node; 158 | 159 | while (current) { 160 | current.visits++; 161 | current.totalReward += reward; 162 | await this.saveNode(current); 163 | current = current.parentId ? 164 | await this.getNode(current.parentId) as MCTSNode : 165 | undefined; 166 | } 167 | } 168 | 169 | private selectBestUCT(nodes: MCTSNode[]): MCTSNode { 170 | const totalVisits = nodes.reduce((sum, node) => sum + node.visits, 0); 171 | 172 | return nodes.reduce((best, node) => { 173 | const exploitation = node.totalReward / node.visits; 174 | const exploration = Math.sqrt(Math.log(totalVisits) / node.visits); 175 | const uct = exploitation + this.explorationConstant * exploration; 176 | 177 | return uct > (best.totalReward / best.visits + 178 | this.explorationConstant * Math.sqrt(Math.log(totalVisits) / best.visits)) 179 | ? node : best; 180 | }); 181 | } 182 | 183 | private calculatePathScore(path: ThoughtNode[]): number { 184 | if (path.length === 0) return 0; 185 | return path.reduce((acc, node) => acc + node.score, 0) / path.length; 186 | } 187 | 188 | private calculatePossiblePaths(node: MCTSNode): number { 189 | return Math.pow(2, this.simulationDepth - node.depth); 190 | } 191 | 192 | public async getBestPath(): Promise<ThoughtNode[]> { 193 | if (!this.root) return []; 194 | 195 | const bestChild = (await Promise.all( 196 | this.root.children.map(id => this.getNode(id)) 197 | ) as MCTSNode[]) 198 | .reduce((best, node) => 199 | node.visits > best.visits ? node : best 200 | ); 201 | 202 | return this.stateManager.getPath(bestChild.id); 203 | } 204 | 205 | public async getMetrics(): Promise<any> { 206 | const baseMetrics = await super.getMetrics(); 207 | return { 208 | ...baseMetrics, 209 | simulationDepth: this.simulationDepth, 210 | numSimulations: this.numSimulations, 211 | explorationConstant: this.explorationConstant, 212 | totalSimulations: this.root?.visits || 0 213 | }; 214 | } 215 | 216 | public async clear(): Promise<void> { 217 | await super.clear(); 218 | this.root = null; 219 | } 220 | } 221 | ``` -------------------------------------------------------------------------------- /src/strategies/experiments/mcts-002alt-alpha.ts: -------------------------------------------------------------------------------- ```typescript 1 | import { v4 as uuidv4 } from 'uuid'; 2 | import { ThoughtNode, ReasoningRequest, ReasoningResponse, CONFIG } from '../../types.js'; 3 | import { MCTS002AlphaStrategy } from './mcts-002-alpha.js'; 4 | 5 | // Queue implementation for bidirectional search 6 | class Queue<T> { 7 | private items: T[]; 8 | 9 | constructor() { 10 | this.items = []; 11 | } 12 | 13 | enqueue(item: T): void { 14 | this.items.push(item); 15 | } 16 | 17 | dequeue(): T | undefined { 18 | return this.items.shift(); 19 | } 20 | 21 | isEmpty(): boolean { 22 | return this.items.length === 0; 23 | } 24 | 25 | size(): number { 26 | return this.items.length; 27 | } 28 | } 29 | 30 | // Extend PolicyGuidedNode to include both A* and bidirectional properties 31 | interface BidirectionalPolicyNode extends ThoughtNode { 32 | visits: number; 33 | totalReward: number; 34 | untriedActions?: string[]; 35 | g: number; // A* cost from start 36 | h: number; // A* heuristic to goal 37 | f: number; // A* f = g + h 38 | policyScore: number; 39 | valueEstimate: number; 40 | priorActionProbs: Map<string, number>; 41 | puct?: number; 42 | actionHistory?: string[]; 43 | noveltyScore?: number; 44 | parent?: string; // For path reconstruction 45 | direction?: 'forward' | 'backward'; 46 | searchDepth?: number; 47 | meetingPoint?: boolean; 48 | } 49 | 50 | export class MCTS002AltAlphaStrategy extends MCTS002AlphaStrategy { 51 | private startNode: BidirectionalPolicyNode | null = null; 52 | private goalNode: BidirectionalPolicyNode | null = null; 53 | private bidirectionalStats: { 54 | forwardExplorationRate: number; 55 | backwardExplorationRate: number; 56 | meetingPoints: number; 57 | pathQuality: number; 58 | }; 59 | 60 | constructor(stateManager: any, numSimulations: number = CONFIG.numSimulations) { 61 | super(stateManager, numSimulations); 62 | this.bidirectionalStats = { 63 | forwardExplorationRate: Math.sqrt(2), 64 | backwardExplorationRate: Math.sqrt(2), 65 | meetingPoints: 0, 66 | pathQuality: 0 67 | }; 68 | } 69 | 70 | public async processThought(request: ReasoningRequest): Promise<ReasoningResponse> { 71 | // Get base response first to ensure proper MCTS initialization 72 | const baseResponse = await super.processThought(request); 73 | 74 | const nodeId = uuidv4(); 75 | const parentNode = request.parentId ? 76 | await this.getNode(request.parentId) as BidirectionalPolicyNode : undefined; 77 | 78 | const node: BidirectionalPolicyNode = { 79 | id: nodeId, 80 | thought: request.thought, 81 | depth: request.thoughtNumber - 1, 82 | score: 0, 83 | children: [], 84 | parentId: request.parentId, 85 | isComplete: !request.nextThoughtNeeded, 86 | visits: 0, 87 | totalReward: 0, 88 | untriedActions: [], 89 | g: parentNode ? parentNode.g + 1 : 0, 90 | h: 0, 91 | f: 0, 92 | policyScore: 0, 93 | valueEstimate: 0, 94 | priorActionProbs: new Map(), 95 | actionHistory: parentNode ? 96 | [...(parentNode.actionHistory || []), this.getActionKey(request.thought)] : 97 | [this.getActionKey(request.thought)], 98 | searchDepth: 0, 99 | direction: parentNode ? parentNode.direction : 'forward' 100 | }; 101 | 102 | // Track start and goal nodes for bidirectional search 103 | if (!parentNode) { 104 | this.startNode = node; 105 | node.direction = 'forward'; 106 | } 107 | if (node.isComplete) { 108 | this.goalNode = node; 109 | node.direction = 'backward'; 110 | } 111 | 112 | // Run bidirectional search if we have both endpoints 113 | if (this.startNode && this.goalNode) { 114 | const path = await this.bidirectionalSearch(this.startNode, this.goalNode); 115 | if (path.length > 0) { 116 | await this.updatePathWithPolicyGuidance(path); 117 | } 118 | } 119 | 120 | // Calculate enhanced path statistics 121 | const currentPath = await this.stateManager.getPath(nodeId); 122 | const enhancedScore = this.calculateBidirectionalPolicyScore(currentPath); 123 | 124 | return { 125 | ...baseResponse, 126 | score: enhancedScore, 127 | bestScore: Math.max(baseResponse.bestScore || 0, enhancedScore) 128 | }; 129 | } 130 | 131 | protected getActionKey(thought: string): string { 132 | // Simple action extraction based on first few words 133 | return thought.split(/\s+/).slice(0, 3).join('_').toLowerCase(); 134 | } 135 | 136 | private async searchLevel( 137 | queue: Queue<BidirectionalPolicyNode>, 138 | visited: Map<string, BidirectionalPolicyNode>, 139 | otherVisited: Map<string, BidirectionalPolicyNode>, 140 | direction: 'forward' | 'backward' 141 | ): Promise<BidirectionalPolicyNode | null> { 142 | const levelSize = queue.size(); 143 | 144 | for (let i = 0; i < levelSize; i++) { 145 | const current = queue.dequeue(); 146 | if (!current) continue; 147 | 148 | // Check if we've found a meeting point 149 | if (otherVisited.has(current.id)) { 150 | current.meetingPoint = true; 151 | this.bidirectionalStats.meetingPoints++; 152 | await this.saveNode(current); 153 | return current; 154 | } 155 | 156 | // Get neighbors based on direction and policy scores 157 | const neighbors = direction === 'forward' ? 158 | await Promise.all(current.children.map(id => this.getNode(id))) : 159 | await Promise.all([current.parentId].filter((id): id is string => !!id).map(id => this.getNode(id))); 160 | 161 | const validNeighbors = neighbors.filter((n): n is BidirectionalPolicyNode => !!n) 162 | .sort((a, b) => b.policyScore - a.policyScore); // Use policy scores for neighbor selection 163 | 164 | for (const neighbor of validNeighbors) { 165 | if (!visited.has(neighbor.id)) { 166 | visited.set(neighbor.id, neighbor); 167 | neighbor.parent = current.id; 168 | neighbor.direction = direction; 169 | neighbor.searchDepth = (current.searchDepth || 0) + 1; 170 | await this.saveNode(neighbor); 171 | queue.enqueue(neighbor); 172 | } 173 | } 174 | } 175 | 176 | return null; 177 | } 178 | 179 | private async bidirectionalSearch( 180 | start: BidirectionalPolicyNode, 181 | goal: BidirectionalPolicyNode 182 | ): Promise<BidirectionalPolicyNode[]> { 183 | const forwardQueue = new Queue<BidirectionalPolicyNode>(); 184 | const backwardQueue = new Queue<BidirectionalPolicyNode>(); 185 | const forwardVisited = new Map<string, BidirectionalPolicyNode>(); 186 | const backwardVisited = new Map<string, BidirectionalPolicyNode>(); 187 | 188 | forwardQueue.enqueue(start); 189 | backwardQueue.enqueue(goal); 190 | forwardVisited.set(start.id, start); 191 | backwardVisited.set(goal.id, goal); 192 | 193 | while (!forwardQueue.isEmpty() && !backwardQueue.isEmpty()) { 194 | // Search from both directions with policy guidance 195 | const meetingPoint = await this.searchLevel( 196 | forwardQueue, 197 | forwardVisited, 198 | backwardVisited, 199 | 'forward' 200 | ); 201 | 202 | if (meetingPoint) { 203 | const path = this.reconstructPath( 204 | meetingPoint, 205 | forwardVisited, 206 | backwardVisited 207 | ); 208 | this.updateBidirectionalStats(path); 209 | return path; 210 | } 211 | 212 | const backMeetingPoint = await this.searchLevel( 213 | backwardQueue, 214 | backwardVisited, 215 | forwardVisited, 216 | 'backward' 217 | ); 218 | 219 | if (backMeetingPoint) { 220 | const path = this.reconstructPath( 221 | backMeetingPoint, 222 | forwardVisited, 223 | backwardVisited 224 | ); 225 | this.updateBidirectionalStats(path); 226 | return path; 227 | } 228 | 229 | // Adapt exploration rates based on progress 230 | this.adaptBidirectionalExploration(forwardVisited, backwardVisited); 231 | } 232 | 233 | return []; 234 | } 235 | 236 | private reconstructPath( 237 | meetingPoint: BidirectionalPolicyNode, 238 | forwardVisited: Map<string, BidirectionalPolicyNode>, 239 | backwardVisited: Map<string, BidirectionalPolicyNode> 240 | ): BidirectionalPolicyNode[] { 241 | const path: BidirectionalPolicyNode[] = [meetingPoint]; 242 | 243 | // Reconstruct forward path 244 | let current = meetingPoint; 245 | while (current.parent && forwardVisited.has(current.parent)) { 246 | current = forwardVisited.get(current.parent)!; 247 | path.unshift(current); 248 | } 249 | 250 | // Reconstruct backward path 251 | current = meetingPoint; 252 | while (current.parent && backwardVisited.has(current.parent)) { 253 | current = backwardVisited.get(current.parent)!; 254 | path.push(current); 255 | } 256 | 257 | return path; 258 | } 259 | 260 | private async updatePathWithPolicyGuidance(path: BidirectionalPolicyNode[]): Promise<void> { 261 | const pathBonus = 0.2; 262 | 263 | for (const node of path) { 264 | // Boost both policy and value estimates for nodes along the path 265 | node.policyScore += pathBonus; 266 | node.valueEstimate = (node.valueEstimate + 1) / 2; 267 | 268 | // Update action probabilities with path information 269 | if (node.parentId) { 270 | const parentNode = await this.getNode(node.parentId) as BidirectionalPolicyNode; 271 | const actionKey = this.getActionKey(node.thought); 272 | const currentProb = parentNode.priorActionProbs.get(actionKey) || 0; 273 | const newProb = Math.max(currentProb, 0.8); // Strong preference for path actions 274 | parentNode.priorActionProbs.set(actionKey, newProb); 275 | await this.saveNode(parentNode); 276 | } 277 | 278 | await this.saveNode(node); 279 | } 280 | 281 | // Update path quality metric 282 | this.bidirectionalStats.pathQuality = path.reduce((acc, node) => 283 | acc + node.policyScore + node.valueEstimate, 0) / (path.length * 2); 284 | } 285 | 286 | private adaptBidirectionalExploration( 287 | forwardVisited: Map<string, BidirectionalPolicyNode>, 288 | backwardVisited: Map<string, BidirectionalPolicyNode> 289 | ): void { 290 | // Adjust exploration rates based on search progress 291 | const forwardProgress = Array.from(forwardVisited.values()) 292 | .reduce((acc, node) => acc + node.policyScore, 0) / forwardVisited.size; 293 | const backwardProgress = Array.from(backwardVisited.values()) 294 | .reduce((acc, node) => acc + node.policyScore, 0) / backwardVisited.size; 295 | 296 | // Increase exploration in the direction making less progress 297 | if (forwardProgress > backwardProgress) { 298 | this.bidirectionalStats.backwardExplorationRate *= 1.05; 299 | this.bidirectionalStats.forwardExplorationRate *= 0.95; 300 | } else { 301 | this.bidirectionalStats.forwardExplorationRate *= 1.05; 302 | this.bidirectionalStats.backwardExplorationRate *= 0.95; 303 | } 304 | } 305 | 306 | private updateBidirectionalStats(path: BidirectionalPolicyNode[]): void { 307 | const forwardNodes = path.filter(n => n.direction === 'forward'); 308 | const backwardNodes = path.filter(n => n.direction === 'backward'); 309 | 310 | // Update exploration rates based on path composition 311 | const forwardQuality = forwardNodes.reduce((acc, n) => acc + n.policyScore, 0) / forwardNodes.length; 312 | const backwardQuality = backwardNodes.reduce((acc, n) => acc + n.policyScore, 0) / backwardNodes.length; 313 | 314 | this.bidirectionalStats.pathQuality = (forwardQuality + backwardQuality) / 2; 315 | } 316 | 317 | private calculateBidirectionalPolicyScore(path: ThoughtNode[]): number { 318 | if (path.length === 0) return 0; 319 | 320 | return path.reduce((acc, node) => { 321 | const biNode = node as BidirectionalPolicyNode; 322 | const baseScore = node.score; 323 | const policyBonus = biNode.policyScore || 0; 324 | const valueBonus = biNode.valueEstimate || 0; 325 | const meetingPointBonus = biNode.meetingPoint ? 0.2 : 0; 326 | const directionBonus = biNode.direction === 'forward' ? 327 | this.bidirectionalStats.forwardExplorationRate * 0.1 : 328 | this.bidirectionalStats.backwardExplorationRate * 0.1; 329 | 330 | return acc + ( 331 | baseScore + 332 | policyBonus + 333 | valueBonus + 334 | meetingPointBonus + 335 | directionBonus 336 | ) / 5; 337 | }, 0) / path.length; 338 | } 339 | 340 | public async getMetrics(): Promise<any> { 341 | const baseMetrics = await super.getMetrics(); 342 | const nodes = await this.stateManager.getAllNodes() as BidirectionalPolicyNode[]; 343 | 344 | const forwardNodes = nodes.filter(n => n.direction === 'forward'); 345 | const backwardNodes = nodes.filter(n => n.direction === 'backward'); 346 | const meetingPoints = nodes.filter(n => n.meetingPoint); 347 | 348 | const bidirectionalMetrics = { 349 | forwardSearch: { 350 | nodesExplored: forwardNodes.length, 351 | averagePolicyScore: forwardNodes.reduce((sum, n) => sum + n.policyScore, 0) / forwardNodes.length, 352 | explorationRate: this.bidirectionalStats.forwardExplorationRate 353 | }, 354 | backwardSearch: { 355 | nodesExplored: backwardNodes.length, 356 | averagePolicyScore: backwardNodes.reduce((sum, n) => sum + n.policyScore, 0) / backwardNodes.length, 357 | explorationRate: this.bidirectionalStats.backwardExplorationRate 358 | }, 359 | meetingPoints: { 360 | count: this.bidirectionalStats.meetingPoints, 361 | averageDepth: meetingPoints.reduce((sum, n) => sum + n.depth, 0) / (meetingPoints.length || 1) 362 | }, 363 | pathQuality: this.bidirectionalStats.pathQuality 364 | }; 365 | 366 | return { 367 | ...baseMetrics, 368 | name: 'MCTS-002Alt-Alpha (Bidirectional + Policy Enhanced)', 369 | hasStartNode: !!this.startNode, 370 | hasGoalNode: !!this.goalNode, 371 | bidirectionalMetrics 372 | }; 373 | } 374 | 375 | public async clear(): Promise<void> { 376 | await super.clear(); 377 | this.startNode = null; 378 | this.goalNode = null; 379 | this.bidirectionalStats = { 380 | forwardExplorationRate: Math.sqrt(2), 381 | backwardExplorationRate: Math.sqrt(2), 382 | meetingPoints: 0, 383 | pathQuality: 0 384 | }; 385 | } 386 | } 387 | ```