@wudao-org/browser 0.0.0-stage → 0.4.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 feiniaojin
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,3 +1,5 @@
1
- # Temporary Holding Version
1
+ # @wudao-org/browser
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ Controlled-browser foundation for [wudao-harness](https://github.com/feiniaojin/wudao-harness): a launch-once Chromium runtime with idle reaping, snapshot refs, and the six browser tools (navigate / read / click / type / scroll / screenshot) the agent uses to work on real web pages.
4
+
5
+ - MIT license. Part of [wudao-harness](https://github.com/feiniaojin/wudao-harness) — install the whole app with `npm install -g wudao-harness`.
@@ -0,0 +1 @@
1
+ {"fileNames":["../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../src/download.ts","../../../node_modules/.pnpm/playwright-core@1.63.0/node_modules/playwright-core/types/protocol.d.ts","../../../node_modules/.pnpm/playwright-core@1.63.0/node_modules/playwright-core/types/structs.d.ts","../../../node_modules/.pnpm/playwright-core@1.63.0/node_modules/playwright-core/types/types.d.ts","../../../node_modules/.pnpm/playwright-core@1.63.0/node_modules/playwright-core/index.d.ts","../src/port.ts","../src/snapshot.ts","../src/runtime.ts","../../core/dist/attachments-heif.d.ts","../../core/dist/attachments.d.ts","../../core/dist/types.d.ts","../../core/dist/tool.d.ts","../../core/dist/model-client.d.ts","../../core/dist/state.d.ts","../../core/dist/compaction-markers.d.ts","../../core/dist/window-chain.d.ts","../../core/dist/compaction-summarizer.d.ts","../../core/dist/compaction-tier2-static.d.ts","../../core/dist/compaction-estimation.d.ts","../../core/dist/compaction-tiers.d.ts","../../core/dist/compaction-riders.d.ts","../../core/dist/compaction-summary-guard.d.ts","../../core/dist/compaction-economics.d.ts","../../core/dist/compaction.d.ts","../../core/dist/todo-transition.d.ts","../../core/dist/detach.d.ts","../../core/dist/loop-synthetics.d.ts","../../core/dist/turn-slicing.d.ts","../../core/dist/tools/long-output.d.ts","../../core/dist/tools/generic-result.d.ts","../../core/dist/session/store.d.ts","../../core/dist/tools/new-context.d.ts","../../core/dist/loop-safety.d.ts","../../core/dist/loop-reflection.d.ts","../../core/dist/turn-profile.d.ts","../../core/dist/session-budget.d.ts","../../core/dist/stream-preempt.d.ts","../../core/dist/loop.d.ts","../../core/dist/stop-tree.d.ts","../../core/dist/tools/ctx-inspect.d.ts","../../core/dist/compaction-threshold.d.ts","../../core/dist/tools/context-remaining.d.ts","../../core/dist/tools/session-result.d.ts","../../core/dist/tools/search-history.d.ts","../../core/dist/tools/notes.d.ts","../../core/dist/tools/continue-task.d.ts","../../core/dist/tools/read-state.d.ts","../../core/dist/tools/read-file.d.ts","../../core/dist/tools/workspace.d.ts","../../core/dist/tools/ask-user.d.ts","../../core/dist/tools/file-history.d.ts","../../core/dist/turn-diff.d.ts","../../core/dist/tools/write-verify.d.ts","../../core/dist/pending-actions.d.ts","../../core/dist/tools/write-file.d.ts","../../core/dist/tools/edit.d.ts","../../core/dist/tools/log-slimming.d.ts","../../core/dist/tools/shell.d.ts","../../core/dist/tools/shell-snapshot.d.ts","../../core/dist/net/egress-policy.d.ts","../../../node_modules/.pnpm/undici@8.10.1/node_modules/undici/types/utility.d.ts","../../../node_modules/.pnpm/undici@8.10.1/node_modules/undici/types/header.d.ts","../../../node_modules/.pnpm/undici@8.10.1/node_modules/undici/types/readable.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/compatibility/disposable.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/compatibility/indexable.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/compatibility/iterators.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/compatibility/index.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/ts5.6/globals.typedarray.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/ts5.6/buffer.buffer.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/globals.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/web-globals/abortcontroller.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/web-globals/domexception.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/web-globals/events.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/header.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/readable.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/file.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/fetch.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/formdata.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/connector.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/client.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/errors.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/dispatcher.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/global-origin.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/pool-stats.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/pool.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/handlers.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-client.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-pool.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-errors.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/retry-handler.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/retry-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/api.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/interceptors.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/util.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/cookies.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/patch.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/websocket.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/eventsource.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/filereader.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/content-type.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/cache.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/index.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/web-globals/fetch.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/web-globals/navigator.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/web-globals/storage.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/web-globals/streams.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/assert.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/assert/strict.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/async_hooks.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/buffer.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/child_process.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/cluster.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/console.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/constants.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/crypto.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/dgram.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/dns.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/dns/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/domain.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/events.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/fs.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/fs/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/http.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/http2.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/https.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/inspector.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/inspector.generated.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/module.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/net.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/os.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/path.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/process.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/punycode.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/querystring.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/readline.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/readline/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/repl.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/sea.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/sqlite.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/stream.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/stream/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/stream/web.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/string_decoder.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/test.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/timers.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/timers/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/tls.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/trace_events.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/tty.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/url.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/util.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/v8.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/vm.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/wasi.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/worker_threads.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/zlib.d.ts","../../../node_modules/.pnpm/@types+node@22.20.1/node_modules/@types/node/ts5.6/index.d.ts","../../../node_modules/.pnpm/undici@8.10.1/node_modules/undici/types/fetch.d.ts","../../../node_modules/.pnpm/undici@8.10.1/node_modules/undici/types/formdata.d.ts","../../../node_modules/.pnpm/undici@8.10.1/node_modules/undici/types/connector.d.ts","../../../node_modules/.pnpm/undici@8.10.1/node_modules/undici/types/client-stats.d.ts","../../../node_modules/.pnpm/undici@8.10.1/node_modules/undici/types/client.d.ts","../../../node_modules/.pnpm/undici@8.10.1/node_modules/undici/types/errors.d.ts","../../../node_modules/.pnpm/undici@8.10.1/node_modules/undici/types/dispatcher.d.ts","../../../node_modules/.pnpm/undici@8.10.1/node_modules/undici/types/global-dispatcher.d.ts","../../../node_modules/.pnpm/undici@8.10.1/node_modules/undici/types/global-origin.d.ts","../../../node_modules/.pnpm/undici@8.10.1/node_modules/undici/types/pool-stats.d.ts","../../../node_modules/.pnpm/undici@8.10.1/node_modules/undici/types/pool.d.ts","../../../node_modules/.pnpm/undici@8.10.1/node_modules/undici/types/handlers.d.ts","../../../node_modules/.pnpm/undici@8.10.1/node_modules/undici/types/balanced-pool.d.ts","../../../node_modules/.pnpm/undici@8.10.1/node_modules/undici/types/round-robin-pool.d.ts","../../../node_modules/.pnpm/undici@8.10.1/node_modules/undici/types/h2c-client.d.ts","../../../node_modules/.pnpm/undici@8.10.1/node_modules/undici/types/agent.d.ts","../../../node_modules/.pnpm/undici@8.10.1/node_modules/undici/types/dispatcher1-wrapper.d.ts","../../../node_modules/.pnpm/undici@8.10.1/node_modules/undici/types/mock-interceptor.d.ts","../../../node_modules/.pnpm/undici@8.10.1/node_modules/undici/types/mock-call-history.d.ts","../../../node_modules/.pnpm/undici@8.10.1/node_modules/undici/types/mock-agent.d.ts","../../../node_modules/.pnpm/undici@8.10.1/node_modules/undici/types/mock-client.d.ts","../../../node_modules/.pnpm/undici@8.10.1/node_modules/undici/types/mock-pool.d.ts","../../../node_modules/.pnpm/undici@8.10.1/node_modules/undici/types/snapshot-agent.d.ts","../../../node_modules/.pnpm/undici@8.10.1/node_modules/undici/types/mock-errors.d.ts","../../../node_modules/.pnpm/undici@8.10.1/node_modules/undici/types/proxy-agent.d.ts","../../../node_modules/.pnpm/undici@8.10.1/node_modules/undici/types/socks5-proxy-agent.d.ts","../../../node_modules/.pnpm/undici@8.10.1/node_modules/undici/types/env-http-proxy-agent.d.ts","../../../node_modules/.pnpm/undici@8.10.1/node_modules/undici/types/retry-handler.d.ts","../../../node_modules/.pnpm/undici@8.10.1/node_modules/undici/types/retry-agent.d.ts","../../../node_modules/.pnpm/undici@8.10.1/node_modules/undici/types/api.d.ts","../../../node_modules/.pnpm/undici@8.10.1/node_modules/undici/types/cache-interceptor.d.ts","../../../node_modules/.pnpm/undici@8.10.1/node_modules/undici/types/interceptors.d.ts","../../../node_modules/.pnpm/undici@8.10.1/node_modules/undici/types/util.d.ts","../../../node_modules/.pnpm/undici@8.10.1/node_modules/undici/types/cookies.d.ts","../../../node_modules/.pnpm/undici@8.10.1/node_modules/undici/types/patch.d.ts","../../../node_modules/.pnpm/undici@8.10.1/node_modules/undici/types/websocket.d.ts","../../../node_modules/.pnpm/undici@8.10.1/node_modules/undici/types/eventsource.d.ts","../../../node_modules/.pnpm/undici@8.10.1/node_modules/undici/types/diagnostics-channel.d.ts","../../../node_modules/.pnpm/undici@8.10.1/node_modules/undici/types/content-type.d.ts","../../../node_modules/.pnpm/undici@8.10.1/node_modules/undici/types/cache.d.ts","../../../node_modules/.pnpm/undici@8.10.1/node_modules/undici/types/index.d.ts","../../../node_modules/.pnpm/undici@8.10.1/node_modules/undici/index.d.ts","../../../node_modules/.pnpm/socks@2.8.10/node_modules/socks/typings/common/constants.d.ts","../../../node_modules/.pnpm/socks@2.8.10/node_modules/socks/typings/common/util.d.ts","../../../node_modules/.pnpm/socks@2.8.10/node_modules/socks/typings/client/socksclient.d.ts","../../../node_modules/.pnpm/socks@2.8.10/node_modules/socks/typings/index.d.ts","../../../node_modules/.pnpm/fetch-socks@1.3.3/node_modules/fetch-socks/index.d.ts","../../core/dist/net/egress.d.ts","../../core/dist/authz-evidence.d.ts","../../core/dist/tools/run-script.d.ts","../../core/dist/tools/python-kernel.d.ts","../../core/dist/persistent-shell.d.ts","../../core/dist/tools/glob.d.ts","../../core/dist/tools/grep.d.ts","../../core/dist/tools/output-caps.d.ts","../../core/dist/tools/web-fetch.d.ts","../../core/dist/tools/web-search.d.ts","../../core/dist/session/id.d.ts","../../core/dist/session/format-version.d.ts","../../core/dist/session/lease.d.ts","../../core/dist/goal-state.d.ts","../../core/dist/session/validate.d.ts","../../core/dist/tool-result-synthetics.d.ts","../../core/dist/session/projection.d.ts","../../core/dist/tools/todo.d.ts","../../core/dist/session/todo-projection.d.ts","../../core/dist/session/branch.d.ts","../../core/dist/cache-clock.d.ts","../../core/dist/compaction-usage.d.ts","../../core/dist/subagent.d.ts","../../core/dist/agents/mail.d.ts","../../core/dist/agents/steer.d.ts","../../core/dist/agents/message-plane.d.ts","../../core/dist/agents/write-scope.d.ts","../../core/dist/agents/roster.d.ts","../../core/dist/agents/aimd.d.ts","../../core/dist/agents/registry.d.ts","../../core/dist/agents/worktree.d.ts","../../core/dist/runner.d.ts","../../core/dist/tools/task.d.ts","../../core/dist/tools/critic-review.d.ts","../../core/dist/tools/sleep.d.ts","../../core/dist/tools/notebook.d.ts","../../core/dist/scheduler.d.ts","../../core/dist/tools/monitor.d.ts","../../core/dist/unicode-security.d.ts","../../core/dist/probe.d.ts","../../core/dist/trace/attrs.d.ts","../../core/dist/trace/projection.d.ts","../../core/dist/trace/otlp.d.ts","../../core/dist/trace/exporter.d.ts","../../core/dist/trace/observe.d.ts","../../core/dist/trace/index.d.ts","../../core/dist/text-truncate.d.ts","../../core/dist/todo-generator.d.ts","../../core/dist/memory.d.ts","../../core/dist/index.d.ts","../src/tools.ts","../src/index.ts"],"fileIdsList":[[126,172,173,175,192,193],[126,174,175,192,193],[126,175,180,192,193,210],[126,175,176,181,186,192,193,195,207,218],[126,175,176,177,186,192,193,195],[126,175,192,193],[121,122,123,126,175,192,193],[126,175,178,192,193,219],[126,175,179,180,187,192,193,196],[126,175,180,192,193,207,215],[126,175,181,183,186,192,193,195],[126,174,175,182,192,193],[126,175,183,184,192,193],[126,175,185,186,192,193],[126,174,175,186,192,193],[126,175,186,187,188,192,193,207,218],[126,175,186,187,188,192,193,202,207,210],[126,167,175,183,186,189,192,193,195,207,218],[126,175,186,187,189,190,192,193,195,207,215,218],[126,175,189,191,192,193,207,215,218],[126,175,186,192,193],[126,175,192,193,194,218],[126,175,183,186,192,193,195,207],[126,175,192,193,196],[126,175,192,193,197],[126,174,175,192,193,198],[126,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224],[126,175,192,193,200],[126,175,192,193,201],[126,175,186,192,193,202,203],[126,175,192,193,202,204,219,221],[126,175,187,192,193],[126,175,186,192,193,207,208,210],[126,175,192,193,209,210],[126,175,192,193,207,208],[126,175,192,193,210],[126,175,192,193,211],[126,172,175,192,193,207,212,218],[126,175,186,192,193,213,214],[126,175,192,193,213,214],[126,175,180,192,193,195,207,215],[126,175,192,193,216],[175,192,193],[124,125,126,127,128,129,130,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224],[126,175,192,193,195,217],[126,175,189,192,193,201,218],[126,175,180,192,193,219],[126,175,192,193,207,220],[126,175,192,193,194,221],[126,175,192,193,222],[126,167,175,192,193],[126,167,175,186,188,192,193,198,207,210,218,220,221,223],[126,175,192,193,207,224],[126,175,192,193,267,271],[61,126,175,192,193],[59,60,126,175,176,187,192,193,207],[126,175,186,192,193,207,225,268,269],[126,175,192,193,195,207,225],[126,175,192,193,268],[126,175,192,193,270],[126,139,143,175,192,193,218],[126,139,175,192,193,207,218],[126,134,175,192,193],[126,136,139,175,192,193,215,218],[126,175,192,193,195,215],[126,175,192,193,225],[126,134,175,192,193,225],[126,136,139,175,192,193,195,218],[126,131,132,135,138,175,186,192,193,207,218],[126,139,146,175,192,193],[126,131,137,175,192,193],[126,139,160,161,175,192,193],[126,135,139,175,192,193,210,218,225],[126,160,175,192,193,225],[126,133,134,175,192,193,225],[126,139,175,192,193],[126,133,134,135,136,137,138,139,140,141,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,161,162,163,164,165,166,175,192,193],[126,139,154,175,192,193],[126,139,146,147,175,192,193],[126,137,139,147,148,175,192,193],[126,138,175,192,193],[126,131,134,139,175,192,193],[126,139,143,147,148,175,192,193],[126,143,175,192,193],[126,137,139,142,175,192,193,218],[126,131,136,139,146,175,192,193],[126,175,192,193,207],[126,134,139,160,175,192,193,223,225],[126,175,192,193,266],[126,175,192,193,218,229,232,235,236],[126,175,192,193,207,218,232],[126,175,192,193,218,232,236],[126,175,192,193,226],[126,175,192,193,230],[126,175,190,192,193,218,228,229,232],[126,175,192,193,225,226],[126,175,192,193,195,218,228,232],[118,119,120,126,175,186,192,193,207,218,227,231],[126,175,192,193,232],[126,175,192,193,232,241,250],[119,126,175,192,193,230],[126,175,192,193,232,260,261],[119,126,175,192,193,210,218,225,227,232],[126,175,192,193,218,228,232],[118,126,175,192,193],[126,175,192,193,226,227,228,230,231,232,233,234,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,261,262,263,264,265],[126,175,183,192,193,232,253,256],[126,175,192,193,232,241,243,244],[126,175,192,193,230,232,243,245],[126,175,192,193,231],[119,126,175,192,193,226,232],[126,175,192,193,232,236,243,245],[126,175,192,193,236],[126,175,192,193,218,230,232,235],[119,126,175,192,193,228,232,241],[126,175,192,193,232,253],[126,175,192,193,245],[119,126,175,192,193,228,232,236],[126,175,192,193,210,223,225,226,232,260],[126,175,176,180,187,188,192,193,194,197,208,219],[58,63,64,65,126,175,192,193,323],[58,62,126,175,188,192,193,197],[58,63,64,126,175,188,192,193,196,197],[65,126,175,192,193],[63,64,65,126,175,192,193,322],[69,126,175,192,193],[126,175,192,193,296],[67,69,70,95,126,175,192,193,295,299,300,301],[126,175,192,193,295,299],[69,126,175,192,193,296],[66,68,126,175,192,193],[68,70,126,175,192,193],[68,69,126,175,192,193],[68,126,175,192,193],[68,69,70,126,175,192,193],[68,69,72,73,74,126,175,192,193],[68,69,72,126,175,192,193],[68,126,175,192,193,293],[68,69,70,72,73,74,75,76,77,78,79,80,126,175,192,193],[88,126,175,192,193],[67,68,69,70,71,73,80,81,83,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,126,175,192,193,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,318,319,320,321],[68,69,70,90,126,175,192,193],[68,69,70,71,73,74,80,81,82,83,84,85,87,89,91,92,93,94,126,175,192,193],[117,126,175,192,193,267,272],[68,69,70,95,126,175,192,193],[68,70,95,126,175,192,193],[70,126,175,192,193],[68,88,126,175,192,193],[68,126,175,192,193,289,290],[67,68,69,70,71,88,95,126,175,192,193],[126,175,192,193,290],[84,126,175,192,193],[68,69,98,126,175,192,193],[126,175,192,193,322],[69,104,108,109,110,111,126,175,192,193],[86,126,175,192,193],[69,88,126,175,192,193],[68,69,104,126,175,192,193],[69,95,126,175,192,193],[69,86,114,126,175,192,193],[69,70,95,126,175,192,193,295],[126,175,192,193,314],[126,175,192,193,313,314,315,316,317],[68,95,126,175,192,193,313,314],[68,95,126,175,192,193,313],[67,126,175,192,193]],"fileInfos":[{"version":"44e584d4f6444f58791784f1d530875970993129442a847597db702a073ca68c","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","impliedFormat":1},{"version":"6920e1448680767498a0b77c6a00a8e77d14d62c3da8967b171f1ddffa3c18e4","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"45d8ccb3dfd57355eb29749919142d4321a0aa4df6acdfc54e30433d7176600a","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true,"impliedFormat":1},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea011c76963fb15ef1cdd7ce6a6808b46322c527de2077b6cfdf23ae6f5f9ec7","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"1a94697425a99354df73d9c8291e2ecd4dddd370aed4023c2d6dee6cccb32666","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3f9fc0ec0b96a9e642f11eda09c0be83a61c7b336977f8b9fdb1e9788e925fe","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"479553e3779be7d4f68e9f40cdb82d038e5ef7592010100410723ceced22a0f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"d3d7b04b45033f57351c8434f60b6be1ea71a2dfec2d0a0c3c83badbb0e3e693","affectsGlobalScope":true,"impliedFormat":1},{"version":"956d27abdea9652e8368ce029bb1e0b9174e9678a273529f426df4b3d90abd60","affectsGlobalScope":true,"impliedFormat":1},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true,"impliedFormat":1},{"version":"e6633e05da3ff36e6da2ec170d0d03ccf33de50ca4dc6f5aeecb572cedd162fb","affectsGlobalScope":true,"impliedFormat":1},{"version":"15c1c3d7b2e46e0025417ed6d5f03f419e57e6751f87925ca19dc88297053fe6","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"caccc56c72713969e1cfe5c3d44e5bab151544d9d2b373d7dbe5a1e4166652be","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"5af41865aad63a76fdc9d7c6554f8474dca0a815a47159a99507183c56e9c924","signature":"cc81fc39567d6567a9a5e76efc8bd12e262f4b67db56e7ed8f847bf225c76c20","impliedFormat":99},{"version":"0410ed82a9ac63269dc1471ed249b280e2d461249a3a331e71cdb54cdf10db33","impliedFormat":1},{"version":"c9b9179b7291c8562eb0fb781219ddbdcf36149ebd7bd355e5b4a553d6b60b81","impliedFormat":1},{"version":"2806f6d7810fba0306066d500cd716a6d1128d90af2c3cf71723e3ea0a8904c4","impliedFormat":1},{"version":"7a8ec10b0834eb7183e4bfcd929838ac77583828e343211bb73676d1e47f6f01","impliedFormat":1},{"version":"9685e9ea5ea01ec8f5694cdb1b7e7bc1950850737fb40092b075fb5529a7f30d","signature":"c3c972a8e40d9ac6deb733ab6b2e8ea9092dfe175502aba93e71af8561d711c5","impliedFormat":99},{"version":"b522e3ca73222f3d8dc18dcbb285e7a46035373c5c9bfea6ce4eca73fb992d01","signature":"e46e31b2e551c01b4e224182354b30848ae8b5038eafc58db69a8642dd433347","impliedFormat":99},{"version":"cc4b91998540cfad70c9ded7a1aa7a5bbce699ff38565b0ec9cebf2789f342ac","signature":"48863d66cbb7a063e3215e08e18c47e50ddb7875fd379c8f4e3e8c0a6fa788d0","impliedFormat":99},{"version":"75ccf219ba588ecae28b0bda3e4f6c616efc15b4f5d4a8f031e62cec3376380f","impliedFormat":99},{"version":"5d1d1e34daf41834059faadf9dd8d07f85c3539c07bffd21eaf59e59e4d116b0","impliedFormat":99},{"version":"cda7287d2207ae087e49dcb5857b79369fe32ad9755a49c9a798fa99c3deb276","impliedFormat":99},{"version":"2f897c608cdf66403a42799ddcc156d049c2e9f345939eadc67bb506f735776d","impliedFormat":99},{"version":"d17315b7dbf4a3e92788a3038c2a8eb0907c33593d91def5c586c3b8aa23c3cd","impliedFormat":99},{"version":"7df53d0bbc4060a1c9693b0f2403092c39bf7ce90a474ac2781993f44dd5fd1b","impliedFormat":99},{"version":"6b3da4d38e607128ecc1a6d9d68626d31d86cc2964ed0fc0cb4e5d9c986c9f4e","impliedFormat":99},{"version":"9b34af8f25378cc9e24d90e056cd613c8c53d55d3a6fae39b1732b18d0491efc","impliedFormat":99},{"version":"2eb6c9a63f25dc74515d452ccc39b6864e091aaf4cb2d4b8f08ae6005fcaaa0f","impliedFormat":99},{"version":"6d3911ed1e3471b50f7ec05ea26ad19eb78b2756eb4fa5c2aff562f35dcb5a0b","impliedFormat":99},{"version":"bb7be024ba730a45d3853e3e0c70d0baed1e0dd008e808f012832f079a339ea3","impliedFormat":99},{"version":"adc066e0e3bffbacfdef585b8887bc30776cbc8da65ca23140216f3f7ff975cd","impliedFormat":99},{"version":"1f7ec3432987daa72378cdb208fe08806f90cd4337db16be8966e124264a54f6","impliedFormat":99},{"version":"7de2d5d496da81bda6d6fcd8421da1cb71f0ee0ac3d115ff1cb52f024f495feb","impliedFormat":99},{"version":"2eb8d5d9889589e735842e89ab63d947a4f0ce3be457f7a71dd44d74e42b6fc8","impliedFormat":99},{"version":"a41a4f0e3609d68b58c29d188a276926670bfe6c1c4f8fb275c958b547ee4dc3","impliedFormat":99},{"version":"e84668bf3f9aea0e5e72d80722b46c587f95708d0c8c5218088e357306bd01c1","impliedFormat":99},{"version":"0b93335ab461b233730b41ee99d2019563a5a9a819ccce963d7bfc05b7c1607a","impliedFormat":99},{"version":"b3e61b8c1abe1275507515d3d9f8fadbc3b1f418a520dbb050a4663409b42f25","impliedFormat":99},{"version":"4dcc9ba4fe42135a4b3db62b4287adab2a7ba707c51b3e77d7b7f6919d8c2868","impliedFormat":99},{"version":"7532f25bae912c2c9e31aceb89544adf90938e6a1331451a21d68ad1e0a985ba","impliedFormat":99},{"version":"d66dc84bd59d9b27d97fd2a819a0a2ff74a54dbd0bb381fa44bc67cf5a01805e","impliedFormat":99},{"version":"8a0fff90adc64c1485d9b61961184225369b5a74580a670df111570b29fec583","impliedFormat":99},{"version":"372ea24c0645c56204c1ed7ce24a92d99e7f1f071aae4edc3dc5f355ebdb7f16","impliedFormat":99},{"version":"d5e3eeb4f16547956c1e95c5190a1277ca06443e6dfa805243b927af636c0a30","impliedFormat":99},{"version":"5cb8d155d230e695fe0590ef05b964482c7111f2c9057b8695a6241ba7ba2e90","impliedFormat":99},{"version":"2cbe594fb0bbbe8e3eceb6a425dce5bc037cc2bf755859dda5396f92bf13e93a","impliedFormat":99},{"version":"cca72b5d27fdc8ba53b08d926ff5c405cddb716745cf7bf72e05c43d4a3ab9a1","impliedFormat":99},{"version":"feefbe14f36605525c4a5d34eec32301683095e0276b4d62f67a660c38ac5e06","impliedFormat":99},{"version":"c7b47a369c5c4880a7c961e8b6d03ac6c9d4a7900dac777f9e994ce1977d92c7","impliedFormat":99},{"version":"4f417da2a31da2bd8e254b3cef579d2b6264edd40aecfcf6a1916b09c6e3b9df","impliedFormat":99},{"version":"de22fcd79c7a1a4270879dd676a56b896e5d62a4a730474e17669e68049dc12b","impliedFormat":99},{"version":"3ae581ce2b7da28364a659ab8e364e4b0d83c94e011488f6239035c2ae8f4690","impliedFormat":99},{"version":"e8dbd6a432d4a543d2336247466c8ab695d4ccf9dd5bafbafced85c14ca60e84","impliedFormat":99},{"version":"84e42d3d8cc20de2848475daff6f105387fd6e202218fe0888f0389df7d136ba","impliedFormat":99},{"version":"16b9f9577d8fb1d2e46d8cd5a5100781bea358285951982cf682ce343dca22e5","impliedFormat":99},{"version":"70857137ec413cedf8e7b2c504547219641e8488ebc544f9f7fb94c022ab0163","impliedFormat":99},{"version":"726f4e7ff1bc73859864279c58517f813fb8e215595f87f1400ff662dd3cd41b","impliedFormat":99},{"version":"9f21da7f2735db98de3df51d2aaee76727d7f9cb63080865bee8fbdfc3ef8aec","impliedFormat":99},{"version":"cd2bc5c0357c9984e5f82402986af1be811cb4f2245a84ee48be8e7692ec6963","impliedFormat":99},{"version":"b71a8995b7c639ff717d0b09479bc6e2fe4c5763926b3461344b0edddd8a1447","impliedFormat":99},{"version":"0858329fdaba3220e3c62073f0b86ee99dc86a334c37fbad58b1dfc17584603a","impliedFormat":99},{"version":"0cdc3d16ec8b2c4333749a5aac459e0772a2c0988637302b9df6bf9b278ae0bd","impliedFormat":99},{"version":"3e47f8d48587fa6220fbc2d76e85337d34200662806fc8786f86e6275d0eab5f","impliedFormat":99},{"version":"f5abed8212e54dd9095a3aff7cc86cdd171a86483efa6af9714b96e0f67714fa","impliedFormat":99},{"version":"5e2b78437f4a09bedc9e05d9376e85b01a550392826cd9b58de040d5fc2bd36c","impliedFormat":99},{"version":"8e2a0ca7dcceedcb92b9eb0c225b5f2534d570ab32f4af47ed003c36a665a105","impliedFormat":99},{"version":"6263a318b49560aaf031d9a98876f5fa7a23255b7801de5c28c3f256cce9bca6","impliedFormat":99},{"version":"56c2453c5858677e5fd96855feb093854cff384eebc63ac12e795c4be0cb0dd7","impliedFormat":99},{"version":"2098b1d6e33bbc465d3b96c97b7cd4ca565a5f394551b9b22cc5766db27a1c90","impliedFormat":99},{"version":"248e8fc772412f851ef9d28d0eed4885a55cb9e417809690ecf687daecd8f2fa","impliedFormat":99},{"version":"1d6e160ec4779cf370e5b9b617eecf650017fb1cfb3cf8cabc722b7b3514b1e1","impliedFormat":99},{"version":"cdcf9ea426ad970f96ac930cd176d5c69c6c24eebd9fc580e1572d6c6a88f62c","impliedFormat":1},{"version":"88809d6c1b9c78d04a133646a6feb926def05a8774c308c7c93bc32ee163d271","impliedFormat":1},{"version":"156a859e21ef3244d13afeeba4e49760a6afa035c149dda52f0c45ea8903b338","impliedFormat":1},{"version":"6c7176368037af28cb72f2392010fa1cef295d6d6744bca8cfb54985f3a18c3e","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"437e20f2ba32abaeb7985e0afe0002de1917bc74e949ba585e49feba65da6ca1","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"1456e80bd8a3870034d89f91bd7df12ac29acfb083e31c0bb1fb38ca7bf5fbc2","affectsGlobalScope":true,"impliedFormat":1},{"version":"a98aedd64ad81793f146d36d1611ed9ba61b8b49ff040f0d13a103ed626595d9","affectsGlobalScope":true,"impliedFormat":1},{"version":"808069bba06b6768b62fd22429b53362e7af342da4a236ed2d2e1c89fcca3b4a","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"f26b11d8d8e4b8028f1c7d618b22274c892e4b0ef5b3678a8ccbad85419aef43","affectsGlobalScope":true,"impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"763fe0f42b3d79b440a9b6e51e9ba3f3f91352469c1e4b3b67bfa4ff6352f3f4","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"7f182617db458e98fc18dfb272d40aa2fff3a353c44a89b2c0ccb3937709bfb5","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"b52476feb4a0cbcb25e5931b930fc73cb6643fb1a5060bf8a3dda0eeae5b4b68","affectsGlobalScope":true,"impliedFormat":1},{"version":"f9501cc13ce624c72b61f12b3963e84fad210fbdf0ffbc4590e08460a3f04eba","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d97fb21da858fb18b8ae72c314e9743fd52f73ebe2764e12af1db32fc03f853f","affectsGlobalScope":true,"impliedFormat":1},{"version":"0fa06ada475b910e2106c98c68b10483dc8811d0c14a8a8dd36efb2672485b29","impliedFormat":1},{"version":"33e5e9aba62c3193d10d1d33ae1fa75c46a1171cf76fef750777377d53b0303f","impliedFormat":1},{"version":"2b06b93fd01bcd49d1a6bd1f9b65ddcae6480b9a86e9061634d6f8e354c1468f","impliedFormat":1},{"version":"6a0cd27e5dc2cfbe039e731cf879d12b0e2dded06d1b1dedad07f7712de0d7f4","affectsGlobalScope":true,"impliedFormat":1},{"version":"13f5c844119c43e51ce777c509267f14d6aaf31eafb2c2b002ca35584cd13b29","impliedFormat":1},{"version":"e60477649d6ad21542bd2dc7e3d9ff6853d0797ba9f689ba2f6653818999c264","impliedFormat":1},{"version":"c2510f124c0293ab80b1777c44d80f812b75612f297b9857406468c0f4dafe29","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"4c829ab315f57c5442c6667b53769975acbf92003a66aef19bce151987675bd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"b2ade7657e2db96d18315694789eff2ddd3d8aea7215b181f8a0b303277cc579","impliedFormat":1},{"version":"78dbea00e90d2df8ea3dbef0cc379d95b8be9b71cd6bde4c28728f306811803b","impliedFormat":1},{"version":"4d631b81fa2f07a0e63a9a143d6a82c25c5f051298651a9b69176ba28930756d","impliedFormat":1},{"version":"836a356aae992ff3c28a0212e3eabcb76dd4b0cc06bcb9607aeef560661b860d","impliedFormat":1},{"version":"1e0d1f8b0adfa0b0330e028c7941b5a98c08b600efe7f14d2d2a00854fb2f393","impliedFormat":1},{"version":"41670ee38943d9cbb4924e436f56fc19ee94232bc96108562de1a734af20dc2c","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e1e46d0a9837ee058c100501080c920fa98081ea3956af0374308ba6f22a33e","impliedFormat":1},{"version":"272ca407e0c9068bdc5152552d876e68037ceae3de62e529306403e973dec8e1","impliedFormat":1},{"version":"fa7834c715d5357e4540cee40ce96c3250ddb67a7b879a6b7fa0e86d6696f121","impliedFormat":1},{"version":"22dfb07a7ab15b66ac043829056fe70124844636ae719551812ac631ba04985b","impliedFormat":1},{"version":"a10f0e1854f3316d7ee437b79649e5a6ae3ae14ffe6322b02d4987071a95362e","impliedFormat":1},{"version":"e208f73ef6a980104304b0d2ca5f6bf1b85de6009d2c7e404028b875020fa8f2","impliedFormat":1},{"version":"d163b6bc2372b4f07260747cbc6c0a6405ab3fbcea3852305e98ac43ca59f5bc","impliedFormat":1},{"version":"e6fa9ad47c5f71ff733744a029d1dc472c618de53804eae08ffc243b936f87ff","affectsGlobalScope":true,"impliedFormat":1},{"version":"a6f137d651076822d4fe884287e68fd61785a0d3d1fdb250a5059b691fa897db","impliedFormat":1},{"version":"24826ed94a78d5c64bd857570fdbd96229ad41b5cb654c08d75a9845e3ab7dde","impliedFormat":1},{"version":"8b479a130ccb62e98f11f136d3ac80f2984fdc07616516d29881f3061f2dd472","impliedFormat":1},{"version":"928af3d90454bf656a52a48679f199f64c1435247d6189d1caf4c68f2eaf921f","affectsGlobalScope":true,"impliedFormat":1},{"version":"bceb58df66ab8fb00170df20cd813978c5ab84be1d285710c4eb005d8e9d8efb","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f16a7e4deafa527ed9995a772bb380eb7d3c2c0fd4ae178c5263ed18394db2c","impliedFormat":1},{"version":"933921f0bb0ec12ef45d1062a1fc0f27635318f4d294e4d99de9a5493e618ca2","impliedFormat":1},{"version":"71a0f3ad612c123b57239a7749770017ecfe6b66411488000aba83e4546fde25","impliedFormat":1},{"version":"77fbe5eecb6fac4b6242bbf6eebfc43e98ce5ccba8fa44e0ef6a95c945ff4d98","impliedFormat":1},{"version":"4f9d8ca0c417b67b69eeb54c7ca1bedd7b56034bb9bfd27c5d4f3bc4692daca7","impliedFormat":1},{"version":"0cb167c371eaa8c869f8a7656a7296f2e4fae43b4d8b803a680236b24794e5f9","impliedFormat":1},{"version":"0a839dba0287cc0481ad4beedd48a1c64acf1e212ae865d1315f7007ca215161","impliedFormat":1},{"version":"38dc4655376cd1a4bd6bb3763d92949233e33d38d3dd3cbea7bbf218175a38ef","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"45650f47bfb376c8a8ed39d4bcda5902ab899a3150029684ee4c10676d9fbaee","impliedFormat":1},{"version":"d61e0a64cd175208ac0b83670151a9a6b5916f0d1ffcdc5c29c90b1cebfc5045","affectsGlobalScope":true,"impliedFormat":1},{"version":"18fd40412d102c5564136f29735e5d1c3b455b8a37f920da79561f1fde068208","impliedFormat":1},{"version":"48a679952eefe4cb776d5a0e1ccba2d3eb53b57448bbb7abc1fcebcbd5440188","impliedFormat":1},{"version":"f0be1b8078cd549d91f37c30c222c2a187ac1cf981d994fb476a1adc61387b14","affectsGlobalScope":true,"impliedFormat":1},{"version":"0aaed1d72199b01234152f7a60046bc947f1f37d78d182e9ae09c4289e06a592","impliedFormat":1},{"version":"2d14da6ecb49bf828d83948765ec2d3a579d476bbb9645e749610baa6ec880ca","impliedFormat":1},{"version":"66ba1b2c3e3a3644a1011cd530fb444a96b1b2dfe2f5e837a002d41a1a799e60","impliedFormat":1},{"version":"7e514f5b852fdbc166b539fdd1f4e9114f29911592a5eb10a94bb3a13ccac3c4","impliedFormat":1},{"version":"5b7aa3c4c1a5d81b411e8cb302b45507fea9358d3569196b27eb1a27ae3a90ef","affectsGlobalScope":true,"impliedFormat":1},{"version":"5987a903da92c7462e0b35704ce7da94d7fdc4b89a984871c0e2b87a8aae9e69","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea08a0345023ade2b47fbff5a76d0d0ed8bff10bc9d22b83f40858a8e941501c","impliedFormat":1},{"version":"0aef708fb4c7a6b915e8305cbfac40cd207b032dbaabe9a01889a5fff3254681","impliedFormat":1},{"version":"ae062ce7d9510060c5d7e7952ae379224fb3f8f2dd74e88959878af2057c143b","impliedFormat":1},{"version":"ad9bdafb4e7abf14cc53ce7970486a84c87831e62891e5dfe798ddcd55e84701","affectsGlobalScope":true,"impliedFormat":1},{"version":"358765d5ea8afd285d4fd1532e78b88273f18cb3f87403a9b16fef61ac9fdcfe","impliedFormat":1},{"version":"7844b611e67ef2810e907f479dd21c3ffada87473c07602b356af988d43ba290","impliedFormat":1},{"version":"21d7fab00c101ddf754b392e11534e6b20c6bda269b2ccbcdf3453cbe21d8a39","impliedFormat":1},{"version":"615754924717c0b1e293e083b83503c0a872717ad5aa60ed7f1a699eb1b4ea5c","impliedFormat":1},{"version":"d3c85d4dde1a4918009e37426ee4a940cbbd4100e2e74d03e2de0d50a77bb488","impliedFormat":1},{"version":"68834d631c8838c715f225509cfc3927913b9cc7a4870460b5b60c8dbdb99baf","impliedFormat":1},{"version":"31565af30d473f1ca4f07dedea47cec3d9562ce6d970fd738802715162fbc5ab","impliedFormat":1},{"version":"a712be2c8cbe0154bd17d1d7bff503d7c04331e0745eb9eea3d303e0e5d9401e","impliedFormat":1},{"version":"25bd6ae1b97ea991433337310fc406cc7c9f271b67b7c79dd24eee384759f3d4","impliedFormat":1},{"version":"ea6bc8de8b59f90a7a3960005fd01988f98fd0784e14bc6922dde2e93305ec7d","impliedFormat":1},{"version":"36107995674b29284a115e21a0618c4c2751b32a8766dd4cb3ba740308b16d59","impliedFormat":1},{"version":"914a0ae30d96d71915fc519ccb4efbf2b62c0ddfb3a3fc6129151076bc01dc60","impliedFormat":1},{"version":"38004e6801340cb890afb8cb5a9fc8972297e7f88ab94026e4b0b3c61fb32f8a","impliedFormat":1},{"version":"4ca7fb8f6018ea836b1ad24f67d5e7c2cf7410af7462e0ccc90b012944f5d7ae","impliedFormat":1},{"version":"4d327f7d72ad0918275cea3eee49a6a8dc8114ae1d5b7f3f5d0774de75f7439a","impliedFormat":1},{"version":"149f9a9e7f04e67afa0e2a49fc0ff421035c01d6b793cfcae7d2e9f6819431e2","impliedFormat":1},{"version":"e8a9dfa4c75ef6d25df8b40eaa9c31e0a69452aaf2ced4a3f4215dbdbaa876f4","impliedFormat":1},{"version":"a70af845a2eb9dd6e2723e319e14ea7fb28b129ec1361c21509b49305448c323","impliedFormat":1},{"version":"b53dc572d4f187904207ae1166652de47aab8eeb00c254d009cb226863076b56","impliedFormat":1},{"version":"57354d2f022ed64ede57b2e052306dd076a138b551abc7d30ef5e6718ce2f76a","impliedFormat":1},{"version":"0b6e25234b4eec6ed96ab138d96eb70b135690d7dd01f3dd8a8ab291c35a683a","impliedFormat":1},{"version":"9666f2f84b985b62400d2e5ab0adae9ff44de9b2a34803c2c5bd3c8325b17dc0","impliedFormat":1},{"version":"40cd35c95e9cf22cfa5bd84e96408b6fcbca55295f4ff822390abb11afbc3dca","impliedFormat":1},{"version":"b1616b8959bf557feb16369c6124a97a0e74ed6f49d1df73bb4b9ddf68acf3f3","impliedFormat":1},{"version":"f501234c5aeeeb5d7659412335227466aaacf30b952372d60afeb21c02c96348","impliedFormat":1},{"version":"40b463c6766ca1b689bfcc46d26b5e295954f32ad43e37ee6953c0a677e4ae2b","impliedFormat":1},{"version":"358f74dc35927dc88ea86dd201a2b98e701c281615e6b30a4c153eb0bb90ef71","impliedFormat":1},{"version":"8b91ff5bb912be3ea213cbcf0075aace1f5d4ff249a0d227ed673868cb7bfabc","impliedFormat":1},{"version":"80aae6afc67faa5ac0b32b5b8bc8cc9f7fa299cff15cf09cc2e11fd28c6ae29e","impliedFormat":1},{"version":"f473cd2288991ff3221165dcf73cd5d24da30391f87e85b3dd4d0450c787a391","impliedFormat":1},{"version":"499e5b055a5aba1e1998f7311a6c441a369831c70905cc565ceac93c28083d53","impliedFormat":1},{"version":"8aee8b6d4f9f62cf3776cda1305fb18763e2aade7e13cea5bbe699112df85214","impliedFormat":1},{"version":"98498b101803bb3dde9f76a56e65c14b75db1cc8bec5f4db72be541570f74fc5","impliedFormat":1},{"version":"706abfbafe0ed5f685357375e89bbf48879549ea1772185d77d15f587c5c9400","impliedFormat":1},{"version":"5d0375ca7310efb77e3ef18d068d53784faf62705e0ad04569597ae0e755c401","impliedFormat":1},{"version":"013ff793053d33a15be4614efdd6c50247bbf0b26d6bc58ba338622a7441b543","impliedFormat":1},{"version":"addf417b9eb3f938fddf8d81e96393a165e4be0d4a8b6402292f9c634b1cb00d","impliedFormat":1},{"version":"436d7b4543b340b0f3eef4310d524242e41369b9652aa9c70428767c4dcac455","impliedFormat":1},{"version":"adf27937dba6af9f08a68c5b1d3fce0ca7d4b960c57e6d6c844e7d1a8e53adae","impliedFormat":1},{"version":"12950411eeab8563b349cb7959543d92d8d02c289ed893d78499a19becb5a8cc","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"e99963ae1e3a48ca7a7958c02f3e88bb963eb7978c28b68ae6b8c9f03309d83c","impliedFormat":1},{"version":"b3fb72492a07a76f7bfa29ecadd029eea081df11512e4dfe6f930a5a9cb1fb75","impliedFormat":1},{"version":"d7c7fd205f57abd1705b98d7f4b47b1dd8f256a3c9a98efb872d75ef27e9e59e","impliedFormat":1},{"version":"407c3e1ea5aef8aadab1780651e4f2281a6382aa81db218f589af5ac3abc6cab","impliedFormat":1},{"version":"aa7e6b64b597c32a65662e0b455e641748ab4ecc71aa31e4c8ad0678ca65bc5a","impliedFormat":1},{"version":"8ef8425c7726a1bd5ab733fb1c8f682b5c116f7b1cf0a1a20bfaf6e6e368b459","impliedFormat":1},{"version":"8662316c8af1510a144b2389df2b2f271087cc23dbd8e1491dbc41549fd6ffc8","impliedFormat":1},{"version":"71ac8e3cc31d73d6f1648f5754ef7925e857a76b48dd6034e78378dd2179c813","impliedFormat":99},{"version":"0ece31c9ad6344cbf179365148372019c5552f4c29eb5f0f53308d05e8fd4a3e","impliedFormat":99},{"version":"82d509bb0cc9cb39753b183ed50f2c9e5ebbeaa14b069bbf1cd842c0901d19bb","impliedFormat":99},{"version":"a0224424f845e7b68ddb7abd8cb8b504219520967cabb6b04e507b45f8034707","impliedFormat":99},{"version":"194c7497f405a1c93bd0c682af478d93bd53a02a2f65782067922e6dcb01f2f9","impliedFormat":99},{"version":"06e8496ba56815ee3358911744633a92f305f94a4c4048ae8e982866b2361aa5","impliedFormat":99},{"version":"1ff8c6233e76093d5d59b10c834e8c9ffe399f274eceb4afd7e7a6a8a3090cb2","impliedFormat":99},{"version":"975509359fe68f339caad4f61e8b39c1de346d1eab3d47e794b49240010a6b3f","impliedFormat":99},{"version":"a6621750815dbacf4bd3f503c7a64b512f7d1d73e5154a00fdee1356f6613fa8","impliedFormat":99},{"version":"0b5baf7f9f447ab497b7cbec9eaaf9bcbf5a4d141ba02c80ffd0d4e4f41ae1ab","impliedFormat":99},{"version":"aa883a6507586c09e3a237c80da47a58e2464d74c4638dfa0d18611c45f912c9","impliedFormat":99},{"version":"422dca25be28fb7eabf2f2144cd0c5b40233923f3c00fa4845fafe40c950759d","impliedFormat":99},{"version":"e4763684f95bd3a169218de543e9387c2c7d548d1a736ae8b9b9c2208a17e4d4","impliedFormat":99},{"version":"dce5e6978dd1ba17ccc0c27569dd94811f58ca60d47d54d5697a2468a631f5e7","impliedFormat":99},{"version":"c266007aff35ee1ffd9041287524f41b0ee3c513a6f39349e66e9244170d63ef","impliedFormat":99},{"version":"4e174918834b27d06df15bcc0e7ecd7cd7444609d4192659f908591a8a50d621","impliedFormat":99},{"version":"8b38f10223c9801f5811d2b8339dbc89c587447ebdf95a584c3095f518dd2def","impliedFormat":99},{"version":"3ac5513b02011fb368e43c047911874269b219c69e202c10944403f2dca61c26","impliedFormat":99},{"version":"be4e74fabb18246b624e757cb4796979685c695670d83abc28c9ec5673b64ae5","impliedFormat":99},{"version":"c95808c33190b33281acf9685bbfea0982f899752133aba5ee6bd3196867d002","impliedFormat":99},{"version":"1d56ffd36f45095e3210ee3704ed98ff1ffa8462f9e61532f7df75b15affcc25","impliedFormat":99},{"version":"124a13002c1746cf82314cbcf646308d007067c766316eaa6acd35175f749046","impliedFormat":99},{"version":"15e72108440034633c409cc9da041bbfff2b41be22494eeeb864232d4cdf08ec","impliedFormat":99},{"version":"7be98be5a624092bcd8ff34103b859753c451d096525b99a0a6248ab8b95a890","impliedFormat":99},{"version":"d7c54ba628a9cc4cc39ef2ab7737b4e0752b0fd03eab038194b41c2471d158ed","impliedFormat":99},{"version":"32173d7d36a46ff93e3d3759f3108576c050fe004aebf5785f9b06a105f4a914","impliedFormat":99},{"version":"ac9770eb364159e60e16faa02dcf397572c4d63bbf422277401c57817aa4e9ea","impliedFormat":99},{"version":"f06ab91ec16f99f7cd0ebc0a3bbadf5878d5c13570c9c0d641a5111632d0ae98","impliedFormat":99},{"version":"60bbba6faa9666898a1a3a6cffb55e3e4433454a21401a107fbfa25190a6466d","impliedFormat":99},{"version":"17b536eda8a4f1d784cbc28ae2de7dc56d56908eaae6b190766639ed998e08cf","impliedFormat":99},{"version":"de56f56921542244c6c8d378a184f33431ee189f1984477d4a33847d1c5efcab","impliedFormat":99},{"version":"7609c1ef716fbffeadfa9145aa068bc5fee6d5484bd5f779ff9817a62da08f8d","impliedFormat":99},{"version":"cca8434800ee84f60b45b75fcccebfdbeed41106b8ed08170552e37446707f13","impliedFormat":99},{"version":"4f3932801c00e1339b18462b9cd12d44ffb124325d424dd64a33fa84a9cab776","impliedFormat":99},{"version":"94b8e574e8546864b120f16e1a6cb20e7ab48c9c20050564541ef4d85558ff6c","impliedFormat":99},{"version":"bccc431e910d0793e72a9aa239b76434aa414f2938ef7eb0fff0449915a8dffa","impliedFormat":99},{"version":"8f4b51644bd3423b56eda2a291bfa6e3b63b4461c61d7619c86de3e8f63b4edc","impliedFormat":99},{"version":"00154690b05e136ce79b83833d891be4d8ddeaf2c04f6b71b54c1b459debdc8e","impliedFormat":99},{"version":"8a5eb679de42f60c0dcd97506bb381aa93bc90f186cab80bade3918560152128","impliedFormat":99},{"version":"aa87aa5df10349aa1fafc40c19d9cee9e18792729e43e0936e99adcc22ca14c3","impliedFormat":99},{"version":"1a3f191806518eae32dd85c9db428f44e2c2c341cf3927f123fb9048d4f3d376","impliedFormat":99},{"version":"fb9cc84cca0f31ddae851eaf63bacb8d4e333d7703af4b34b645976195045a02","impliedFormat":99},{"version":"d15f88c4d2eb310ecd0ea23d13f2344bb0f1ca96dc200656875e77cbc4a29bff","impliedFormat":99},{"version":"07dd3ccd16ceea266f26f0b3cdbcb4a1ae248abd3b159eeb6480226a84154291","impliedFormat":99},{"version":"50e737de288c9f56244a53f0557a12d85be04a5d85d4e83622676a758e9f87ba","impliedFormat":99},{"version":"6efe34fb69b0d04624f6b014243964f57df9c169cf98e95d67fc7d2d11e9c308","impliedFormat":99},{"version":"55055ae3dc34856abe4388a7377330da4f66d423c31693d348f22b3f4465d097","impliedFormat":99},{"version":"1b0a007fd32ca35cbbc6e3512264d9e0dfa4e43f8491f54fc52322cf2ae19e53","impliedFormat":99},{"version":"cf8919f5f8721c8eccd3b471948854f32ec4be68360f5ba9d5176c5d1a0908b2","impliedFormat":99},{"version":"1e0335332f0e2108968d2175610386b1374482c9b2fb7e6c639bfb8bac6758d5","impliedFormat":99},{"version":"74a4d4ef06e161462bb33a86465d858077558069f56909f4c430c90957ba19a1","signature":"033bf8adb9140a253b00ffb5005a384044735a1534bdda64bec8005e3af1712b","impliedFormat":99},{"version":"b1f695389880cddd932eb9bdb936b5350aa4273b7c1506ef692aba34dd01ddbe","signature":"bc0da313de92e58a07e1d95f6189f5385101a3acdf6f723ee3b4b2423abc4494","impliedFormat":99}],"root":[58,[63,65],323,324],"options":{"composite":true,"declaration":true,"declarationMap":true,"esModuleInterop":true,"exactOptionalPropertyTypes":false,"module":199,"noFallthroughCasesInSwitch":true,"noImplicitOverride":true,"noUncheckedIndexedAccess":true,"outDir":"./","rootDir":"../src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":9,"tsBuildInfoFile":"./.tsbuildinfo","verbatimModuleSyntax":false},"referencedMap":[[172,1],[173,1],[174,2],[175,3],[176,4],[177,5],[121,6],[124,7],[122,6],[123,6],[178,8],[179,9],[180,10],[181,11],[182,12],[183,13],[184,13],[185,14],[186,15],[187,16],[188,17],[127,6],[189,18],[190,19],[191,20],[192,21],[193,6],[194,22],[195,23],[196,24],[197,25],[198,26],[199,27],[200,28],[201,29],[202,30],[203,30],[204,31],[205,6],[206,32],[207,33],[209,34],[208,35],[210,36],[211,37],[212,38],[213,39],[214,40],[215,41],[216,42],[126,43],[125,6],[225,44],[217,45],[218,46],[219,47],[220,48],[221,49],[222,50],[128,6],[129,6],[130,6],[168,51],[169,6],[170,6],[171,36],[223,52],[224,53],[272,54],[62,55],[59,6],[60,55],[61,56],[270,57],[268,58],[269,59],[271,60],[56,6],[57,6],[11,6],[10,6],[2,6],[12,6],[13,6],[14,6],[15,6],[16,6],[17,6],[18,6],[19,6],[3,6],[20,6],[4,6],[21,6],[25,6],[22,6],[23,6],[24,6],[26,6],[27,6],[28,6],[5,6],[29,6],[30,6],[31,6],[32,6],[6,6],[36,6],[33,6],[34,6],[35,6],[37,6],[7,6],[38,6],[43,6],[44,6],[39,6],[40,6],[41,6],[42,6],[8,6],[48,6],[45,6],[46,6],[47,6],[49,6],[9,6],[50,6],[51,6],[52,6],[55,6],[53,6],[54,6],[1,6],[146,61],[156,62],[145,61],[166,63],[137,64],[136,65],[165,66],[159,67],[164,68],[139,69],[153,70],[138,71],[162,72],[134,73],[133,66],[163,74],[135,75],[140,76],[141,6],[144,76],[131,6],[167,77],[157,78],[148,79],[149,80],[151,81],[147,82],[150,83],[160,66],[142,84],[143,85],[152,86],[132,87],[155,78],[154,76],[158,6],[161,88],[267,89],[241,90],[255,91],[238,92],[256,87],[265,93],[229,94],[230,95],[228,65],[264,66],[259,96],[263,97],[232,98],[242,99],[252,100],[231,101],[262,102],[226,103],[227,96],[233,99],[234,6],[240,104],[237,99],[119,105],[266,106],[257,107],[245,108],[244,99],[246,109],[249,110],[243,111],[247,112],[260,66],[235,113],[236,114],[250,115],[120,87],[254,116],[253,99],[239,114],[248,117],[251,118],[258,6],[118,6],[261,119],[58,120],[324,121],[63,122],[65,123],[64,124],[323,125],[301,6],[296,126],[298,127],[302,128],[300,129],[297,130],[303,6],[299,6],[66,6],[67,131],[274,132],[293,6],[80,133],[76,133],[72,126],[78,134],[74,135],[79,134],[98,6],[75,136],[77,137],[294,138],[81,139],[83,134],[286,140],[322,141],[91,142],[90,6],[84,6],[95,143],[321,6],[70,133],[117,6],[273,144],[111,134],[277,6],[312,145],[304,146],[309,126],[93,147],[292,148],[284,6],[283,6],[285,6],[289,6],[88,134],[291,149],[287,148],[71,133],[96,6],[94,6],[295,150],[319,6],[320,151],[82,134],[288,152],[69,134],[107,126],[99,153],[103,126],[306,154],[97,133],[113,155],[108,6],[87,156],[278,126],[279,126],[114,147],[86,6],[310,126],[89,157],[308,126],[102,126],[280,6],[276,126],[105,158],[104,6],[275,159],[101,126],[100,133],[116,6],[115,160],[307,126],[305,161],[290,126],[281,126],[282,126],[106,6],[112,155],[110,6],[313,6],[316,162],[318,163],[317,164],[315,162],[314,165],[109,6],[92,6],[85,134],[68,166],[311,6],[73,134]],"latestChangedDtsFile":"./tools.d.ts","version":"5.6.3"}
@@ -0,0 +1,61 @@
1
+ /** The wudao browser home layout root: <home>/browser (home default
2
+ * ~/.wudao-desktop — the desktop app's data dir, deliberately outside every
3
+ * repo and outside the dmg). */
4
+ export declare const browserRoot: (homeDir: string) => string;
5
+ /** Whitelist one path segment we join into a filesystem path (build ids,
6
+ * revision dirs): alphanumerics plus . _ -, never empty, never a traversal
7
+ * or absolute-adjacent form. Fail-closed → null. */
8
+ export declare function safeSegment(segment: string): string | null;
9
+ /** The pinned chromium build out of a browsers.json payload (playwright-core
10
+ * 1.63 shape: {browsers: [{name, revision, browserVersion, checksum?}]}).
11
+ * Fail-closed null on any malformed shape. checksum is optional — 1.63
12
+ * ships none, and the verify step is skipped exactly then. */
13
+ export declare function chromiumBuildFromBrowsersJson(json: unknown): {
14
+ revision: string;
15
+ browserVersion: string;
16
+ checksum?: string;
17
+ } | null;
18
+ /** The Chrome-for-Testing CDN URL for this host (v1 macOS only — off-mac is
19
+ * null and the caller reports the honest preparation sentence). */
20
+ export declare function chromiumDownloadUrl(browserVersion: string, platform: NodeJS.Platform, arch: string): string | null;
21
+ /** The registry-layout install plan (mirrors playwright's own
22
+ * ms-playwright layout so PLAYWRIGHT_BROWSERS_PATH=~/.wudao-desktop/browser
23
+ * sees exactly our download). v1 macOS; null elsewhere. */
24
+ export declare function installLayout(homeDir: string, revision: string, platform: NodeJS.Platform, arch: string): {
25
+ installDir: string;
26
+ executablePath: string;
27
+ topSegment: string;
28
+ } | null;
29
+ /** Zip-slip guard: the staged extraction must contain EXACTLY the expected
30
+ * top-level directory(ies) — real directories, no symlinks, no stray files,
31
+ * never empty. An archive that wrote anywhere else (or tried to escape via
32
+ * ../entries leaving junk beside the expected tree) fails here. */
33
+ export declare function validateStaging(stagingDir: string, allowedTop: readonly string[]): Promise<boolean>;
34
+ /** The seams ensureChromiumDownloaded honors (all injectable; defaults are
35
+ * the real network/unzip/hash). */
36
+ export interface DownloadOptions {
37
+ readonly homeDir: string;
38
+ /** browsers.json payload; default: playwright-core's real one. */
39
+ readonly browsersJson?: unknown;
40
+ readonly platform?: NodeJS.Platform;
41
+ readonly arch?: string;
42
+ readonly fetchImpl?: typeof fetch;
43
+ /** default: the system `unzip` binary */
44
+ readonly runUnzip?: (zipPath: string, destDir: string) => Promise<void>;
45
+ /** default: sha256 hex of the file */
46
+ readonly hashImpl?: (file: string) => Promise<string>;
47
+ readonly log?: (line: string) => void;
48
+ }
49
+ /** v1 macOS honest error: names the posture and the way out (one sentence,
50
+ * model-facing). */
51
+ export declare function kernelUnavailableError(reason: string): Error;
52
+ /** First-use download + install (idempotent: an already-installed kernel is
53
+ * probed FIRST and short-circuits the network entirely). Throws the honest
54
+ * kernelUnavailableError on any failure, after wiping all half-done state. */
55
+ export declare function ensureChromiumDownloaded(opts: DownloadOptions): Promise<{
56
+ readonly executablePath: string;
57
+ }>;
58
+ /** The runtime's probe: the installed kernel's executable, or null (the
59
+ * resolver then falls to the registry / download lanes). */
60
+ export declare function installedExecutablePath(homeDir: string, platform?: NodeJS.Platform, arch?: string): Promise<string | null>;
61
+ //# sourceMappingURL=download.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"download.d.ts","sourceRoot":"","sources":["../src/download.ts"],"names":[],"mappings":"AAoBA;;iCAEiC;AACjC,eAAO,MAAM,WAAW,YAAa,MAAM,KAAG,MAAkC,CAAC;AAEjF;;qDAEqD;AACrD,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI1D;AAED;;;+DAG+D;AAC/D,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,OAAO,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAiBnI;AAKD;oEACoE;AACpE,wBAAgB,mBAAmB,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKlH;AAED;;4DAE4D;AAC5D,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,CAAC,QAAQ,EACzB,IAAI,EAAE,MAAM,GACX;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAU3E;AAED;;;oEAGoE;AACpE,wBAAsB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAiBzG;AAED;oCACoC;AACpC,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,kEAAkE;IAClE,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IACpC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IAClC,yCAAyC;IACzC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxE,sCAAsC;IACtC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACtD,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC;AAuBD;qBACqB;AACrB,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAI5D;AAED;;+EAE+E;AAC/E,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC;IAAE,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;CAAE,CAAC,CAiDlH;AAED;6DAC6D;AAC7D,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,MAAM,CAAC,QAA2B,EAC5C,IAAI,GAAE,MAAqB,GAC1B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAOxB"}
@@ -0,0 +1,217 @@
1
+ // ω99-112 — first-use Chromium kernel download (v1 macOS). Reads the build
2
+ // pin (revision + browserVersion + optional checksum) straight out of
3
+ // playwright-core's own browsers.json, streams the kernel zip from the
4
+ // playwright CDN into ~/.wudao-desktop/browser/downloads/, unzips into a
5
+ // staging dir, validates the extracted layout (whitelist, zip-slip guard),
6
+ // hashes when browsers.json carries a checksum, then renames the staging dir
7
+ // into its final registry-layout home ATOMICALLY. No resume support in v1 —
8
+ // a failed attempt wipes its half-done state and the next call starts over
9
+ // (documented debt; the kernel is one ~150MB file, retries are cheap).
10
+ import { createHash } from "node:crypto";
11
+ import { execFile } from "node:child_process";
12
+ import { createReadStream, createWriteStream } from "node:fs";
13
+ import { lstat, mkdir, readFile, readdir, rename, rm, stat } from "node:fs/promises";
14
+ import { createRequire } from "node:module";
15
+ import { dirname, join } from "node:path";
16
+ import { pipeline } from "node:stream/promises";
17
+ import { promisify } from "node:util";
18
+ const execFileP = promisify(execFile);
19
+ /** The wudao browser home layout root: <home>/browser (home default
20
+ * ~/.wudao-desktop — the desktop app's data dir, deliberately outside every
21
+ * repo and outside the dmg). */
22
+ export const browserRoot = (homeDir) => join(homeDir, "browser");
23
+ /** Whitelist one path segment we join into a filesystem path (build ids,
24
+ * revision dirs): alphanumerics plus . _ -, never empty, never a traversal
25
+ * or absolute-adjacent form. Fail-closed → null. */
26
+ export function safeSegment(segment) {
27
+ if (segment === "" || segment === "." || segment === "..")
28
+ return null;
29
+ if (!/^[A-Za-z0-9][A-Za-z0-9._-]*$/.test(segment))
30
+ return null;
31
+ return segment;
32
+ }
33
+ /** The pinned chromium build out of a browsers.json payload (playwright-core
34
+ * 1.63 shape: {browsers: [{name, revision, browserVersion, checksum?}]}).
35
+ * Fail-closed null on any malformed shape. checksum is optional — 1.63
36
+ * ships none, and the verify step is skipped exactly then. */
37
+ export function chromiumBuildFromBrowsersJson(json) {
38
+ if (typeof json !== "object" || json === null)
39
+ return null;
40
+ const browsers = json.browsers;
41
+ if (!Array.isArray(browsers))
42
+ return null;
43
+ for (const b of browsers) {
44
+ if (typeof b !== "object" || b === null)
45
+ continue;
46
+ const e = b;
47
+ if (e["name"] !== "chromium")
48
+ continue;
49
+ if (typeof e["revision"] !== "string" || typeof e["browserVersion"] !== "string")
50
+ return null;
51
+ if (safeSegment(e["revision"]) === null || safeSegment(e["browserVersion"]) === null)
52
+ return null;
53
+ return {
54
+ revision: e["revision"],
55
+ browserVersion: e["browserVersion"],
56
+ ...(typeof e["checksum"] === "string" ? { checksum: e["checksum"] } : {}),
57
+ };
58
+ }
59
+ return null;
60
+ }
61
+ const macArchSegment = (platform, arch) => platform === "darwin" ? (arch === "arm64" ? "mac-arm64" : "mac-x64") : null;
62
+ /** The Chrome-for-Testing CDN URL for this host (v1 macOS only — off-mac is
63
+ * null and the caller reports the honest preparation sentence). */
64
+ export function chromiumDownloadUrl(browserVersion, platform, arch) {
65
+ if (safeSegment(browserVersion) === null)
66
+ return null;
67
+ const seg = macArchSegment(platform, arch);
68
+ if (seg === null)
69
+ return null;
70
+ return `https://cdn.playwright.dev/dbazure/download/playwright/builds/cft/${browserVersion}/${seg}/chrome-${seg}.zip`;
71
+ }
72
+ /** The registry-layout install plan (mirrors playwright's own
73
+ * ms-playwright layout so PLAYWRIGHT_BROWSERS_PATH=~/.wudao-desktop/browser
74
+ * sees exactly our download). v1 macOS; null elsewhere. */
75
+ export function installLayout(homeDir, revision, platform, arch) {
76
+ if (safeSegment(revision) === null)
77
+ return null;
78
+ const seg = macArchSegment(platform, arch);
79
+ if (seg === null)
80
+ return null;
81
+ const installDir = join(browserRoot(homeDir), `chromium-${revision}`);
82
+ return {
83
+ installDir,
84
+ executablePath: join(installDir, `chrome-${seg}`, "Google Chrome for Testing.app", "Contents", "MacOS", "Google Chrome for Testing"),
85
+ topSegment: `chrome-${seg}`,
86
+ };
87
+ }
88
+ /** Zip-slip guard: the staged extraction must contain EXACTLY the expected
89
+ * top-level directory(ies) — real directories, no symlinks, no stray files,
90
+ * never empty. An archive that wrote anywhere else (or tried to escape via
91
+ * ../entries leaving junk beside the expected tree) fails here. */
92
+ export async function validateStaging(stagingDir, allowedTop) {
93
+ let entries;
94
+ try {
95
+ entries = await readdir(stagingDir, { withFileTypes: true });
96
+ }
97
+ catch {
98
+ return false;
99
+ }
100
+ if (entries.length === 0)
101
+ return false;
102
+ const allowed = new Set(allowedTop);
103
+ for (const e of entries) {
104
+ if (!allowed.has(e.name))
105
+ return false;
106
+ if (!e.isDirectory() || e.isSymbolicLink())
107
+ return false;
108
+ // belt-and-braces: the dirent says directory, prove it's not a symlink
109
+ const st = await lstat(join(stagingDir, e.name));
110
+ if (!st.isDirectory())
111
+ return false;
112
+ }
113
+ return true;
114
+ }
115
+ async function systemUnzip(zipPath, destDir) {
116
+ await execFileP("unzip", ["-q", "-o", zipPath, "-d", destDir]);
117
+ }
118
+ async function sha256File(file) {
119
+ const h = createHash("sha256");
120
+ await pipeline(createReadStream(file), h);
121
+ // pipeline drains the stream into the hash; digest once settled
122
+ return h.digest("hex");
123
+ }
124
+ async function readRealBrowsersJson() {
125
+ const req = createRequire(import.meta.url);
126
+ const pkgPath = req.resolve("playwright-core/package.json");
127
+ return JSON.parse(await readFile(join(dirname(pkgPath), "browsers.json"), "utf8"));
128
+ }
129
+ const exists = async (p) => {
130
+ try {
131
+ await stat(p);
132
+ return true;
133
+ }
134
+ catch {
135
+ return false;
136
+ }
137
+ };
138
+ /** v1 macOS honest error: names the posture and the way out (one sentence,
139
+ * model-facing). */
140
+ export function kernelUnavailableError(reason) {
141
+ return new Error(`Chromium kernel unavailable (${reason}). It auto-downloads to ~/.wudao-desktop/browser on first use; to prepare it manually, point WUDAO_BROWSER_EXECUTABLE at a local Chromium executable and retry.`);
142
+ }
143
+ /** First-use download + install (idempotent: an already-installed kernel is
144
+ * probed FIRST and short-circuits the network entirely). Throws the honest
145
+ * kernelUnavailableError on any failure, after wiping all half-done state. */
146
+ export async function ensureChromiumDownloaded(opts) {
147
+ const platform = opts.platform ?? process.platform;
148
+ const arch = opts.arch ?? process.arch;
149
+ const json = opts.browsersJson ?? await readRealBrowsersJson();
150
+ const build = chromiumBuildFromBrowsersJson(json);
151
+ if (build === null)
152
+ throw kernelUnavailableError("playwright-core browsers.json is unreadable or has no chromium build pinned");
153
+ const layout = installLayout(opts.homeDir, build.revision, platform, arch);
154
+ if (layout === null)
155
+ throw kernelUnavailableError("v1 downloads ship for macOS only");
156
+ if (await exists(layout.executablePath))
157
+ return { executablePath: layout.executablePath };
158
+ const url = chromiumDownloadUrl(build.browserVersion, platform, arch);
159
+ if (url === null)
160
+ throw kernelUnavailableError("no kernel URL for this platform");
161
+ const downloadsDir = join(browserRoot(opts.homeDir), "downloads");
162
+ const zipPath = join(downloadsDir, `chromium-${build.revision}.zip`);
163
+ const staging = join(downloadsDir, `staging-${build.revision}`);
164
+ // v1 debt: no resume — one failed attempt wipes everything it wrote.
165
+ const wipe = async () => { await rm(downloadsDir, { recursive: true, force: true }); };
166
+ const fetchImpl = opts.fetchImpl ?? fetch;
167
+ try {
168
+ await mkdir(downloadsDir, { recursive: true });
169
+ opts.log?.(`browser kernel: downloading ${url}`);
170
+ const res = await fetchImpl(url);
171
+ if (!res.ok || res.body === null)
172
+ throw kernelUnavailableError(`download failed: HTTP ${res.status}`);
173
+ await pipeline(res.body, createWriteStream(zipPath));
174
+ if (typeof build.checksum === "string") {
175
+ const expected = build.checksum.replace(/^sha256:/, "");
176
+ const actual = await (opts.hashImpl ?? sha256File)(zipPath);
177
+ if (actual !== expected)
178
+ throw new Error(`kernel checksum mismatch (expected ${expected.slice(0, 12)}…, got ${actual.slice(0, 12)}…)`);
179
+ opts.log?.("browser kernel: checksum verified");
180
+ }
181
+ else {
182
+ // playwright 1.63's browsers.json ships no checksum; the staging
183
+ // whitelist below stays the structural guard.
184
+ }
185
+ await mkdir(staging, { recursive: true });
186
+ await (opts.runUnzip ?? systemUnzip)(zipPath, staging);
187
+ if (!(await validateStaging(staging, [layout.topSegment]))) {
188
+ throw new Error("staging validation failed: unexpected archive layout (possible zip-slip)");
189
+ }
190
+ await rm(layout.installDir, { recursive: true, force: true });
191
+ await rename(staging, layout.installDir);
192
+ if (!(await exists(layout.executablePath)))
193
+ throw new Error("installed kernel is missing its executable");
194
+ opts.log?.(`browser kernel: installed at ${layout.installDir}`);
195
+ await rm(zipPath, { force: true });
196
+ return { executablePath: layout.executablePath };
197
+ }
198
+ catch (err) {
199
+ await wipe();
200
+ throw err instanceof Error && /kernel unavailable|checksum|staging/.test(err.message)
201
+ ? err
202
+ : kernelUnavailableError(err instanceof Error ? err.message : String(err));
203
+ }
204
+ }
205
+ /** The runtime's probe: the installed kernel's executable, or null (the
206
+ * resolver then falls to the registry / download lanes). */
207
+ export async function installedExecutablePath(homeDir, platform = process.platform, arch = process.arch) {
208
+ const json = await readRealBrowsersJson().catch(() => null);
209
+ const build = json === null ? null : chromiumBuildFromBrowsersJson(json);
210
+ if (build === null)
211
+ return null;
212
+ const layout = installLayout(homeDir, build.revision, platform, arch);
213
+ if (layout === null)
214
+ return null;
215
+ return (await exists(layout.executablePath)) ? layout.executablePath : null;
216
+ }
217
+ //# sourceMappingURL=download.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"download.js","sourceRoot":"","sources":["../src/download.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export type { BrowserPort, BrowserHandle, PageHandle, BrowserLaunchOptions } from "./port.js";
2
+ export { createPlaywrightPort, PORT_TIMEOUTS } from "./port.js";
3
+ export type { BrowserRuntime, BrowserRuntimeOptions, BrowserState, PageSnapshotRefs, SnapshotRefEntry, ExecutableResolution } from "./runtime.js";
4
+ export { createBrowserRuntime, resolveExecutablePath, browserLaunchError, DEFAULT_IDLE_MS } from "./runtime.js";
5
+ export { COLLECT_SCRIPT, formatSnapshot, refSelector, validRef, elementLine, MAX_SNAPSHOT_CHARS } from "./snapshot.js";
6
+ export type { CollectedPage, CollectedElement } from "./snapshot.js";
7
+ export { browserToolsFor } from "./tools.js";
8
+ export type { BrowserImageSink, BrowserImageSinkMeta } from "./tools.js";
9
+ export { ensureChromiumDownloaded, installedExecutablePath, chromiumBuildFromBrowsersJson, chromiumDownloadUrl, installLayout, safeSegment, validateStaging, browserRoot, kernelUnavailableError, } from "./download.js";
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAC9F,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAChE,YAAY,EAAE,cAAc,EAAE,qBAAqB,EAAE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAClJ,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAChH,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACvH,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,YAAY,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACzE,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,6BAA6B,EAC7B,mBAAmB,EACnB,aAAa,EACb,WAAW,EACX,eAAe,EACf,WAAW,EACX,sBAAsB,GACvB,MAAM,eAAe,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,6 @@
1
+ export { createPlaywrightPort, PORT_TIMEOUTS } from "./port.js";
2
+ export { createBrowserRuntime, resolveExecutablePath, browserLaunchError, DEFAULT_IDLE_MS } from "./runtime.js";
3
+ export { COLLECT_SCRIPT, formatSnapshot, refSelector, validRef, elementLine, MAX_SNAPSHOT_CHARS } from "./snapshot.js";
4
+ export { browserToolsFor } from "./tools.js";
5
+ export { ensureChromiumDownloaded, installedExecutablePath, chromiumBuildFromBrowsersJson, chromiumDownloadUrl, installLayout, safeSegment, validateStaging, browserRoot, kernelUnavailableError, } from "./download.js";
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAEhE,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAChH,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEvH,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAG7C,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,6BAA6B,EAC7B,mBAAmB,EACnB,aAAa,EACb,WAAW,EACX,eAAe,EACf,WAAW,EACX,sBAAsB,GACvB,MAAM,eAAe,CAAC"}