@bo-agent/subprocess 0.0.2
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/lib/.tsbuildinfo +1 -0
- package/lib/index.d.ts +102 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +77 -0
- package/lib/index.js.map +1 -0
- package/lib/types.d.ts +245 -0
- package/lib/types.d.ts.map +1 -0
- package/lib/types.js +12 -0
- package/lib/types.js.map +1 -0
- package/package.json +30 -0
package/lib/.tsbuildinfo
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"fileNames":["../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2023.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2024.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.dom.asynciterable.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.scripthost.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2023.array.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2023.collection.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2023.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2024.collection.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2024.object.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2024.promise.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2024.regexp.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2024.string.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2024.full.d.ts","../../../node_modules/.pnpm/cosmokit@1.8.1/node_modules/cosmokit/lib/index.d.ts","../../../node_modules/.pnpm/@standard-schema+spec@1.1.0/node_modules/@standard-schema/spec/dist/index.d.ts","../../../node_modules/.pnpm/cordis@4.0.0-rc.10/node_modules/cordis/lib/utils.d.ts","../../../node_modules/.pnpm/cordis@4.0.0-rc.10/node_modules/cordis/lib/registry.d.ts","../../../node_modules/.pnpm/cordis@4.0.0-rc.10/node_modules/cordis/lib/reflect.d.ts","../../../node_modules/.pnpm/cordis@4.0.0-rc.10/node_modules/cordis/lib/fiber.d.ts","../../../node_modules/.pnpm/cordis@4.0.0-rc.10/node_modules/cordis/lib/events.d.ts","../../../node_modules/.pnpm/cordis@4.0.0-rc.10/node_modules/cordis/lib/logger.d.ts","../../../node_modules/.pnpm/cordis@4.0.0-rc.10/node_modules/cordis/lib/context.d.ts","../../../node_modules/.pnpm/cordis@4.0.0-rc.10/node_modules/cordis/lib/service.d.ts","../../../node_modules/.pnpm/cordis@4.0.0-rc.10/node_modules/cordis/lib/index.d.ts","../src/types.ts","../src/index.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/compatibility/disposable.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/compatibility/indexable.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/compatibility/iterators.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/compatibility/index.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/globals.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/web-globals/abortcontroller.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/web-globals/domexception.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/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.2/node_modules/@types/node/web-globals/fetch.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/web-globals/navigator.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/web-globals/storage.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/web-globals/streams.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/assert.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/assert/strict.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/async_hooks.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/buffer.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/child_process.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/cluster.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/console.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/constants.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/crypto.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/dgram.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/dns.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/dns/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/domain.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/events.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/fs.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/fs/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/http.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/http2.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/https.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/inspector.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/inspector.generated.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/module.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/net.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/os.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/path.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/process.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/punycode.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/querystring.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/readline.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/readline/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/repl.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/sea.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/sqlite.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/stream.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/stream/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/stream/web.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/string_decoder.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/test.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/timers.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/timers/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/tls.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/trace_events.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/tty.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/url.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/util.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/v8.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/vm.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/wasi.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/worker_threads.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/zlib.d.ts","../../../node_modules/.pnpm/@types+node@22.20.2/node_modules/@types/node/index.d.ts"],"fileIdsList":[[94,143,160,161],[94,140,141,143,160,161],[94,142,143,160,161],[143,160,161],[94,143,148,160,161,178],[94,143,144,149,154,160,161,163,175,186],[94,143,144,145,154,160,161,163],[89,90,91,94,143,160,161],[94,143,146,160,161,187],[94,143,147,148,155,160,161,164],[94,143,148,160,161,175,183],[94,143,149,151,154,160,161,163],[94,142,143,150,160,161],[94,143,151,152,160,161],[94,143,153,154,160,161],[94,142,143,154,160,161],[94,143,154,155,156,160,161,175,186],[94,143,154,155,156,160,161,170,175,178],[94,135,143,151,154,157,160,161,163,175,186],[94,143,154,155,157,158,160,161,163,175,183,186],[94,143,157,159,160,161,175,183,186],[92,93,94,95,96,97,98,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,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],[94,143,154,160,161],[94,143,160,161,162,186],[94,143,151,154,160,161,163,175],[94,143,160,161,164],[94,143,160,161,165],[94,142,143,160,161,166],[94,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,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],[94,143,160,161,168],[94,143,160,161,169],[94,143,154,160,161,170,171],[94,143,160,161,170,172,187,189],[94,143,155,160,161],[94,143,154,160,161,175,176,178],[94,143,160,161,177,178],[94,143,160,161,175,176],[94,143,160,161,178],[94,143,160,161,179],[94,140,143,160,161,175,180,186],[94,143,154,160,161,181,182],[94,143,160,161,181,182],[94,143,148,160,161,163,175,183],[94,143,160,161,184],[94,143,160,161,163,185],[94,143,157,160,161,169,186],[94,143,148,160,161,187],[94,143,160,161,175,188],[94,143,160,161,162,189],[94,143,160,161,190],[94,135,143,160,161],[94,135,143,154,156,160,161,166,175,178,186,188,189,191],[94,143,160,161,175,192],[76,78,79,80,81,82,83,94,143,160,161],[76,79,80,81,82,83,84,94,143,160,161],[76,77,78,79,80,81,82,83,84,94,143,160,161],[78,79,80,81,82,83,84,85,94,143,160,161],[78,79,80,81,82,83,84,94,143,160,161],[86,88,94,143,160,161],[94,107,111,143,160,161,186],[94,107,143,160,161,175,186],[94,102,143,160,161],[94,104,107,143,160,161,183,186],[94,143,160,161,163,183],[94,143,160,161,193],[94,102,143,160,161,193],[94,104,107,143,160,161,163,186],[94,99,100,103,106,143,154,160,161,175,186],[94,107,114,143,160,161],[94,99,105,143,160,161],[94,107,128,129,143,160,161],[94,103,107,143,160,161,178,186,193],[94,128,143,160,161,193],[94,101,102,143,160,161,193],[94,107,143,160,161],[94,101,102,103,104,105,106,107,108,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,129,130,131,132,133,134,143,160,161],[94,107,122,143,160,161],[94,107,114,115,143,160,161],[94,105,107,115,116,143,160,161],[94,106,143,160,161],[94,99,102,107,143,160,161],[94,107,111,115,116,143,160,161],[94,111,143,160,161],[94,105,107,110,143,160,161,186],[94,99,104,107,114,143,160,161],[94,143,160,161,175],[94,102,107,128,143,160,161,191,193],[86,87,88,94,143,160,161]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"8fd575e12870e9944c7e1d62e1f5a73fcf23dd8d3a321f2a2c74c20d022283fe","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7a3c8b952931daebdfc7a2897c53c0a1c73624593fa070e46bd537e64dcd20a","affectsGlobalScope":true,"impliedFormat":1},{"version":"80e18897e5884b6723488d4f5652167e7bb5024f946743134ecc4aa4ee731f89","affectsGlobalScope":true,"impliedFormat":1},{"version":"cd034f499c6cdca722b60c04b5b1b78e058487a7085a8e0d6fb50809947ee573","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","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":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","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":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"df83c2a6c73228b625b0beb6669c7ee2a09c914637e2d35170723ad49c0f5cd4","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"87dc0f382502f5bbce5129bdc0aea21e19a3abbc19259e0b43ae038a9fc4e326","affectsGlobalScope":true,"impliedFormat":1},{"version":"b1cb28af0c891c8c96b2d6b7be76bd394fddcfdb4709a20ba05a7c1605eea0f9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true,"impliedFormat":1},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ece9f17b3866cc077099c73f4983bddbcb1dc7ddb943227f1ec070f529dedd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3e9cef4eed59f8a2249ed834ba4aabe9d0d4e9037d4679487fa17dad99004a3","impliedFormat":1},{"version":"0e7086243656ce24ba7dfe15a8d8e3cd4310afa6cbddb97dd06d5dc399794676","impliedFormat":99},{"version":"bdd14f07b4eca0b4b5203b85b8dbc4d084c749fa590bee5ea613e1641dcd3b29","impliedFormat":99},{"version":"1f9b9bc4eb18864e8c1628ecd0630442eb857e7b77322559a9a00004f1e39d80","impliedFormat":99},{"version":"598ee676b4645a043e7c4198d53221dd8c44bc628b12776efd8bc6fabd804ced","impliedFormat":99},{"version":"3de8c258acd8647678a8c96db4cee1151a16bc18626028a9c7b33b6bdd037db9","impliedFormat":99},{"version":"b7f6288c956d50a63f4d14610f39df7f7b1e9d481413a0e95c82c37179448ddc","impliedFormat":99},{"version":"18930b7045a527847a039cf29af8927c8079414527707396672ed3cd706fc399","impliedFormat":99},{"version":"7395b909d9b5c754cf8af3937a7ac783bd82eeea31c42a35a02bbcfb5db945a4","impliedFormat":99},{"version":"3a0bf69f6275288de8b20cc353c1e0e6c6d61644789ddec51b526d0d5166acc1","impliedFormat":99},{"version":"6adf2288c91294fe0c68828187e96820b0620fe5d78f79ccbff06d230d9b0c8e","impliedFormat":99},{"version":"8cc48b522565f226e5bdb0f6a4d4b1bcdc8f82ac72c32fd869831a96f583b3cc","impliedFormat":99},{"version":"241dc4d500c660620206d4be65a7d8f2e8736d4efdf3866a8bbe402624cfec40","signature":"f45efbcb0323d0749d12447c82e6ed374b237d73d0f701872c937546200173ce"},{"version":"595440167f1dd2997b9cd51460a8cbf49e9696d3517e5902ea7213e004475411","signature":"fd0992b57c68dbe57ea0a54c49402c5071ccf7f8612c0cf191882f09fa7b71d8"},{"version":"6c7176368037af28cb72f2392010fa1cef295d6d6744bca8cfb54985f3a18c3e","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"437e20f2ba32abaeb7985e0afe0002de1917bc74e949ba585e49feba65da6ca1","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"98cffbf06d6bab333473c70a893770dbe990783904002c4f1a960447b4b53dca","affectsGlobalScope":true,"impliedFormat":1},{"version":"3af97acf03cc97de58a3a4bc91f8f616408099bc4233f6d0852e72a8ffb91ac9","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":"208a6a0bfb227bdf8fb964799d0a206c75cf03ccd72e63bf5495c9331354c6d6","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":"71d3ae6a5e73ca4130762560425e00984ebaff64d5353a3333d1bb7eb86ef336","impliedFormat":1}],"root":[87,88],"options":{"allowImportingTsExtensions":true,"composite":true,"declaration":true,"declarationMap":true,"esModuleInterop":true,"exactOptionalPropertyTypes":true,"module":99,"noFallthroughCasesInSwitch":true,"noImplicitOverride":true,"noUncheckedIndexedAccess":true,"noUnusedLocals":false,"noUnusedParameters":false,"outDir":"./","rewriteRelativeImportExtensions":true,"rootDir":"../src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":11,"tsBuildInfoFile":"./.tsbuildinfo","verbatimModuleSyntax":false},"referencedMap":[[77,1],[140,2],[141,2],[142,3],[94,4],[143,5],[144,6],[145,7],[89,1],[92,8],[90,1],[91,1],[146,9],[147,10],[148,11],[149,12],[150,13],[151,14],[152,14],[153,15],[154,16],[155,17],[156,18],[95,1],[93,1],[157,19],[158,20],[159,21],[193,22],[160,23],[161,1],[162,24],[163,25],[164,26],[165,27],[166,28],[167,29],[168,30],[169,31],[170,32],[171,32],[172,33],[173,1],[174,34],[175,35],[177,36],[176,37],[178,38],[179,39],[180,40],[181,41],[182,42],[183,43],[184,44],[185,45],[186,46],[187,47],[188,48],[189,49],[190,50],[96,1],[97,1],[98,1],[136,51],[137,1],[138,1],[139,38],[191,52],[192,53],[84,54],[82,55],[81,56],[86,57],[83,58],[80,55],[79,56],[85,58],[78,59],[76,1],[73,1],[74,1],[14,1],[12,1],[13,1],[18,1],[17,1],[2,1],[19,1],[20,1],[21,1],[22,1],[23,1],[24,1],[25,1],[26,1],[3,1],[27,1],[28,1],[4,1],[29,1],[33,1],[30,1],[31,1],[32,1],[34,1],[35,1],[36,1],[5,1],[37,1],[38,1],[39,1],[40,1],[6,1],[44,1],[41,1],[42,1],[43,1],[45,1],[7,1],[46,1],[51,1],[52,1],[47,1],[48,1],[49,1],[50,1],[8,1],[56,1],[53,1],[54,1],[55,1],[57,1],[9,1],[58,1],[59,1],[60,1],[62,1],[61,1],[63,1],[64,1],[10,1],[65,1],[66,1],[67,1],[11,1],[75,1],[68,1],[69,1],[70,1],[71,1],[72,1],[1,1],[16,1],[15,1],[114,60],[124,61],[113,60],[134,62],[105,63],[104,64],[133,65],[127,66],[132,67],[107,68],[121,69],[106,70],[130,71],[102,72],[101,65],[131,73],[103,74],[108,75],[109,1],[112,75],[99,1],[135,76],[125,77],[116,78],[117,79],[119,80],[115,81],[118,82],[128,65],[110,83],[111,84],[120,85],[100,86],[123,77],[122,75],[126,1],[129,87],[88,88],[87,86]],"latestChangedDtsFile":"./index.d.ts","version":"5.9.3"}
|
package/lib/index.d.ts
ADDED
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Service Definition for the subprocess capability seam (`ctx.subprocess`): execution-world executable lookup,
|
|
3
|
+
* fully specified managed process trees with raw or
|
|
4
|
+
* collected stdio, and one terminal-process primitive. Command defaulting,
|
|
5
|
+
* shell semantics, deadlines, protocol framing, terminal readiness, and
|
|
6
|
+
* presentation belong to consumers. The local implementation lives in
|
|
7
|
+
* `@bo-agent/subprocess-local`.
|
|
8
|
+
*
|
|
9
|
+
* @module @bo-agent/subprocess
|
|
10
|
+
*/
|
|
11
|
+
import { Context, Service } from 'cordis';
|
|
12
|
+
import type { SubprocessHandle, SubprocessSpawnSpec } from './types.ts';
|
|
13
|
+
import type { SubprocessTerminalHandle, SubprocessTerminalSpawnSpec } from './types.ts';
|
|
14
|
+
export { DSH_ENV_PREFIX } from './types.ts';
|
|
15
|
+
export type { CollectedOutput, DshEnvironment, DshEnvironmentKey, SubprocessCollect, SubprocessCollectedOutputs, SubprocessHandle, SubprocessOutcome, SubprocessOutputMode, SubprocessOutputRead, SubprocessOutputReader, SubprocessSpawnSpec, SubprocessStdinMode, SubprocessStdio, SubprocessTerminalForeground, SubprocessTerminalHandle, SubprocessTerminalSignal, SubprocessTerminalSpawnSpec, } from './types.ts';
|
|
16
|
+
/**
|
|
17
|
+
* Credential-shaped environment names are NOT forwarded to children (the
|
|
18
|
+
* harness's own API keys / secrets must not leak into a spawned process
|
|
19
|
+
* implicitly). One heuristic for every in-repo spawner; a deliberately
|
|
20
|
+
* supplied entry survives because explicit env layers merge after the scrub.
|
|
21
|
+
*/
|
|
22
|
+
export declare const SENSITIVE_ENV_PATTERN: RegExp;
|
|
23
|
+
/**
|
|
24
|
+
* The ambient parent environment minus credential-shaped names and minus all
|
|
25
|
+
* `DSH_*` names — the canonical base every harness child starts from. `PATH`,
|
|
26
|
+
* `HOME`, locale, and proxy variables survive, so child CLIs run normally;
|
|
27
|
+
* harness identity never leaks implicitly (a deliberately forwarded
|
|
28
|
+
* credential or current `DSH_*` fact goes through the spec's explicit `env`,
|
|
29
|
+
* which merges after this scrub). Both scrubs match case-insensitively:
|
|
30
|
+
* Windows environment names are case-insensitive, so a parent `dsh_*` entry
|
|
31
|
+
* would otherwise survive and read back as `$env:DSH_*` in the child;
|
|
32
|
+
* deliberate lowercase `dsh_*` names on POSIX are implausible. Exported as a
|
|
33
|
+
* plain function so spawners that cannot route through the service (node-pty
|
|
34
|
+
* backends, SDK-managed transports) share the one scrub definition.
|
|
35
|
+
* @returns a fresh environment object safe to hand to a child spawn.
|
|
36
|
+
*/
|
|
37
|
+
export declare function scrubbedParentEnv(): Record<string, string>;
|
|
38
|
+
declare module 'cordis' {
|
|
39
|
+
interface Context {
|
|
40
|
+
subprocess: SubprocessRuntime;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Abstract subprocess service. Subclass, implement {@link spawn}, and load the
|
|
45
|
+
* subclass as a plugin — it registers as `ctx.subprocess` (one implementation
|
|
46
|
+
* per context; loading a second throws, which is cordis' standard
|
|
47
|
+
* duplicate-service behavior).
|
|
48
|
+
*
|
|
49
|
+
* Implementations must honor these semantics:
|
|
50
|
+
* - Executable paths belong to one execution world shared with the mounted
|
|
51
|
+
* filesystem provider.
|
|
52
|
+
* - {@link spawn} returns immediately with a live handle; `done` resolves at
|
|
53
|
+
* process close with exit facts and rejects only for spawn-level failures.
|
|
54
|
+
* - Collect-mode readers are offset-based and non-consuming, so independent
|
|
55
|
+
* readers never consume one another's output; lossy reads report truncation
|
|
56
|
+
* and the spill file holding the complete stream when one exists. Piped
|
|
57
|
+
* streams are handed to the caller raw and never buffered here.
|
|
58
|
+
* - {@link SubprocessHandle.terminate} (and the spec's abort signal) escalates
|
|
59
|
+
* SIGTERM→grace→SIGKILL — the only termination verb — tree-scoped on every
|
|
60
|
+
* platform. {@link SubprocessHandle.waitForExit} observes whole-tree
|
|
61
|
+
* liveness, so a consumer-owned teardown ladder can hold each tier on real
|
|
62
|
+
* quiescence.
|
|
63
|
+
* - Disposal of the service terminates all still-running managed processes
|
|
64
|
+
* and awaits their exit.
|
|
65
|
+
* - {@link spawnTerminal} owns terminal allocation, text transport,
|
|
66
|
+
* foreground groups, signalling, and whole-session quiescence behind one
|
|
67
|
+
* awaited termination method; readiness and persistent-shell policy stay
|
|
68
|
+
* in the PTY consumer. Its output stream ends after queued terminal output
|
|
69
|
+
* when the top-level process exits.
|
|
70
|
+
*/
|
|
71
|
+
export declare abstract class SubprocessRuntime extends Service {
|
|
72
|
+
constructor(ctx: Context);
|
|
73
|
+
/**
|
|
74
|
+
* Resolve one configured executable in this provider's execution world.
|
|
75
|
+
* Absolute paths are verified; bare names use the provider's scrubbed PATH
|
|
76
|
+
* plus explicit environment overrides. Relative paths containing separators
|
|
77
|
+
* are rejected: the resolution base is undefined, so providers fail loud
|
|
78
|
+
* instead of guessing.
|
|
79
|
+
* @param command - absolute executable path or bare PATH name.
|
|
80
|
+
* @param env - explicit environment entries used for lookup.
|
|
81
|
+
* @param signal - aborts remote or local lookup.
|
|
82
|
+
* @returns a canonical executable path.
|
|
83
|
+
*/
|
|
84
|
+
abstract resolveExecutable(command: string, env?: Readonly<Record<string, string>>, signal?: AbortSignal): Promise<string>;
|
|
85
|
+
/**
|
|
86
|
+
* Start one managed child process from a fully-specified spec; this seam
|
|
87
|
+
* applies no defaults.
|
|
88
|
+
* @param spec - argv, directory, stdio dispositions, grace, cancellation, and environment.
|
|
89
|
+
* @returns the live process handle (streams/readers, signalling, outcome promise).
|
|
90
|
+
*/
|
|
91
|
+
abstract spawn(spec: SubprocessSpawnSpec): SubprocessHandle;
|
|
92
|
+
/**
|
|
93
|
+
* Allocate a real terminal and start one owned process session. This is the
|
|
94
|
+
* only non-pipe process primitive: implementations own terminal byte I/O,
|
|
95
|
+
* foreground groups, signals, and complete session-tree cleanup.
|
|
96
|
+
* @param spec - fully specified argv, cwd, environment, dimensions, grace, and allocation cancellation.
|
|
97
|
+
* @returns the live terminal handle after allocation succeeds.
|
|
98
|
+
*/
|
|
99
|
+
abstract spawnTerminal(spec: SubprocessTerminalSpawnSpec): Promise<SubprocessTerminalHandle>;
|
|
100
|
+
}
|
|
101
|
+
export default SubprocessRuntime;
|
|
102
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAEzC,OAAO,KAAK,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AACvE,OAAO,KAAK,EAAE,wBAAwB,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAA;AAEvF,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,YAAY,EACV,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,0BAA0B,EAC1B,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,EACf,4BAA4B,EAC5B,wBAAwB,EACxB,wBAAwB,EACxB,2BAA2B,GAC5B,MAAM,YAAY,CAAA;AAEnB;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,QAA+B,CAAA;AAEjE;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAM1D;AAED,OAAO,QAAQ,QAAQ,CAAC;IACtB,UAAU,OAAO;QACf,UAAU,EAAE,iBAAiB,CAAA;KAC9B;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,8BAAsB,iBAAkB,SAAQ,OAAO;gBACzC,GAAG,EAAE,OAAO;IAIxB;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,iBAAiB,CACxB,OAAO,EAAE,MAAM,EACf,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACtC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,MAAM,CAAC;IAElB;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,mBAAmB,GAAG,gBAAgB;IAE3D;;;;;;OAMG;IACH,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,2BAA2B,GAAG,OAAO,CAAC,wBAAwB,CAAC;CAC7F;AAED,eAAe,iBAAiB,CAAA"}
|
package/lib/index.js
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Service Definition for the subprocess capability seam (`ctx.subprocess`): execution-world executable lookup,
|
|
3
|
+
* fully specified managed process trees with raw or
|
|
4
|
+
* collected stdio, and one terminal-process primitive. Command defaulting,
|
|
5
|
+
* shell semantics, deadlines, protocol framing, terminal readiness, and
|
|
6
|
+
* presentation belong to consumers. The local implementation lives in
|
|
7
|
+
* `@bo-agent/subprocess-local`.
|
|
8
|
+
*
|
|
9
|
+
* @module @bo-agent/subprocess
|
|
10
|
+
*/
|
|
11
|
+
import { Service } from 'cordis';
|
|
12
|
+
import { DSH_ENV_PREFIX } from "./types.js";
|
|
13
|
+
export { DSH_ENV_PREFIX } from "./types.js";
|
|
14
|
+
/**
|
|
15
|
+
* Credential-shaped environment names are NOT forwarded to children (the
|
|
16
|
+
* harness's own API keys / secrets must not leak into a spawned process
|
|
17
|
+
* implicitly). One heuristic for every in-repo spawner; a deliberately
|
|
18
|
+
* supplied entry survives because explicit env layers merge after the scrub.
|
|
19
|
+
*/
|
|
20
|
+
export const SENSITIVE_ENV_PATTERN = /KEY|PASSWORD|SECRET|TOKEN/i;
|
|
21
|
+
/**
|
|
22
|
+
* The ambient parent environment minus credential-shaped names and minus all
|
|
23
|
+
* `DSH_*` names — the canonical base every harness child starts from. `PATH`,
|
|
24
|
+
* `HOME`, locale, and proxy variables survive, so child CLIs run normally;
|
|
25
|
+
* harness identity never leaks implicitly (a deliberately forwarded
|
|
26
|
+
* credential or current `DSH_*` fact goes through the spec's explicit `env`,
|
|
27
|
+
* which merges after this scrub). Both scrubs match case-insensitively:
|
|
28
|
+
* Windows environment names are case-insensitive, so a parent `dsh_*` entry
|
|
29
|
+
* would otherwise survive and read back as `$env:DSH_*` in the child;
|
|
30
|
+
* deliberate lowercase `dsh_*` names on POSIX are implausible. Exported as a
|
|
31
|
+
* plain function so spawners that cannot route through the service (node-pty
|
|
32
|
+
* backends, SDK-managed transports) share the one scrub definition.
|
|
33
|
+
* @returns a fresh environment object safe to hand to a child spawn.
|
|
34
|
+
*/
|
|
35
|
+
export function scrubbedParentEnv() {
|
|
36
|
+
const env = {};
|
|
37
|
+
for (const [key, value] of Object.entries(process.env)) {
|
|
38
|
+
if (value !== undefined && !SENSITIVE_ENV_PATTERN.test(key) && !key.toUpperCase().startsWith(DSH_ENV_PREFIX))
|
|
39
|
+
env[key] = value;
|
|
40
|
+
}
|
|
41
|
+
return env;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Abstract subprocess service. Subclass, implement {@link spawn}, and load the
|
|
45
|
+
* subclass as a plugin — it registers as `ctx.subprocess` (one implementation
|
|
46
|
+
* per context; loading a second throws, which is cordis' standard
|
|
47
|
+
* duplicate-service behavior).
|
|
48
|
+
*
|
|
49
|
+
* Implementations must honor these semantics:
|
|
50
|
+
* - Executable paths belong to one execution world shared with the mounted
|
|
51
|
+
* filesystem provider.
|
|
52
|
+
* - {@link spawn} returns immediately with a live handle; `done` resolves at
|
|
53
|
+
* process close with exit facts and rejects only for spawn-level failures.
|
|
54
|
+
* - Collect-mode readers are offset-based and non-consuming, so independent
|
|
55
|
+
* readers never consume one another's output; lossy reads report truncation
|
|
56
|
+
* and the spill file holding the complete stream when one exists. Piped
|
|
57
|
+
* streams are handed to the caller raw and never buffered here.
|
|
58
|
+
* - {@link SubprocessHandle.terminate} (and the spec's abort signal) escalates
|
|
59
|
+
* SIGTERM→grace→SIGKILL — the only termination verb — tree-scoped on every
|
|
60
|
+
* platform. {@link SubprocessHandle.waitForExit} observes whole-tree
|
|
61
|
+
* liveness, so a consumer-owned teardown ladder can hold each tier on real
|
|
62
|
+
* quiescence.
|
|
63
|
+
* - Disposal of the service terminates all still-running managed processes
|
|
64
|
+
* and awaits their exit.
|
|
65
|
+
* - {@link spawnTerminal} owns terminal allocation, text transport,
|
|
66
|
+
* foreground groups, signalling, and whole-session quiescence behind one
|
|
67
|
+
* awaited termination method; readiness and persistent-shell policy stay
|
|
68
|
+
* in the PTY consumer. Its output stream ends after queued terminal output
|
|
69
|
+
* when the top-level process exits.
|
|
70
|
+
*/
|
|
71
|
+
export class SubprocessRuntime extends Service {
|
|
72
|
+
constructor(ctx) {
|
|
73
|
+
super(ctx, 'subprocess');
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
export default SubprocessRuntime;
|
|
77
|
+
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAW,OAAO,EAAE,MAAM,QAAQ,CAAA;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAI3C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAqB3C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,4BAA4B,CAAA;AAEjE;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,iBAAiB;IAC/B,MAAM,GAAG,GAA2B,EAAE,CAAA;IACtC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvD,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC;YAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;IAChI,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAQD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,OAAgB,iBAAkB,SAAQ,OAAO;IACrD,YAAY,GAAY;QACtB,KAAK,CAAC,GAAG,EAAE,YAAY,CAAC,CAAA;IAC1B,CAAC;CAmCF;AAED,eAAe,iBAAiB,CAAA"}
|
package/lib/types.d.ts
ADDED
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vocabulary for the subprocess Service Definition: fully-specified spawn requests with
|
|
3
|
+
* Node-shaped per-stream stdio modes, bounded collected output with spill
|
|
4
|
+
* recovery, raw piped streams, and tree-scoped termination. Command
|
|
5
|
+
* defaulting, shell semantics, protocol framing, and presentation belong to
|
|
6
|
+
* consumers such as the bash executor seam.
|
|
7
|
+
*
|
|
8
|
+
* @module @bo-agent/subprocess/types
|
|
9
|
+
*/
|
|
10
|
+
import type { Readable, Writable } from 'node:stream';
|
|
11
|
+
/** Namespace prefix reserved for harness-managed child environment facts. */
|
|
12
|
+
export declare const DSH_ENV_PREFIX: "DSH_";
|
|
13
|
+
/** One environment key inside the managed {@link DSH_ENV_PREFIX} namespace. */
|
|
14
|
+
export type DshEnvironmentKey = `${typeof DSH_ENV_PREFIX}${string}`;
|
|
15
|
+
/** Trusted harness variables for one child-process execution. */
|
|
16
|
+
export type DshEnvironment = Readonly<Record<DshEnvironmentKey, string>>;
|
|
17
|
+
/** One captured stream: the (possibly truncated) text plus recovery info. */
|
|
18
|
+
export interface CollectedOutput {
|
|
19
|
+
/** Collected text — the TAIL of the stream when truncated. */
|
|
20
|
+
text: string;
|
|
21
|
+
/** True when bytes were dropped from `text`. */
|
|
22
|
+
truncated: boolean;
|
|
23
|
+
/** Path to a file holding the COMPLETE stream, when truncated and available. */
|
|
24
|
+
spillPath?: string;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* stdin disposition. `'ignore'` leaves fd 0 on `/dev/null`; `'pipe'` exposes
|
|
28
|
+
* {@link SubprocessHandle.stdin} for the caller's ongoing protocol writes;
|
|
29
|
+
* `{ data }` writes the bytes and closes (the batch shape).
|
|
30
|
+
*/
|
|
31
|
+
export type SubprocessStdinMode = 'ignore' | 'pipe' | {
|
|
32
|
+
readonly data: string;
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Bounded in-memory collection for one output stream, with an optional
|
|
36
|
+
* full-stream spill file. Omitting `spill` keeps only the in-memory tail —
|
|
37
|
+
* the diagnostic-tail shape (a language server's stderr); including it makes
|
|
38
|
+
* the complete stream recoverable up to its cap (the bash tool shape).
|
|
39
|
+
*/
|
|
40
|
+
export interface SubprocessCollect {
|
|
41
|
+
/** In-memory cap in bytes; overflow keeps the TAIL. */
|
|
42
|
+
maxBytes: number;
|
|
43
|
+
/** Full-stream spill file; absent disables spilling entirely. */
|
|
44
|
+
spill?: {
|
|
45
|
+
/** Whole-stream byte cap; a larger stream discards its now-incomplete spill. */
|
|
46
|
+
maxBytes: number;
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* stdout/stderr disposition. `'pipe'` exposes the raw `Readable` for the
|
|
51
|
+
* caller's protocol decoding; `'inherit'` passes the parent's descriptor
|
|
52
|
+
* through (child diagnostics land on the harness's own stream); a
|
|
53
|
+
* {@link SubprocessCollect} object buffers boundedly with offset-based reads.
|
|
54
|
+
*/
|
|
55
|
+
export type SubprocessOutputMode = 'pipe' | 'inherit' | SubprocessCollect;
|
|
56
|
+
/** Per-stream stdio dispositions, all explicit — this seam applies no defaults. */
|
|
57
|
+
export interface SubprocessStdio {
|
|
58
|
+
stdin: SubprocessStdinMode;
|
|
59
|
+
stdout: SubprocessOutputMode;
|
|
60
|
+
stderr: SubprocessOutputMode;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* A fully-specified spawn request. This seam applies no defaults: every
|
|
64
|
+
* disposition, limit, and directory is explicit, so the caller's own config —
|
|
65
|
+
* not a hidden subprocess-service default — decides them (the `shell`
|
|
66
|
+
* request/spec split is the owning template).
|
|
67
|
+
*/
|
|
68
|
+
export interface SubprocessSpawnSpec {
|
|
69
|
+
/** Executable and arguments; `argv[0]` is the program. Never shell-interpreted here. */
|
|
70
|
+
argv: readonly string[];
|
|
71
|
+
/** Working directory for the child. */
|
|
72
|
+
cwd: string;
|
|
73
|
+
/** Per-stream stdio dispositions. */
|
|
74
|
+
stdio: SubprocessStdio;
|
|
75
|
+
/**
|
|
76
|
+
* Positive finite grace period in milliseconds for the
|
|
77
|
+
* {@link SubprocessHandle.terminate} escalation and for draining still-open
|
|
78
|
+
* collected pipes after the process exits (an inherited descriptor held by
|
|
79
|
+
* a surviving descendant cannot hold the outcome open indefinitely).
|
|
80
|
+
*/
|
|
81
|
+
graceMs: number;
|
|
82
|
+
/**
|
|
83
|
+
* Abort signal — starts the terminate escalation on the process tree when
|
|
84
|
+
* it fires. The caller owns deadlines and cause classification; this seam
|
|
85
|
+
* only reacts to the abort.
|
|
86
|
+
*/
|
|
87
|
+
signal?: AbortSignal | undefined;
|
|
88
|
+
/**
|
|
89
|
+
* Explicit environment entries merged onto the implementation's scrubbed
|
|
90
|
+
* parent base (see {@link SubprocessRuntime.scrubbedParentEnv}), with no
|
|
91
|
+
* namespace validation. A string is a deliberate caller opt-in, so a
|
|
92
|
+
* forwarded credential-shaped entry or current `DSH_*` fact survives the
|
|
93
|
+
* scrub; `undefined` is a tombstone that removes an ordinary ambient entry
|
|
94
|
+
* from the child.
|
|
95
|
+
*/
|
|
96
|
+
env?: NodeJS.ProcessEnv | undefined;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Exit facts of one closed process — Node's `close`-event vocabulary.
|
|
100
|
+
* Deliberately carries NO timeout or cancellation classification (the caller
|
|
101
|
+
* reads the signal it owns to classify causes) and NO output: collected
|
|
102
|
+
* streams stay readable through {@link SubprocessHandle.collected} after
|
|
103
|
+
* settlement, so batch and streaming callers share one access path.
|
|
104
|
+
*/
|
|
105
|
+
export interface SubprocessOutcome {
|
|
106
|
+
/** Exit code; null when the process died from a signal. */
|
|
107
|
+
exitCode: number | null;
|
|
108
|
+
/** Terminating signal (e.g. 'SIGTERM'); null on normal exit. */
|
|
109
|
+
signal: NodeJS.Signals | null;
|
|
110
|
+
}
|
|
111
|
+
/** One incremental {@link SubprocessOutputReader.readFrom} read. */
|
|
112
|
+
export interface SubprocessOutputRead {
|
|
113
|
+
/** Stream text from the requested offset (the whole retained tail when lossy). */
|
|
114
|
+
text: string;
|
|
115
|
+
/** Whole-stream offset to resume from on the next read. */
|
|
116
|
+
nextOffset: number;
|
|
117
|
+
/** True when the requested offset slid out of the in-memory tail window. */
|
|
118
|
+
lossy: boolean;
|
|
119
|
+
/** Path to the full-stream spill file, when one was created and remains intact. */
|
|
120
|
+
spillPath?: string;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Cursor-free incremental access to one collected output stream. Offsets are
|
|
124
|
+
* whole-stream byte coordinates owned by the caller, so independent readers
|
|
125
|
+
* cannot consume one another's output; `readFrom(0)` after settlement is the
|
|
126
|
+
* batch result (`lossy` then means the in-memory tail lost its head — the
|
|
127
|
+
* {@link CollectedOutput.truncated} fact).
|
|
128
|
+
*/
|
|
129
|
+
export interface SubprocessOutputReader {
|
|
130
|
+
/**
|
|
131
|
+
* Read everything captured since `fromByte`. When that offset has slid out
|
|
132
|
+
* of the in-memory tail window the read is `lossy` — it returns the whole
|
|
133
|
+
* retained tail and the gap is only recoverable from the spill file.
|
|
134
|
+
* @param fromByte - whole-stream offset to resume from (a prior read's `nextOffset`; 0 for the first read).
|
|
135
|
+
* @returns the delta text, the next offset, the `lossy` flag, and the spill path when one exists.
|
|
136
|
+
*/
|
|
137
|
+
readFrom(fromByte: number): SubprocessOutputRead;
|
|
138
|
+
}
|
|
139
|
+
/** Offset-based readers for the streams spawned in collect mode. */
|
|
140
|
+
export interface SubprocessCollectedOutputs {
|
|
141
|
+
/** Present iff stdout is a {@link SubprocessCollect}. */
|
|
142
|
+
readonly stdout?: SubprocessOutputReader;
|
|
143
|
+
/** Present iff stderr is a {@link SubprocessCollect}. */
|
|
144
|
+
readonly stderr?: SubprocessOutputReader;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* A live child process rooted in its own process tree. Collected output
|
|
148
|
+
* remains readable after exit; piped streams belong to the caller.
|
|
149
|
+
*
|
|
150
|
+
* Termination is tree-scoped everywhere: POSIX signals the detached process
|
|
151
|
+
* group (falling back to the direct child when the group is gone), Windows
|
|
152
|
+
* terminates the tree via `taskkill /T`, so helper processes cannot outlive
|
|
153
|
+
* the handle unnoticed.
|
|
154
|
+
*/
|
|
155
|
+
export interface SubprocessHandle {
|
|
156
|
+
/** Process id (tree root); -1 when the spawn itself failed. */
|
|
157
|
+
readonly pid: number;
|
|
158
|
+
/** The child's stdin, present iff spawned with `stdin: 'pipe'`. */
|
|
159
|
+
readonly stdin: Writable | undefined;
|
|
160
|
+
/** The child's raw stdout, present iff spawned with `stdout: 'pipe'`. */
|
|
161
|
+
readonly stdout: Readable | undefined;
|
|
162
|
+
/** The child's raw stderr, present iff spawned with `stderr: 'pipe'`. */
|
|
163
|
+
readonly stderr: Readable | undefined;
|
|
164
|
+
/** Offset-based readers for collect-mode streams (also readable after exit). */
|
|
165
|
+
readonly collected: SubprocessCollectedOutputs;
|
|
166
|
+
/** Resolves at process close with exit facts; rejects only for spawn-level failures. */
|
|
167
|
+
readonly done: Promise<SubprocessOutcome>;
|
|
168
|
+
/**
|
|
169
|
+
* Begin the SIGTERM → `graceMs` → SIGKILL escalation on the process tree
|
|
170
|
+
* (Windows force-terminates immediately) — the seam's only termination
|
|
171
|
+
* verb. Idempotent, a no-op once the tree is gone (the pid may be reused),
|
|
172
|
+
* and also triggered by the spec's abort signal.
|
|
173
|
+
*/
|
|
174
|
+
terminate(): void;
|
|
175
|
+
/**
|
|
176
|
+
* Wait until the process tree has exited — the tree, not just the direct
|
|
177
|
+
* child, so a still-running helper is observable before teardown returns.
|
|
178
|
+
* @param signal - optional bound for the wait.
|
|
179
|
+
* @returns `true` when the tree exited, `false` when the signal aborted first.
|
|
180
|
+
*/
|
|
181
|
+
waitForExit(signal?: AbortSignal): Promise<boolean>;
|
|
182
|
+
}
|
|
183
|
+
/** Signals supported by the terminal-process primitive. */
|
|
184
|
+
export type SubprocessTerminalSignal = 'SIGINT' | 'SIGTERM' | 'SIGKILL' | 'SIGTSTP' | 'SIGHUP';
|
|
185
|
+
/** A fully specified terminal-process spawn. */
|
|
186
|
+
export interface SubprocessTerminalSpawnSpec {
|
|
187
|
+
/** Executable and arguments; `argv[0]` is the program. */
|
|
188
|
+
argv: readonly string[];
|
|
189
|
+
/** Working directory in this subprocess provider's execution world. */
|
|
190
|
+
cwd: string;
|
|
191
|
+
/** Explicit environment layered after the provider's ambient scrub. */
|
|
192
|
+
env?: Record<string, string> | undefined;
|
|
193
|
+
/** Initial terminal row count. */
|
|
194
|
+
rows: number;
|
|
195
|
+
/** Initial terminal column count. */
|
|
196
|
+
cols: number;
|
|
197
|
+
/** TERM-to-KILL cleanup grace for the complete terminal session. */
|
|
198
|
+
graceMs: number;
|
|
199
|
+
/** Cancellation of terminal allocation; a published handle owns its later lifetime. */
|
|
200
|
+
signal?: AbortSignal | undefined;
|
|
201
|
+
}
|
|
202
|
+
/** Current foreground process-group facts for one terminal. */
|
|
203
|
+
export interface SubprocessTerminalForeground {
|
|
204
|
+
/** Foreground process-group id published by the terminal driver. */
|
|
205
|
+
processGroupId: number;
|
|
206
|
+
/** Whether the provider can currently prove that group is waiting on terminal input. */
|
|
207
|
+
inputWaiting: boolean;
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* One live terminal process and its owned OS session. Terminal allocation,
|
|
211
|
+
* foreground-group inspection/signalling, and session-tree cleanup are one
|
|
212
|
+
* deep subprocess primitive because none can be reconstructed from ordinary
|
|
213
|
+
* piped stdio without substrate-specific process control.
|
|
214
|
+
*/
|
|
215
|
+
export interface SubprocessTerminalHandle {
|
|
216
|
+
/** Top-level terminal process id. */
|
|
217
|
+
readonly pid: number;
|
|
218
|
+
/** UTF-8 terminal output bytes in delivery order; ends after queued output when the terminal exits. */
|
|
219
|
+
readonly output: Readable;
|
|
220
|
+
/** Resolves when the top-level process exits; rejects only for a live transport failure. */
|
|
221
|
+
readonly done: Promise<SubprocessOutcome>;
|
|
222
|
+
/**
|
|
223
|
+
* Write text to the terminal input.
|
|
224
|
+
* @param data - text to deliver without implicit newline conversion.
|
|
225
|
+
*/
|
|
226
|
+
write(data: string): Promise<void>;
|
|
227
|
+
/**
|
|
228
|
+
* Inspect the current foreground process group.
|
|
229
|
+
* @returns its id and input-wait fact, or undefined when no foreground group can be resolved.
|
|
230
|
+
*/
|
|
231
|
+
inspectForeground(): Promise<SubprocessTerminalForeground | undefined>;
|
|
232
|
+
/**
|
|
233
|
+
* Deliver a signal to the current foreground process group.
|
|
234
|
+
* @param signal - permitted terminal signal.
|
|
235
|
+
* @returns the exact group id that received it.
|
|
236
|
+
*/
|
|
237
|
+
signalForeground(signal: SubprocessTerminalSignal): Promise<number>;
|
|
238
|
+
/**
|
|
239
|
+
* Idempotently terminate every terminal-session member the provider can still observe and await quiescence.
|
|
240
|
+
* After settlement, no write, inspection, or signal call remains in flight.
|
|
241
|
+
* Providers document substrate-specific observability limits.
|
|
242
|
+
*/
|
|
243
|
+
terminate(): Promise<void>;
|
|
244
|
+
}
|
|
245
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/lib/types.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vocabulary for the subprocess Service Definition: fully-specified spawn requests with
|
|
3
|
+
* Node-shaped per-stream stdio modes, bounded collected output with spill
|
|
4
|
+
* recovery, raw piped streams, and tree-scoped termination. Command
|
|
5
|
+
* defaulting, shell semantics, protocol framing, and presentation belong to
|
|
6
|
+
* consumers such as the bash executor seam.
|
|
7
|
+
*
|
|
8
|
+
* @module @bo-agent/subprocess/types
|
|
9
|
+
*/
|
|
10
|
+
/** Namespace prefix reserved for harness-managed child environment facts. */
|
|
11
|
+
export const DSH_ENV_PREFIX = 'DSH_';
|
|
12
|
+
//# sourceMappingURL=types.js.map
|
package/lib/types.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,6EAA6E;AAC7E,MAAM,CAAC,MAAM,cAAc,GAAG,MAAe,CAAA"}
|
package/package.json
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@bo-agent/subprocess",
|
|
3
|
+
"description": "Abstract subprocess Service Definition: managed process trees, collected stdio with spill, and tree-scoped termination (standalone product, forked from the DeepSeek Harness)",
|
|
4
|
+
"version": "0.0.2",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "lib/index.js",
|
|
7
|
+
"types": "lib/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./lib/index.d.ts",
|
|
11
|
+
"default": "./lib/index.js"
|
|
12
|
+
},
|
|
13
|
+
"./package.json": "./package.json"
|
|
14
|
+
},
|
|
15
|
+
"files": [
|
|
16
|
+
"lib/"
|
|
17
|
+
],
|
|
18
|
+
"publishConfig": {
|
|
19
|
+
"access": "public"
|
|
20
|
+
},
|
|
21
|
+
"license": "MIT",
|
|
22
|
+
"dependencies": {
|
|
23
|
+
"cordis": "^4.0.0-rc.10",
|
|
24
|
+
"@bo-agent/inline": "0.0.2"
|
|
25
|
+
},
|
|
26
|
+
"peerDependencies": {
|
|
27
|
+
"cordis": "^4.0.0-rc.10",
|
|
28
|
+
"@bo-agent/inline": "0.0.2"
|
|
29
|
+
}
|
|
30
|
+
}
|