@cartanova/qgrid-cli 2.7.0 → 2.7.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/README.ko.md +3 -2
- package/README.md +3 -2
- package/bundle/dist/_virtual/_rolldown/runtime.js +20 -1
- package/bundle/dist/application/monit/monit.frame.js +27 -14
- package/bundle/dist/application/monit/monit.types.js +22 -13
- package/bundle/dist/application/qgrid/conv-routing.js +21 -11
- package/bundle/dist/application/qgrid/oauth.js +1 -1
- package/bundle/dist/application/qgrid/qgrid-run-lifecycle.js +15 -4
- package/bundle/dist/application/qgrid/qgrid.dispatcher.js +34 -14
- package/bundle/dist/application/qgrid/qgrid.frame.js +50 -73
- package/bundle/dist/application/qgrid/qgrid.types.js +4 -1
- package/bundle/dist/application/qgrid/schema-prompt.js +240 -0
- package/bundle/dist/application/qgrid/token-subscriber.js +5 -5
- package/bundle/dist/application/qgrid/tool-emulation-schema.js +13 -1
- package/bundle/dist/application/qgrid/tool-emulation.js +8 -6
- package/bundle/dist/application/queries.generated.js +3 -1
- package/bundle/dist/application/request-log/json-schema-type-text.js +55 -0
- package/bundle/dist/application/request-log/request-log.model.js +85 -3
- package/bundle/dist/application/request-log/request-log.types.js +3 -2
- package/bundle/dist/application/request-log/zod-code-format.js +71 -0
- package/bundle/dist/application/setting/setting.constant.js +2 -62
- package/bundle/dist/application/setting/setting.model.js +3 -3
- package/bundle/dist/application/setting/setting.store.js +2 -2
- package/bundle/dist/application/sonamu.generated.js +11 -4
- package/bundle/dist/application/sonamu.generated.sso.js +7 -3
- package/bundle/dist/i18n/sd.generated.js +5 -2
- package/bundle/dist/migrations/20260814130113_alter_request_logs_add1_alter1.js +15 -0
- package/bundle/dist/migrations/20260814131051_alter_request_logs_add1_alter1.js +15 -0
- package/bundle/dist/migrations/20260814134846_alter_request_logs_add1_alter1.js +15 -0
- package/bundle/dist/migrations/20260814140759_alter_request_logs_alter1.js +13 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/2020.js +112 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/codegen/code.js +140 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/codegen/index.js +676 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/codegen/scope.js +143 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/errors.js +104 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/index.js +225 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/names.js +30 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/ref_error.js +20 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/resolve.js +135 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/rules.js +63 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/util.js +148 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/validate/applicability.js +25 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/validate/boolSchema.js +50 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/validate/dataType.js +174 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/validate/defaults.js +33 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/validate/index.js +435 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/validate/keyword.js +115 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/validate/subschema.js +74 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/core.js +585 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/refs/data.js +20 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/refs/json-schema-2020-12/index.js +44 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/refs/json-schema-2020-12/meta/applicator.js +52 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/refs/json-schema-2020-12/meta/content.js +22 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/refs/json-schema-2020-12/meta/core.js +53 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/refs/json-schema-2020-12/meta/format-annotation.js +18 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/refs/json-schema-2020-12/meta/meta-data.js +38 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/refs/json-schema-2020-12/meta/unevaluated.js +21 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/refs/json-schema-2020-12/meta/validation.js +87 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/refs/json-schema-2020-12/schema.js +61 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/runtime/equal.js +14 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/runtime/ucs2length.js +27 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/runtime/uri.js +14 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/runtime/validation_error.js +18 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js +59 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js +98 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/allOf.js +31 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/anyOf.js +18 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/contains.js +91 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/dependencies.js +89 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/dependentSchemas.js +18 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/if.js +64 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/index.js +62 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/items.js +61 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/items2020.js +36 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/not.js +33 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/oneOf.js +53 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js +63 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js +19 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/properties.js +54 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js +43 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/thenElse.js +19 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/code.js +132 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/core/id.js +16 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/core/index.js +24 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/core/ref.js +114 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/discriminator/index.js +103 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/discriminator/types.js +16 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/draft2020.js +37 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/dynamic/dynamicAnchor.js +48 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/dynamic/dynamicRef.js +47 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/dynamic/index.js +24 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/dynamic/recursiveAnchor.js +22 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/dynamic/recursiveRef.js +17 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/format/format.js +94 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/format/index.js +12 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/metadata.js +25 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/next.js +21 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/unevaluated/index.js +15 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedItems.js +48 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedProperties.js +61 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/const.js +29 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/dependentRequired.js +19 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/enum.js +51 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/index.js +50 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/limitContains.js +20 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/limitItems.js +30 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/limitLength.js +35 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/limitNumber.js +49 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/limitProperties.js +30 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/multipleOf.js +29 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/pattern.js +40 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/required.js +74 -0
- package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js +72 -0
- package/bundle/dist/node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal/index.js +35 -0
- package/bundle/dist/node_modules/.pnpm/fast-uri@3.1.0/node_modules/fast-uri/index.js +238 -0
- package/bundle/dist/node_modules/.pnpm/fast-uri@3.1.0/node_modules/fast-uri/lib/schemes.js +189 -0
- package/bundle/dist/node_modules/.pnpm/fast-uri@3.1.0/node_modules/fast-uri/lib/utils.js +284 -0
- package/bundle/dist/node_modules/.pnpm/json-schema-traverse@1.0.0/node_modules/json-schema-traverse/index.js +80 -0
- package/bundle/dist/node_modules/.pnpm/vitest@4.1.10_@opentelemetry_api@1.9.0_@types_node@25.0.7_@vitest_coverage-v8@4.1.10_vi_3892b4338df694f79f7d384fad23d930/node_modules/vitest/dist/chunks/_commonjsHelpers.D26ty3Ew.js +9 -0
- package/bundle/dist/node_modules/.pnpm/vitest@4.1.10_@opentelemetry_api@1.9.0_@types_node@25.0.7_@vitest_coverage-v8@4.1.10_vi_3892b4338df694f79f7d384fad23d930/node_modules/vitest/dist/chunks/benchmark.CX_oY03V.js +41 -0
- package/bundle/dist/node_modules/.pnpm/vitest@4.1.10_@opentelemetry_api@1.9.0_@types_node@25.0.7_@vitest_coverage-v8@4.1.10_vi_3892b4338df694f79f7d384fad23d930/node_modules/vitest/dist/chunks/evaluatedModules.Dg1zASAC.js +19 -0
- package/bundle/dist/node_modules/.pnpm/vitest@4.1.10_@opentelemetry_api@1.9.0_@types_node@25.0.7_@vitest_coverage-v8@4.1.10_vi_3892b4338df694f79f7d384fad23d930/node_modules/vitest/dist/chunks/index.Chj8NDwU.js +202 -0
- package/bundle/dist/node_modules/.pnpm/vitest@4.1.10_@opentelemetry_api@1.9.0_@types_node@25.0.7_@vitest_coverage-v8@4.1.10_vi_3892b4338df694f79f7d384fad23d930/node_modules/vitest/dist/chunks/index.DdgEv5B1.js +46 -0
- package/bundle/dist/node_modules/.pnpm/vitest@4.1.10_@opentelemetry_api@1.9.0_@types_node@25.0.7_@vitest_coverage-v8@4.1.10_vi_3892b4338df694f79f7d384fad23d930/node_modules/vitest/dist/chunks/rpc.MzXet3jl.js +119 -0
- package/bundle/dist/node_modules/.pnpm/vitest@4.1.10_@opentelemetry_api@1.9.0_@types_node@25.0.7_@vitest_coverage-v8@4.1.10_vi_3892b4338df694f79f7d384fad23d930/node_modules/vitest/dist/chunks/test.DNmyFkvJ.js +3044 -0
- package/bundle/dist/node_modules/.pnpm/vitest@4.1.10_@opentelemetry_api@1.9.0_@types_node@25.0.7_@vitest_coverage-v8@4.1.10_vi_3892b4338df694f79f7d384fad23d930/node_modules/vitest/dist/chunks/utils.BX5Fg8C4.js +59 -0
- package/bundle/dist/node_modules/.pnpm/vitest@4.1.10_@opentelemetry_api@1.9.0_@types_node@25.0.7_@vitest_coverage-v8@4.1.10_vi_3892b4338df694f79f7d384fad23d930/node_modules/vitest/dist/index.js +28 -0
- package/bundle/dist/sonamu.config.js +10 -9
- package/bundle/dist/testing/schema-bench.js +0 -0
- package/bundle/dist/testing/setup-mocks.js +2 -2
- package/bundle/dist/utils/providers/anthropic/anthropic-dispatcher.js +14 -2
- package/bundle/dist/utils/providers/anthropic/claude-session.js +1 -1
- package/bundle/dist/utils/providers/anthropic/fence-strip.js +83 -0
- package/bundle/dist/utils/providers/anthropic/stream-json-adapter.js +3 -5
- package/bundle/dist/utils/providers/common/model-cost.js +1 -1
- package/bundle/dist/utils/providers/common/schema-validation.js +1 -1
- package/bundle/dist/utils/providers/openai/openai-backend-protocol.js +144 -0
- package/bundle/dist/utils/providers/openai/openai-constants.js +4 -2
- package/bundle/dist/utils/providers/openai/openai-direct-client.js +327 -0
- package/bundle/dist/utils/providers/openai/openai-dispatcher.js +358 -781
- package/bundle/dist/utils/providers/openai/openai-oauth.js +84 -0
- package/bundle/dist/utils/providers/openai/openai-quota.js +76 -5
- package/bundle/dist/utils/providers/openai/openai-refresh.js +3 -3
- package/bundle/dist/utils/providers/openai/openai-sse.js +72 -0
- package/bundle/dist/utils/providers/openai/openai-transport-config.js +14 -0
- package/bundle/src/application/monit/monit.frame.test.ts +14 -17
- package/bundle/src/application/monit/monit.frame.ts +23 -12
- package/bundle/src/application/monit/monit.types.ts +40 -11
- package/bundle/src/application/qgrid/conv-routing.test.ts +67 -0
- package/bundle/src/application/qgrid/conv-routing.ts +46 -12
- package/bundle/src/application/qgrid/qgrid-oauth-redirect.test.ts +92 -2
- package/bundle/src/application/qgrid/qgrid-run-lifecycle.test.ts +3 -0
- package/bundle/src/application/qgrid/qgrid-run-lifecycle.ts +15 -1
- package/bundle/src/application/qgrid/qgrid.dispatcher.test.ts +286 -40
- package/bundle/src/application/qgrid/qgrid.dispatcher.ts +58 -14
- package/bundle/src/application/qgrid/qgrid.frame.test.ts +120 -153
- package/bundle/src/application/qgrid/qgrid.frame.ts +57 -94
- package/bundle/src/application/qgrid/qgrid.types.ts +11 -4
- package/bundle/src/application/qgrid/schema-prompt.test.ts +166 -0
- package/bundle/src/application/qgrid/schema-prompt.ts +293 -0
- package/bundle/src/application/qgrid/token-subscriber.ts +4 -4
- package/bundle/src/application/qgrid/tool-emulation-schema.ts +1 -1
- package/bundle/src/application/qgrid/tool-emulation.test.ts +37 -0
- package/bundle/src/application/qgrid/tool-emulation.ts +19 -7
- package/bundle/src/application/queries.generated.ts +6 -0
- package/bundle/src/application/request-log/json-schema-type-text.test.ts +96 -0
- package/bundle/src/application/request-log/json-schema-type-text.ts +83 -0
- package/bundle/src/application/request-log/request-log.entity.json +147 -21
- package/bundle/src/application/request-log/request-log.model.ts +108 -0
- package/bundle/src/application/request-log/request-log.types.ts +2 -0
- package/bundle/src/application/request-log/zod-code-format.test.ts +31 -0
- package/bundle/src/application/request-log/zod-code-format.ts +73 -0
- package/bundle/src/application/setting/setting.constant.test.ts +22 -24
- package/bundle/src/application/setting/setting.constant.ts +2 -63
- package/bundle/src/application/setting/setting.entity.json +1 -1
- package/bundle/src/application/setting/setting.store.ts +1 -1
- package/bundle/src/application/sonamu.generated.http +20 -1
- package/bundle/src/application/sonamu.generated.sso.ts +4 -0
- package/bundle/src/application/sonamu.generated.ts +10 -0
- package/bundle/src/i18n/sd.generated.ts +6 -1
- package/bundle/src/migrations/20260814130113_alter_request_logs_add1_alter1.ts +15 -0
- package/bundle/src/migrations/20260814131051_alter_request_logs_add1_alter1.ts +15 -0
- package/bundle/src/migrations/20260814134846_alter_request_logs_add1_alter1.ts +15 -0
- package/bundle/src/migrations/20260814140759_alter_request_logs_alter1.ts +13 -0
- package/bundle/src/sonamu.config.ts +9 -13
- package/bundle/src/testing/schema-bench.test.ts +358 -0
- package/bundle/src/testing/schema-bench.ts +352 -0
- package/bundle/src/utils/providers/anthropic/anthropic-dispatcher.ts +17 -2
- package/bundle/src/utils/providers/anthropic/claude-session.ts +1 -3
- package/bundle/src/utils/providers/anthropic/fence-strip.test.ts +122 -0
- package/bundle/src/utils/providers/anthropic/fence-strip.ts +105 -0
- package/bundle/src/utils/providers/anthropic/stream-json-adapter.test.ts +1 -2
- package/bundle/src/utils/providers/anthropic/stream-json-adapter.ts +4 -11
- package/bundle/src/utils/providers/common/model-cost.ts +4 -9
- package/bundle/src/utils/providers/common/provider-dispatcher.ts +10 -8
- package/bundle/src/utils/providers/common/provider-types.ts +48 -0
- package/bundle/src/utils/providers/common/schema-validation.ts +1 -1
- package/bundle/src/utils/providers/openai/openai-backend-protocol.test.ts +106 -0
- package/bundle/src/utils/providers/openai/openai-backend-protocol.ts +255 -0
- package/bundle/src/utils/providers/openai/openai-constants.ts +2 -0
- package/bundle/src/utils/providers/openai/openai-direct-client.test.ts +610 -0
- package/bundle/src/utils/providers/openai/openai-direct-client.ts +478 -0
- package/bundle/src/utils/providers/openai/openai-dispatcher.test.ts +336 -1723
- package/bundle/src/utils/providers/openai/openai-dispatcher.ts +458 -1175
- package/bundle/src/utils/providers/openai/openai-oauth.test.ts +95 -0
- package/bundle/src/utils/providers/openai/openai-oauth.ts +141 -0
- package/bundle/src/utils/providers/openai/openai-quota.test.ts +80 -7
- package/bundle/src/utils/providers/openai/openai-quota.ts +105 -4
- package/bundle/src/utils/providers/openai/openai-refresh.test.ts +120 -0
- package/bundle/src/utils/providers/openai/openai-refresh.ts +3 -1
- package/bundle/src/utils/providers/openai/openai-sse.test.ts +52 -0
- package/bundle/src/utils/providers/openai/openai-sse.ts +79 -0
- package/bundle/src/utils/providers/openai/openai-transport-config.ts +17 -0
- package/bundle/web-dist/client/assets/index-BldeEvAK.css +1 -0
- package/bundle/web-dist/client/assets/index-DkAXPF9q.js +106 -0
- package/bundle/web-dist/client/assets/logs-DlI6OojL.js +1 -0
- package/bundle/web-dist/client/assets/monit-qap66dhi.js +1 -0
- package/bundle/web-dist/client/assets/routes-CV07Pzde.js +5 -0
- package/bundle/web-dist/client/assets/services.generated-CSW8bhCP.js +51 -0
- package/bundle/web-dist/client/assets/settings-CdYub4yo.js +1 -0
- package/bundle/web-dist/client/assets/show-DA1L8DVD.js +2 -0
- package/bundle/web-dist/client/assets/tokens-Dt3gfkwP.js +1 -0
- package/bundle/web-dist/client/assets/use-oauth-login-flow-Cwi0HtJY.js +1 -0
- package/bundle/web-dist/client/index.html +3 -3
- package/bundle/web-dist/server/assets/lazyRouteComponent-0y-znAfz.js +1856 -0
- package/bundle/web-dist/server/assets/logs-CJBbHM3_.js +481 -0
- package/bundle/web-dist/server/assets/monit-8WAsPETB.js +1670 -0
- package/bundle/web-dist/server/assets/plus-9das21ju.js +19 -0
- package/bundle/web-dist/server/assets/react-dom-zmEq8BVp.js +462 -0
- package/bundle/web-dist/server/assets/routes-B6bX3o41.js +2924 -0
- package/bundle/web-dist/server/assets/services.generated-DyPeBI00.js +23644 -0
- package/bundle/web-dist/server/assets/settings-D1u5WdpP.js +597 -0
- package/bundle/web-dist/server/assets/show-Cr7vwR0l.js +2861 -0
- package/bundle/web-dist/server/assets/tokens-BumM0gnH.js +441 -0
- package/bundle/web-dist/server/assets/use-oauth-login-flow-DmsHGOlx.js +160 -0
- package/bundle/web-dist/server/entry-server.generated.js +12 -12
- package/dist/cli.d.ts +10 -1
- package/dist/cli.js +1 -6
- package/package.json +3 -2
- package/skills/qgrid/SKILL.md +5 -5
- package/skills/qgrid/references/ai-sdk-provider-contract.md +36 -25
- package/skills/qgrid/references/anthropic-claude-code-runtime.md +31 -14
- package/skills/qgrid/references/cli-env-and-server-boot.md +6 -13
- package/skills/qgrid/references/decision-rationale.md +28 -26
- package/skills/qgrid/references/docs-workflow.md +1 -1
- package/skills/qgrid/references/openai-codex-runtime.md +39 -156
- package/skills/qgrid/references/prompt-cache-and-usage.md +35 -68
- package/skills/qgrid/references/provider-runtime-differences.md +18 -18
- package/skills/qgrid/references/repo-map.md +2 -2
- package/skills/qgrid/references/request-log-run-lifecycle.md +12 -2
- package/skills/qgrid/references/sonamu-api-web-flow.md +4 -0
- package/skills/qgrid/references/token-auth-quota-lifecycle.md +14 -24
- package/skills/qgrid/references/tool-calling-and-multiturn.md +19 -9
- package/skills/qgrid/references/verification-and-debugging.md +17 -15
- package/bundle/dist/codex-protocol/AgentPath.js +0 -1
- package/bundle/dist/codex-protocol/ApplyPatchApprovalParams.js +0 -1
- package/bundle/dist/codex-protocol/ApplyPatchApprovalResponse.js +0 -1
- package/bundle/dist/codex-protocol/AuthMode.js +0 -1
- package/bundle/dist/codex-protocol/ClientInfo.js +0 -1
- package/bundle/dist/codex-protocol/ClientNotification.js +0 -1
- package/bundle/dist/codex-protocol/ClientRequest.js +0 -1
- package/bundle/dist/codex-protocol/CollaborationMode.js +0 -1
- package/bundle/dist/codex-protocol/ContentItem.js +0 -1
- package/bundle/dist/codex-protocol/ConversationGitInfo.js +0 -1
- package/bundle/dist/codex-protocol/ConversationSummary.js +0 -1
- package/bundle/dist/codex-protocol/ExecCommandApprovalParams.js +0 -1
- package/bundle/dist/codex-protocol/ExecCommandApprovalResponse.js +0 -1
- package/bundle/dist/codex-protocol/ExecPolicyAmendment.js +0 -1
- package/bundle/dist/codex-protocol/FileChange.js +0 -1
- package/bundle/dist/codex-protocol/ForcedLoginMethod.js +0 -1
- package/bundle/dist/codex-protocol/FunctionCallOutputBody.js +0 -1
- package/bundle/dist/codex-protocol/FunctionCallOutputContentItem.js +0 -1
- package/bundle/dist/codex-protocol/FuzzyFileSearchMatchType.js +0 -1
- package/bundle/dist/codex-protocol/FuzzyFileSearchParams.js +0 -1
- package/bundle/dist/codex-protocol/FuzzyFileSearchResponse.js +0 -1
- package/bundle/dist/codex-protocol/FuzzyFileSearchResult.js +0 -1
- package/bundle/dist/codex-protocol/FuzzyFileSearchSessionCompletedNotification.js +0 -1
- package/bundle/dist/codex-protocol/FuzzyFileSearchSessionUpdatedNotification.js +0 -1
- package/bundle/dist/codex-protocol/GetAuthStatusParams.js +0 -1
- package/bundle/dist/codex-protocol/GetAuthStatusResponse.js +0 -1
- package/bundle/dist/codex-protocol/GetConversationSummaryParams.js +0 -1
- package/bundle/dist/codex-protocol/GetConversationSummaryResponse.js +0 -1
- package/bundle/dist/codex-protocol/GitDiffToRemoteParams.js +0 -1
- package/bundle/dist/codex-protocol/GitDiffToRemoteResponse.js +0 -1
- package/bundle/dist/codex-protocol/GitSha.js +0 -1
- package/bundle/dist/codex-protocol/ImageDetail.js +0 -1
- package/bundle/dist/codex-protocol/InitializeCapabilities.js +0 -1
- package/bundle/dist/codex-protocol/InitializeParams.js +0 -1
- package/bundle/dist/codex-protocol/InitializeResponse.js +0 -1
- package/bundle/dist/codex-protocol/InputModality.js +0 -1
- package/bundle/dist/codex-protocol/InternalSessionSource.js +0 -1
- package/bundle/dist/codex-protocol/LocalShellAction.js +0 -1
- package/bundle/dist/codex-protocol/LocalShellExecAction.js +0 -1
- package/bundle/dist/codex-protocol/LocalShellStatus.js +0 -1
- package/bundle/dist/codex-protocol/MessagePhase.js +0 -1
- package/bundle/dist/codex-protocol/ModeKind.js +0 -1
- package/bundle/dist/codex-protocol/NetworkPolicyAmendment.js +0 -1
- package/bundle/dist/codex-protocol/NetworkPolicyRuleAction.js +0 -1
- package/bundle/dist/codex-protocol/ParsedCommand.js +0 -1
- package/bundle/dist/codex-protocol/Personality.js +0 -1
- package/bundle/dist/codex-protocol/PlanType.js +0 -1
- package/bundle/dist/codex-protocol/RealtimeConversationVersion.js +0 -1
- package/bundle/dist/codex-protocol/RealtimeOutputModality.js +0 -1
- package/bundle/dist/codex-protocol/RealtimeVoice.js +0 -1
- package/bundle/dist/codex-protocol/RealtimeVoicesList.js +0 -1
- package/bundle/dist/codex-protocol/ReasoningEffort.js +0 -1
- package/bundle/dist/codex-protocol/ReasoningItemContent.js +0 -1
- package/bundle/dist/codex-protocol/ReasoningItemReasoningSummary.js +0 -1
- package/bundle/dist/codex-protocol/ReasoningSummary.js +0 -1
- package/bundle/dist/codex-protocol/RequestId.js +0 -1
- package/bundle/dist/codex-protocol/Resource.js +0 -1
- package/bundle/dist/codex-protocol/ResourceContent.js +0 -1
- package/bundle/dist/codex-protocol/ResourceTemplate.js +0 -1
- package/bundle/dist/codex-protocol/ResponseItem.js +0 -1
- package/bundle/dist/codex-protocol/ReviewDecision.js +0 -1
- package/bundle/dist/codex-protocol/ServerNotification.js +0 -1
- package/bundle/dist/codex-protocol/ServerRequest.js +0 -1
- package/bundle/dist/codex-protocol/SessionSource.js +0 -1
- package/bundle/dist/codex-protocol/Settings.js +0 -1
- package/bundle/dist/codex-protocol/SubAgentSource.js +0 -1
- package/bundle/dist/codex-protocol/ThreadId.js +0 -1
- package/bundle/dist/codex-protocol/ThreadMemoryMode.js +0 -1
- package/bundle/dist/codex-protocol/Tool.js +0 -1
- package/bundle/dist/codex-protocol/Verbosity.js +0 -1
- package/bundle/dist/codex-protocol/WebSearchAction.js +0 -1
- package/bundle/dist/codex-protocol/WebSearchContextSize.js +0 -1
- package/bundle/dist/codex-protocol/WebSearchLocation.js +0 -1
- package/bundle/dist/codex-protocol/WebSearchMode.js +0 -1
- package/bundle/dist/codex-protocol/WebSearchToolConfig.js +0 -1
- package/bundle/dist/codex-protocol/index.js +0 -2
- package/bundle/dist/codex-protocol/serde_json/JsonValue.js +0 -1
- package/bundle/dist/codex-protocol/v2/Account.js +0 -1
- package/bundle/dist/codex-protocol/v2/AccountLoginCompletedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/AccountRateLimitsUpdatedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/AccountUpdatedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ActivePermissionProfile.js +0 -1
- package/bundle/dist/codex-protocol/v2/ActivePermissionProfileModification.js +0 -1
- package/bundle/dist/codex-protocol/v2/AddCreditsNudgeCreditType.js +0 -1
- package/bundle/dist/codex-protocol/v2/AddCreditsNudgeEmailStatus.js +0 -1
- package/bundle/dist/codex-protocol/v2/AdditionalFileSystemPermissions.js +0 -1
- package/bundle/dist/codex-protocol/v2/AdditionalNetworkPermissions.js +0 -1
- package/bundle/dist/codex-protocol/v2/AdditionalPermissionProfile.js +0 -1
- package/bundle/dist/codex-protocol/v2/AgentMessageDeltaNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/AnalyticsConfig.js +0 -1
- package/bundle/dist/codex-protocol/v2/AppBranding.js +0 -1
- package/bundle/dist/codex-protocol/v2/AppInfo.js +0 -1
- package/bundle/dist/codex-protocol/v2/AppListUpdatedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/AppMetadata.js +0 -1
- package/bundle/dist/codex-protocol/v2/AppReview.js +0 -1
- package/bundle/dist/codex-protocol/v2/AppScreenshot.js +0 -1
- package/bundle/dist/codex-protocol/v2/AppSummary.js +0 -1
- package/bundle/dist/codex-protocol/v2/AppToolApproval.js +0 -1
- package/bundle/dist/codex-protocol/v2/AppToolsConfig.js +0 -1
- package/bundle/dist/codex-protocol/v2/ApprovalsReviewer.js +0 -1
- package/bundle/dist/codex-protocol/v2/AppsConfig.js +0 -1
- package/bundle/dist/codex-protocol/v2/AppsDefaultConfig.js +0 -1
- package/bundle/dist/codex-protocol/v2/AppsListParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/AppsListResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/AskForApproval.js +0 -1
- package/bundle/dist/codex-protocol/v2/AutoReviewDecisionSource.js +0 -1
- package/bundle/dist/codex-protocol/v2/ByteRange.js +0 -1
- package/bundle/dist/codex-protocol/v2/CancelLoginAccountParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/CancelLoginAccountResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/CancelLoginAccountStatus.js +0 -1
- package/bundle/dist/codex-protocol/v2/ChatgptAuthTokensRefreshParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/ChatgptAuthTokensRefreshReason.js +0 -1
- package/bundle/dist/codex-protocol/v2/ChatgptAuthTokensRefreshResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/CodexErrorInfo.js +0 -1
- package/bundle/dist/codex-protocol/v2/CollabAgentState.js +0 -1
- package/bundle/dist/codex-protocol/v2/CollabAgentStatus.js +0 -1
- package/bundle/dist/codex-protocol/v2/CollabAgentTool.js +0 -1
- package/bundle/dist/codex-protocol/v2/CollabAgentToolCallStatus.js +0 -1
- package/bundle/dist/codex-protocol/v2/CollaborationModeMask.js +0 -1
- package/bundle/dist/codex-protocol/v2/CommandAction.js +0 -1
- package/bundle/dist/codex-protocol/v2/CommandExecOutputDeltaNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/CommandExecOutputStream.js +0 -1
- package/bundle/dist/codex-protocol/v2/CommandExecParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/CommandExecResizeParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/CommandExecResizeResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/CommandExecResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/CommandExecTerminalSize.js +0 -1
- package/bundle/dist/codex-protocol/v2/CommandExecTerminateParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/CommandExecTerminateResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/CommandExecWriteParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/CommandExecWriteResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/CommandExecutionApprovalDecision.js +0 -1
- package/bundle/dist/codex-protocol/v2/CommandExecutionOutputDeltaNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/CommandExecutionRequestApprovalParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/CommandExecutionRequestApprovalResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/CommandExecutionSource.js +0 -1
- package/bundle/dist/codex-protocol/v2/CommandExecutionStatus.js +0 -1
- package/bundle/dist/codex-protocol/v2/CommandMigration.js +0 -1
- package/bundle/dist/codex-protocol/v2/Config.js +0 -1
- package/bundle/dist/codex-protocol/v2/ConfigBatchWriteParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/ConfigEdit.js +0 -1
- package/bundle/dist/codex-protocol/v2/ConfigLayer.js +0 -1
- package/bundle/dist/codex-protocol/v2/ConfigLayerMetadata.js +0 -1
- package/bundle/dist/codex-protocol/v2/ConfigLayerSource.js +0 -1
- package/bundle/dist/codex-protocol/v2/ConfigReadParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/ConfigReadResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/ConfigRequirements.js +0 -1
- package/bundle/dist/codex-protocol/v2/ConfigRequirementsReadResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/ConfigValueWriteParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/ConfigWarningNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ConfigWriteResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/ConfiguredHookHandler.js +0 -1
- package/bundle/dist/codex-protocol/v2/ConfiguredHookMatcherGroup.js +0 -1
- package/bundle/dist/codex-protocol/v2/ContextCompactedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/CreditsSnapshot.js +0 -1
- package/bundle/dist/codex-protocol/v2/DeprecationNoticeNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/DynamicToolCallOutputContentItem.js +0 -1
- package/bundle/dist/codex-protocol/v2/DynamicToolCallParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/DynamicToolCallResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/DynamicToolCallStatus.js +0 -1
- package/bundle/dist/codex-protocol/v2/DynamicToolSpec.js +0 -1
- package/bundle/dist/codex-protocol/v2/ErrorNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ExecPolicyAmendment.js +0 -1
- package/bundle/dist/codex-protocol/v2/ExperimentalFeature.js +0 -1
- package/bundle/dist/codex-protocol/v2/ExperimentalFeatureEnablementSetParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/ExperimentalFeatureEnablementSetResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/ExperimentalFeatureListParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/ExperimentalFeatureListResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/ExperimentalFeatureStage.js +0 -1
- package/bundle/dist/codex-protocol/v2/ExternalAgentConfigDetectParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/ExternalAgentConfigDetectResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/ExternalAgentConfigImportCompletedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ExternalAgentConfigImportParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/ExternalAgentConfigImportResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/ExternalAgentConfigMigrationItem.js +0 -1
- package/bundle/dist/codex-protocol/v2/ExternalAgentConfigMigrationItemType.js +0 -1
- package/bundle/dist/codex-protocol/v2/FeedbackUploadParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/FeedbackUploadResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/FileChangeApprovalDecision.js +0 -1
- package/bundle/dist/codex-protocol/v2/FileChangeOutputDeltaNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/FileChangePatchUpdatedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/FileChangeRequestApprovalParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/FileChangeRequestApprovalResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/FileSystemAccessMode.js +0 -1
- package/bundle/dist/codex-protocol/v2/FileSystemPath.js +0 -1
- package/bundle/dist/codex-protocol/v2/FileSystemSandboxEntry.js +0 -1
- package/bundle/dist/codex-protocol/v2/FileSystemSpecialPath.js +0 -1
- package/bundle/dist/codex-protocol/v2/FileUpdateChange.js +0 -1
- package/bundle/dist/codex-protocol/v2/FsChangedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/FsCopyParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/FsCopyResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/FsCreateDirectoryParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/FsCreateDirectoryResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/FsGetMetadataParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/FsGetMetadataResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/FsReadDirectoryEntry.js +0 -1
- package/bundle/dist/codex-protocol/v2/FsReadDirectoryParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/FsReadDirectoryResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/FsReadFileParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/FsReadFileResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/FsRemoveParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/FsRemoveResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/FsUnwatchParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/FsUnwatchResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/FsWatchParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/FsWatchResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/FsWriteFileParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/FsWriteFileResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/GetAccountParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/GetAccountRateLimitsResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/GetAccountResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/GitInfo.js +0 -1
- package/bundle/dist/codex-protocol/v2/GrantedPermissionProfile.js +0 -1
- package/bundle/dist/codex-protocol/v2/GuardianApprovalReview.js +0 -1
- package/bundle/dist/codex-protocol/v2/GuardianApprovalReviewAction.js +0 -1
- package/bundle/dist/codex-protocol/v2/GuardianApprovalReviewStatus.js +0 -1
- package/bundle/dist/codex-protocol/v2/GuardianCommandSource.js +0 -1
- package/bundle/dist/codex-protocol/v2/GuardianRiskLevel.js +0 -1
- package/bundle/dist/codex-protocol/v2/GuardianUserAuthorization.js +0 -1
- package/bundle/dist/codex-protocol/v2/GuardianWarningNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/HookCompletedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/HookErrorInfo.js +0 -1
- package/bundle/dist/codex-protocol/v2/HookEventName.js +0 -1
- package/bundle/dist/codex-protocol/v2/HookExecutionMode.js +0 -1
- package/bundle/dist/codex-protocol/v2/HookHandlerType.js +0 -1
- package/bundle/dist/codex-protocol/v2/HookMetadata.js +0 -1
- package/bundle/dist/codex-protocol/v2/HookMigration.js +0 -1
- package/bundle/dist/codex-protocol/v2/HookOutputEntry.js +0 -1
- package/bundle/dist/codex-protocol/v2/HookOutputEntryKind.js +0 -1
- package/bundle/dist/codex-protocol/v2/HookPromptFragment.js +0 -1
- package/bundle/dist/codex-protocol/v2/HookRunStatus.js +0 -1
- package/bundle/dist/codex-protocol/v2/HookRunSummary.js +0 -1
- package/bundle/dist/codex-protocol/v2/HookScope.js +0 -1
- package/bundle/dist/codex-protocol/v2/HookSource.js +0 -1
- package/bundle/dist/codex-protocol/v2/HookStartedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/HookTrustStatus.js +0 -1
- package/bundle/dist/codex-protocol/v2/HooksListEntry.js +0 -1
- package/bundle/dist/codex-protocol/v2/HooksListParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/HooksListResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/ItemCompletedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ItemGuardianApprovalReviewCompletedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ItemGuardianApprovalReviewStartedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ItemStartedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ListMcpServerStatusParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/ListMcpServerStatusResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/LoginAccountParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/LoginAccountResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/LogoutAccountResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/ManagedHooksRequirements.js +0 -1
- package/bundle/dist/codex-protocol/v2/MarketplaceAddParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/MarketplaceAddResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/MarketplaceInterface.js +0 -1
- package/bundle/dist/codex-protocol/v2/MarketplaceLoadErrorInfo.js +0 -1
- package/bundle/dist/codex-protocol/v2/MarketplaceRemoveParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/MarketplaceRemoveResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/MarketplaceUpgradeErrorInfo.js +0 -1
- package/bundle/dist/codex-protocol/v2/MarketplaceUpgradeParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/MarketplaceUpgradeResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpAuthStatus.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpElicitationArrayType.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpElicitationBooleanSchema.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpElicitationBooleanType.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpElicitationConstOption.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpElicitationEnumSchema.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpElicitationLegacyTitledEnumSchema.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpElicitationMultiSelectEnumSchema.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpElicitationNumberSchema.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpElicitationNumberType.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpElicitationObjectType.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpElicitationPrimitiveSchema.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpElicitationSchema.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpElicitationSingleSelectEnumSchema.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpElicitationStringFormat.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpElicitationStringSchema.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpElicitationStringType.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpElicitationTitledEnumItems.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpElicitationTitledMultiSelectEnumSchema.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpElicitationTitledSingleSelectEnumSchema.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpElicitationUntitledEnumItems.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpElicitationUntitledMultiSelectEnumSchema.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpElicitationUntitledSingleSelectEnumSchema.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpResourceReadParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpResourceReadResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpServerElicitationAction.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpServerElicitationRequestParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpServerElicitationRequestResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpServerMigration.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpServerOauthLoginCompletedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpServerOauthLoginParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpServerOauthLoginResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpServerRefreshResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpServerStartupState.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpServerStatus.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpServerStatusDetail.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpServerStatusUpdatedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpServerToolCallParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpServerToolCallResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpToolCallError.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpToolCallProgressNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpToolCallResult.js +0 -1
- package/bundle/dist/codex-protocol/v2/McpToolCallStatus.js +0 -1
- package/bundle/dist/codex-protocol/v2/MemoryCitation.js +0 -1
- package/bundle/dist/codex-protocol/v2/MemoryCitationEntry.js +0 -1
- package/bundle/dist/codex-protocol/v2/MergeStrategy.js +0 -1
- package/bundle/dist/codex-protocol/v2/MigrationDetails.js +0 -1
- package/bundle/dist/codex-protocol/v2/Model.js +0 -1
- package/bundle/dist/codex-protocol/v2/ModelAvailabilityNux.js +0 -1
- package/bundle/dist/codex-protocol/v2/ModelListParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/ModelListResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/ModelProviderCapabilitiesReadParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/ModelProviderCapabilitiesReadResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/ModelRerouteReason.js +0 -1
- package/bundle/dist/codex-protocol/v2/ModelReroutedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ModelServiceTier.js +0 -1
- package/bundle/dist/codex-protocol/v2/ModelUpgradeInfo.js +0 -1
- package/bundle/dist/codex-protocol/v2/ModelVerification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ModelVerificationNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/NetworkAccess.js +0 -1
- package/bundle/dist/codex-protocol/v2/NetworkApprovalContext.js +0 -1
- package/bundle/dist/codex-protocol/v2/NetworkApprovalProtocol.js +0 -1
- package/bundle/dist/codex-protocol/v2/NetworkDomainPermission.js +0 -1
- package/bundle/dist/codex-protocol/v2/NetworkPolicyAmendment.js +0 -1
- package/bundle/dist/codex-protocol/v2/NetworkPolicyRuleAction.js +0 -1
- package/bundle/dist/codex-protocol/v2/NetworkRequirements.js +0 -1
- package/bundle/dist/codex-protocol/v2/NetworkUnixSocketPermission.js +0 -1
- package/bundle/dist/codex-protocol/v2/NonSteerableTurnKind.js +0 -1
- package/bundle/dist/codex-protocol/v2/OverriddenMetadata.js +0 -1
- package/bundle/dist/codex-protocol/v2/PatchApplyStatus.js +0 -1
- package/bundle/dist/codex-protocol/v2/PatchChangeKind.js +0 -1
- package/bundle/dist/codex-protocol/v2/PermissionGrantScope.js +0 -1
- package/bundle/dist/codex-protocol/v2/PermissionProfile.js +0 -1
- package/bundle/dist/codex-protocol/v2/PermissionProfileFileSystemPermissions.js +0 -1
- package/bundle/dist/codex-protocol/v2/PermissionProfileModificationParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/PermissionProfileNetworkPermissions.js +0 -1
- package/bundle/dist/codex-protocol/v2/PermissionProfileSelectionParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/PermissionsRequestApprovalParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/PermissionsRequestApprovalResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/PlanDeltaNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginAuthPolicy.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginAvailability.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginDetail.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginHookSummary.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginInstallParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginInstallPolicy.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginInstallResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginInterface.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginListMarketplaceKind.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginListParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginListResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginMarketplaceEntry.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginReadParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginReadResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginShareContext.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginShareDeleteParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginShareDeleteResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginShareDiscoverability.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginShareListItem.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginShareListParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginShareListResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginSharePrincipal.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginSharePrincipalType.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginShareSaveParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginShareSaveResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginShareTarget.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginShareUpdateDiscoverability.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginShareUpdateTargetsParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginShareUpdateTargetsResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginSkillReadParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginSkillReadResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginSource.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginSummary.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginUninstallParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginUninstallResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/PluginsMigration.js +0 -1
- package/bundle/dist/codex-protocol/v2/ProcessExitedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ProcessOutputDeltaNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ProcessOutputStream.js +0 -1
- package/bundle/dist/codex-protocol/v2/ProcessTerminalSize.js +0 -1
- package/bundle/dist/codex-protocol/v2/ProfileV2.js +0 -1
- package/bundle/dist/codex-protocol/v2/RateLimitReachedType.js +0 -1
- package/bundle/dist/codex-protocol/v2/RateLimitSnapshot.js +0 -1
- package/bundle/dist/codex-protocol/v2/RateLimitWindow.js +0 -1
- package/bundle/dist/codex-protocol/v2/RawResponseItemCompletedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ReasoningEffortOption.js +0 -1
- package/bundle/dist/codex-protocol/v2/ReasoningSummaryPartAddedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ReasoningSummaryTextDeltaNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ReasoningTextDeltaNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/RemoteControlConnectionStatus.js +0 -1
- package/bundle/dist/codex-protocol/v2/RemoteControlStatusChangedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/RequestPermissionProfile.js +0 -1
- package/bundle/dist/codex-protocol/v2/ResidencyRequirement.js +0 -1
- package/bundle/dist/codex-protocol/v2/ReviewDelivery.js +0 -1
- package/bundle/dist/codex-protocol/v2/ReviewStartParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/ReviewStartResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/ReviewTarget.js +0 -1
- package/bundle/dist/codex-protocol/v2/SandboxMode.js +0 -1
- package/bundle/dist/codex-protocol/v2/SandboxPolicy.js +0 -1
- package/bundle/dist/codex-protocol/v2/SandboxWorkspaceWrite.js +0 -1
- package/bundle/dist/codex-protocol/v2/SendAddCreditsNudgeEmailParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/SendAddCreditsNudgeEmailResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/ServerRequestResolvedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/SessionMigration.js +0 -1
- package/bundle/dist/codex-protocol/v2/SessionSource.js +0 -1
- package/bundle/dist/codex-protocol/v2/SkillDependencies.js +0 -1
- package/bundle/dist/codex-protocol/v2/SkillErrorInfo.js +0 -1
- package/bundle/dist/codex-protocol/v2/SkillInterface.js +0 -1
- package/bundle/dist/codex-protocol/v2/SkillMetadata.js +0 -1
- package/bundle/dist/codex-protocol/v2/SkillScope.js +0 -1
- package/bundle/dist/codex-protocol/v2/SkillSummary.js +0 -1
- package/bundle/dist/codex-protocol/v2/SkillToolDependency.js +0 -1
- package/bundle/dist/codex-protocol/v2/SkillsChangedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/SkillsConfigWriteParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/SkillsConfigWriteResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/SkillsListEntry.js +0 -1
- package/bundle/dist/codex-protocol/v2/SkillsListParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/SkillsListResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/SortDirection.js +0 -1
- package/bundle/dist/codex-protocol/v2/SubagentMigration.js +0 -1
- package/bundle/dist/codex-protocol/v2/TerminalInteractionNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/TextElement.js +0 -1
- package/bundle/dist/codex-protocol/v2/TextPosition.js +0 -1
- package/bundle/dist/codex-protocol/v2/TextRange.js +0 -1
- package/bundle/dist/codex-protocol/v2/Thread.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadActiveFlag.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadApproveGuardianDeniedActionParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadApproveGuardianDeniedActionResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadArchiveParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadArchiveResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadArchivedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadClosedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadCompactStartParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadCompactStartResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadForkParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadForkResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadGoal.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadGoalClearedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadGoalStatus.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadGoalUpdatedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadInjectItemsParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadInjectItemsResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadItem.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadListParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadListResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadLoadedListParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadLoadedListResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadMetadataGitInfoUpdateParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadMetadataUpdateParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadMetadataUpdateResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadNameUpdatedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadReadParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadReadResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadRealtimeAudioChunk.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadRealtimeClosedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadRealtimeErrorNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadRealtimeItemAddedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadRealtimeOutputAudioDeltaNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadRealtimeSdpNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadRealtimeStartTransport.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadRealtimeStartedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadRealtimeTranscriptDeltaNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadRealtimeTranscriptDoneNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadResumeParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadResumeResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadRollbackParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadRollbackResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadSetNameParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadSetNameResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadShellCommandParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadShellCommandResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadSortKey.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadSource.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadSourceKind.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadStartParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadStartResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadStartSource.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadStartedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadStatus.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadStatusChangedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadTokenUsage.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadTokenUsageUpdatedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadUnarchiveParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadUnarchiveResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadUnarchivedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadUnsubscribeParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadUnsubscribeResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/ThreadUnsubscribeStatus.js +0 -1
- package/bundle/dist/codex-protocol/v2/TokenUsageBreakdown.js +0 -1
- package/bundle/dist/codex-protocol/v2/ToolRequestUserInputAnswer.js +0 -1
- package/bundle/dist/codex-protocol/v2/ToolRequestUserInputOption.js +0 -1
- package/bundle/dist/codex-protocol/v2/ToolRequestUserInputParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/ToolRequestUserInputQuestion.js +0 -1
- package/bundle/dist/codex-protocol/v2/ToolRequestUserInputResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/ToolsV2.js +0 -1
- package/bundle/dist/codex-protocol/v2/Turn.js +0 -1
- package/bundle/dist/codex-protocol/v2/TurnCompletedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/TurnDiffUpdatedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/TurnEnvironmentParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/TurnError.js +0 -1
- package/bundle/dist/codex-protocol/v2/TurnInterruptParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/TurnInterruptResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/TurnItemsView.js +0 -1
- package/bundle/dist/codex-protocol/v2/TurnPlanStep.js +0 -1
- package/bundle/dist/codex-protocol/v2/TurnPlanStepStatus.js +0 -1
- package/bundle/dist/codex-protocol/v2/TurnPlanUpdatedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/TurnStartParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/TurnStartResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/TurnStartedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/TurnStatus.js +0 -1
- package/bundle/dist/codex-protocol/v2/TurnSteerParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/TurnSteerResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/UserInput.js +0 -1
- package/bundle/dist/codex-protocol/v2/WarningNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/WebSearchAction.js +0 -1
- package/bundle/dist/codex-protocol/v2/WindowsSandboxReadiness.js +0 -1
- package/bundle/dist/codex-protocol/v2/WindowsSandboxReadinessResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/WindowsSandboxSetupCompletedNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/WindowsSandboxSetupMode.js +0 -1
- package/bundle/dist/codex-protocol/v2/WindowsSandboxSetupStartParams.js +0 -1
- package/bundle/dist/codex-protocol/v2/WindowsSandboxSetupStartResponse.js +0 -1
- package/bundle/dist/codex-protocol/v2/WindowsWorldWritableWarningNotification.js +0 -1
- package/bundle/dist/codex-protocol/v2/WriteStatus.js +0 -1
- package/bundle/dist/codex-protocol/v2/index.js +0 -7
- package/bundle/dist/node_modules/.pnpm/vitest@4.1.10_@opentelemetry_api@1.9.0_@types_node@25.0.7_@vitest_coverage-v8@4.1.10_ms_f9cfcfeddd63e656d4010c98521af26c/node_modules/vitest/dist/chunks/_commonjsHelpers.D26ty3Ew.js +0 -9
- package/bundle/dist/node_modules/.pnpm/vitest@4.1.10_@opentelemetry_api@1.9.0_@types_node@25.0.7_@vitest_coverage-v8@4.1.10_ms_f9cfcfeddd63e656d4010c98521af26c/node_modules/vitest/dist/chunks/benchmark.CX_oY03V.js +0 -41
- package/bundle/dist/node_modules/.pnpm/vitest@4.1.10_@opentelemetry_api@1.9.0_@types_node@25.0.7_@vitest_coverage-v8@4.1.10_ms_f9cfcfeddd63e656d4010c98521af26c/node_modules/vitest/dist/chunks/evaluatedModules.Dg1zASAC.js +0 -19
- package/bundle/dist/node_modules/.pnpm/vitest@4.1.10_@opentelemetry_api@1.9.0_@types_node@25.0.7_@vitest_coverage-v8@4.1.10_ms_f9cfcfeddd63e656d4010c98521af26c/node_modules/vitest/dist/chunks/index.Chj8NDwU.js +0 -202
- package/bundle/dist/node_modules/.pnpm/vitest@4.1.10_@opentelemetry_api@1.9.0_@types_node@25.0.7_@vitest_coverage-v8@4.1.10_ms_f9cfcfeddd63e656d4010c98521af26c/node_modules/vitest/dist/chunks/index.DdgEv5B1.js +0 -46
- package/bundle/dist/node_modules/.pnpm/vitest@4.1.10_@opentelemetry_api@1.9.0_@types_node@25.0.7_@vitest_coverage-v8@4.1.10_ms_f9cfcfeddd63e656d4010c98521af26c/node_modules/vitest/dist/chunks/rpc.MzXet3jl.js +0 -119
- package/bundle/dist/node_modules/.pnpm/vitest@4.1.10_@opentelemetry_api@1.9.0_@types_node@25.0.7_@vitest_coverage-v8@4.1.10_ms_f9cfcfeddd63e656d4010c98521af26c/node_modules/vitest/dist/chunks/test.DNmyFkvJ.js +0 -3044
- package/bundle/dist/node_modules/.pnpm/vitest@4.1.10_@opentelemetry_api@1.9.0_@types_node@25.0.7_@vitest_coverage-v8@4.1.10_ms_f9cfcfeddd63e656d4010c98521af26c/node_modules/vitest/dist/chunks/utils.BX5Fg8C4.js +0 -59
- package/bundle/dist/node_modules/.pnpm/vitest@4.1.10_@opentelemetry_api@1.9.0_@types_node@25.0.7_@vitest_coverage-v8@4.1.10_ms_f9cfcfeddd63e656d4010c98521af26c/node_modules/vitest/dist/index.js +0 -28
- package/bundle/dist/utils/providers/openai/codex-rpc.js +0 -153
- package/bundle/dist/utils/providers/openai/codex-worker.js +0 -642
- package/bundle/dist/utils/providers/openai/openai-worker-pool-config.js +0 -51
- package/bundle/src/codex-protocol/AbsolutePathBuf.ts +0 -14
- package/bundle/src/codex-protocol/AgentPath.ts +0 -5
- package/bundle/src/codex-protocol/ApplyPatchApprovalParams.ts +0 -24
- package/bundle/src/codex-protocol/ApplyPatchApprovalResponse.ts +0 -6
- package/bundle/src/codex-protocol/AuthMode.ts +0 -8
- package/bundle/src/codex-protocol/ClientInfo.ts +0 -5
- package/bundle/src/codex-protocol/ClientNotification.ts +0 -5
- package/bundle/src/codex-protocol/ClientRequest.ts +0 -176
- package/bundle/src/codex-protocol/CollaborationMode.ts +0 -10
- package/bundle/src/codex-protocol/ContentItem.ts +0 -9
- package/bundle/src/codex-protocol/ConversationGitInfo.ts +0 -9
- package/bundle/src/codex-protocol/ConversationSummary.ts +0 -19
- package/bundle/src/codex-protocol/ExecCommandApprovalParams.ts +0 -22
- package/bundle/src/codex-protocol/ExecCommandApprovalResponse.ts +0 -6
- package/bundle/src/codex-protocol/ExecPolicyAmendment.ts +0 -12
- package/bundle/src/codex-protocol/FileChange.ts +0 -8
- package/bundle/src/codex-protocol/ForcedLoginMethod.ts +0 -5
- package/bundle/src/codex-protocol/FunctionCallOutputBody.ts +0 -6
- package/bundle/src/codex-protocol/FunctionCallOutputContentItem.ts +0 -12
- package/bundle/src/codex-protocol/FuzzyFileSearchMatchType.ts +0 -5
- package/bundle/src/codex-protocol/FuzzyFileSearchParams.ts +0 -9
- package/bundle/src/codex-protocol/FuzzyFileSearchResponse.ts +0 -6
- package/bundle/src/codex-protocol/FuzzyFileSearchResult.ts +0 -16
- package/bundle/src/codex-protocol/FuzzyFileSearchSessionCompletedNotification.ts +0 -5
- package/bundle/src/codex-protocol/FuzzyFileSearchSessionUpdatedNotification.ts +0 -10
- package/bundle/src/codex-protocol/GetAuthStatusParams.ts +0 -5
- package/bundle/src/codex-protocol/GetAuthStatusResponse.ts +0 -10
- package/bundle/src/codex-protocol/GetConversationSummaryParams.ts +0 -6
- package/bundle/src/codex-protocol/GetConversationSummaryResponse.ts +0 -6
- package/bundle/src/codex-protocol/GitDiffToRemoteParams.ts +0 -5
- package/bundle/src/codex-protocol/GitDiffToRemoteResponse.ts +0 -6
- package/bundle/src/codex-protocol/GitSha.ts +0 -5
- package/bundle/src/codex-protocol/ImageDetail.ts +0 -5
- package/bundle/src/codex-protocol/InitializeCapabilities.ts +0 -18
- package/bundle/src/codex-protocol/InitializeParams.ts +0 -10
- package/bundle/src/codex-protocol/InitializeResponse.ts +0 -22
- package/bundle/src/codex-protocol/InputModality.ts +0 -8
- package/bundle/src/codex-protocol/InternalSessionSource.ts +0 -5
- package/bundle/src/codex-protocol/LocalShellAction.ts +0 -6
- package/bundle/src/codex-protocol/LocalShellExecAction.ts +0 -11
- package/bundle/src/codex-protocol/LocalShellStatus.ts +0 -5
- package/bundle/src/codex-protocol/MessagePhase.ts +0 -11
- package/bundle/src/codex-protocol/ModeKind.ts +0 -8
- package/bundle/src/codex-protocol/NetworkPolicyAmendment.ts +0 -6
- package/bundle/src/codex-protocol/NetworkPolicyRuleAction.ts +0 -5
- package/bundle/src/codex-protocol/ParsedCommand.ts +0 -20
- package/bundle/src/codex-protocol/Personality.ts +0 -5
- package/bundle/src/codex-protocol/PlanType.ts +0 -17
- package/bundle/src/codex-protocol/RealtimeConversationVersion.ts +0 -5
- package/bundle/src/codex-protocol/RealtimeOutputModality.ts +0 -5
- package/bundle/src/codex-protocol/RealtimeVoice.ts +0 -24
- package/bundle/src/codex-protocol/RealtimeVoicesList.ts +0 -11
- package/bundle/src/codex-protocol/ReasoningEffort.ts +0 -8
- package/bundle/src/codex-protocol/ReasoningItemContent.ts +0 -7
- package/bundle/src/codex-protocol/ReasoningItemReasoningSummary.ts +0 -5
- package/bundle/src/codex-protocol/ReasoningSummary.ts +0 -10
- package/bundle/src/codex-protocol/RequestId.ts +0 -5
- package/bundle/src/codex-protocol/Resource.ts +0 -19
- package/bundle/src/codex-protocol/ResourceContent.ts +0 -27
- package/bundle/src/codex-protocol/ResourceTemplate.ts +0 -16
- package/bundle/src/codex-protocol/ResponseItem.ts +0 -63
- package/bundle/src/codex-protocol/ReviewDecision.ts +0 -17
- package/bundle/src/codex-protocol/ServerNotification.ts +0 -154
- package/bundle/src/codex-protocol/ServerRequest.ts +0 -47
- package/bundle/src/codex-protocol/SessionSource.ts +0 -15
- package/bundle/src/codex-protocol/Settings.ts +0 -13
- package/bundle/src/codex-protocol/SubAgentSource.ts +0 -20
- package/bundle/src/codex-protocol/ThreadId.ts +0 -5
- package/bundle/src/codex-protocol/ThreadMemoryMode.ts +0 -5
- package/bundle/src/codex-protocol/Tool.ts +0 -18
- package/bundle/src/codex-protocol/Verbosity.ts +0 -9
- package/bundle/src/codex-protocol/WebSearchAction.ts +0 -9
- package/bundle/src/codex-protocol/WebSearchContextSize.ts +0 -5
- package/bundle/src/codex-protocol/WebSearchLocation.ts +0 -10
- package/bundle/src/codex-protocol/WebSearchMode.ts +0 -5
- package/bundle/src/codex-protocol/WebSearchToolConfig.ts +0 -11
- package/bundle/src/codex-protocol/index.ts +0 -79
- package/bundle/src/codex-protocol/serde_json/JsonValue.ts +0 -11
- package/bundle/src/codex-protocol/v2/Account.ts +0 -9
- package/bundle/src/codex-protocol/v2/AccountLoginCompletedNotification.ts +0 -9
- package/bundle/src/codex-protocol/v2/AccountRateLimitsUpdatedNotification.ts +0 -6
- package/bundle/src/codex-protocol/v2/AccountUpdatedNotification.ts +0 -7
- package/bundle/src/codex-protocol/v2/ActivePermissionProfile.ts +0 -22
- package/bundle/src/codex-protocol/v2/ActivePermissionProfileModification.ts +0 -9
- package/bundle/src/codex-protocol/v2/AddCreditsNudgeCreditType.ts +0 -5
- package/bundle/src/codex-protocol/v2/AddCreditsNudgeEmailStatus.ts +0 -5
- package/bundle/src/codex-protocol/v2/AdditionalFileSystemPermissions.ts +0 -18
- package/bundle/src/codex-protocol/v2/AdditionalNetworkPermissions.ts +0 -5
- package/bundle/src/codex-protocol/v2/AdditionalPermissionProfile.ts +0 -13
- package/bundle/src/codex-protocol/v2/AgentMessageDeltaNotification.ts +0 -10
- package/bundle/src/codex-protocol/v2/AnalyticsConfig.ts +0 -14
- package/bundle/src/codex-protocol/v2/AppBranding.ts +0 -15
- package/bundle/src/codex-protocol/v2/AppInfo.ts +0 -32
- package/bundle/src/codex-protocol/v2/AppListUpdatedNotification.ts +0 -9
- package/bundle/src/codex-protocol/v2/AppMetadata.ts +0 -20
- package/bundle/src/codex-protocol/v2/AppReview.ts +0 -5
- package/bundle/src/codex-protocol/v2/AppScreenshot.ts +0 -5
- package/bundle/src/codex-protocol/v2/AppSummary.ts +0 -14
- package/bundle/src/codex-protocol/v2/AppToolApproval.ts +0 -5
- package/bundle/src/codex-protocol/v2/AppToolsConfig.ts +0 -8
- package/bundle/src/codex-protocol/v2/ApprovalsReviewer.ts +0 -12
- package/bundle/src/codex-protocol/v2/AppsConfig.ts +0 -17
- package/bundle/src/codex-protocol/v2/AppsDefaultConfig.ts +0 -9
- package/bundle/src/codex-protocol/v2/AppsListParams.ts +0 -25
- package/bundle/src/codex-protocol/v2/AppsListResponse.ts +0 -16
- package/bundle/src/codex-protocol/v2/AskForApproval.ts +0 -18
- package/bundle/src/codex-protocol/v2/AutoReviewDecisionSource.ts +0 -8
- package/bundle/src/codex-protocol/v2/ByteRange.ts +0 -5
- package/bundle/src/codex-protocol/v2/CancelLoginAccountParams.ts +0 -5
- package/bundle/src/codex-protocol/v2/CancelLoginAccountResponse.ts +0 -6
- package/bundle/src/codex-protocol/v2/CancelLoginAccountStatus.ts +0 -5
- package/bundle/src/codex-protocol/v2/ChatgptAuthTokensRefreshParams.ts +0 -18
- package/bundle/src/codex-protocol/v2/ChatgptAuthTokensRefreshReason.ts +0 -5
- package/bundle/src/codex-protocol/v2/ChatgptAuthTokensRefreshResponse.ts +0 -9
- package/bundle/src/codex-protocol/v2/CodexErrorInfo.ts +0 -27
- package/bundle/src/codex-protocol/v2/CollabAgentState.ts +0 -6
- package/bundle/src/codex-protocol/v2/CollabAgentStatus.ts +0 -12
- package/bundle/src/codex-protocol/v2/CollabAgentTool.ts +0 -5
- package/bundle/src/codex-protocol/v2/CollabAgentToolCallStatus.ts +0 -5
- package/bundle/src/codex-protocol/v2/CollaborationModeMask.ts +0 -15
- package/bundle/src/codex-protocol/v2/CommandAction.ts +0 -10
- package/bundle/src/codex-protocol/v2/CommandExecOutputDeltaNotification.ts +0 -31
- package/bundle/src/codex-protocol/v2/CommandExecOutputStream.ts +0 -8
- package/bundle/src/codex-protocol/v2/CommandExecParams.ts +0 -87
- package/bundle/src/codex-protocol/v2/CommandExecResizeParams.ts +0 -19
- package/bundle/src/codex-protocol/v2/CommandExecResizeResponse.ts +0 -8
- package/bundle/src/codex-protocol/v2/CommandExecResponse.ts +0 -25
- package/bundle/src/codex-protocol/v2/CommandExecTerminalSize.ts +0 -17
- package/bundle/src/codex-protocol/v2/CommandExecTerminateParams.ts +0 -14
- package/bundle/src/codex-protocol/v2/CommandExecTerminateResponse.ts +0 -8
- package/bundle/src/codex-protocol/v2/CommandExecWriteParams.ts +0 -23
- package/bundle/src/codex-protocol/v2/CommandExecWriteResponse.ts +0 -8
- package/bundle/src/codex-protocol/v2/CommandExecutionApprovalDecision.ts +0 -13
- package/bundle/src/codex-protocol/v2/CommandExecutionOutputDeltaNotification.ts +0 -10
- package/bundle/src/codex-protocol/v2/CommandExecutionRequestApprovalParams.ts +0 -47
- package/bundle/src/codex-protocol/v2/CommandExecutionRequestApprovalResponse.ts +0 -8
- package/bundle/src/codex-protocol/v2/CommandExecutionSource.ts +0 -9
- package/bundle/src/codex-protocol/v2/CommandExecutionStatus.ts +0 -5
- package/bundle/src/codex-protocol/v2/CommandMigration.ts +0 -5
- package/bundle/src/codex-protocol/v2/Config.ts +0 -53
- package/bundle/src/codex-protocol/v2/ConfigBatchWriteParams.ts +0 -17
- package/bundle/src/codex-protocol/v2/ConfigEdit.ts +0 -7
- package/bundle/src/codex-protocol/v2/ConfigLayer.ts +0 -12
- package/bundle/src/codex-protocol/v2/ConfigLayerMetadata.ts +0 -6
- package/bundle/src/codex-protocol/v2/ConfigLayerSource.ts +0 -27
- package/bundle/src/codex-protocol/v2/ConfigReadParams.ts +0 -13
- package/bundle/src/codex-protocol/v2/ConfigReadResponse.ts +0 -12
- package/bundle/src/codex-protocol/v2/ConfigRequirements.ts +0 -15
- package/bundle/src/codex-protocol/v2/ConfigRequirementsReadResponse.ts +0 -11
- package/bundle/src/codex-protocol/v2/ConfigValueWriteParams.ts +0 -16
- package/bundle/src/codex-protocol/v2/ConfigWarningNotification.ts +0 -23
- package/bundle/src/codex-protocol/v2/ConfigWriteResponse.ts +0 -16
- package/bundle/src/codex-protocol/v2/ConfiguredHookHandler.ts +0 -14
- package/bundle/src/codex-protocol/v2/ConfiguredHookMatcherGroup.ts +0 -9
- package/bundle/src/codex-protocol/v2/ContextCompactedNotification.ts +0 -8
- package/bundle/src/codex-protocol/v2/CreditsSnapshot.ts +0 -5
- package/bundle/src/codex-protocol/v2/DeprecationNoticeNotification.ts +0 -14
- package/bundle/src/codex-protocol/v2/DynamicToolCallOutputContentItem.ts +0 -7
- package/bundle/src/codex-protocol/v2/DynamicToolCallParams.ts +0 -13
- package/bundle/src/codex-protocol/v2/DynamicToolCallResponse.ts +0 -9
- package/bundle/src/codex-protocol/v2/DynamicToolCallStatus.ts +0 -5
- package/bundle/src/codex-protocol/v2/DynamicToolSpec.ts +0 -12
- package/bundle/src/codex-protocol/v2/ErrorNotification.ts +0 -11
- package/bundle/src/codex-protocol/v2/ExecPolicyAmendment.ts +0 -5
- package/bundle/src/codex-protocol/v2/ExperimentalFeature.ts +0 -38
- package/bundle/src/codex-protocol/v2/ExperimentalFeatureEnablementSetParams.ts +0 -13
- package/bundle/src/codex-protocol/v2/ExperimentalFeatureEnablementSetResponse.ts +0 -10
- package/bundle/src/codex-protocol/v2/ExperimentalFeatureListParams.ts +0 -14
- package/bundle/src/codex-protocol/v2/ExperimentalFeatureListResponse.ts +0 -13
- package/bundle/src/codex-protocol/v2/ExperimentalFeatureStage.ts +0 -10
- package/bundle/src/codex-protocol/v2/ExternalAgentConfigDetectParams.ts +0 -14
- package/bundle/src/codex-protocol/v2/ExternalAgentConfigDetectResponse.ts +0 -6
- package/bundle/src/codex-protocol/v2/ExternalAgentConfigImportCompletedNotification.ts +0 -5
- package/bundle/src/codex-protocol/v2/ExternalAgentConfigImportParams.ts +0 -8
- package/bundle/src/codex-protocol/v2/ExternalAgentConfigImportResponse.ts +0 -5
- package/bundle/src/codex-protocol/v2/ExternalAgentConfigMigrationItem.ts +0 -15
- package/bundle/src/codex-protocol/v2/ExternalAgentConfigMigrationItemType.ts +0 -14
- package/bundle/src/codex-protocol/v2/FeedbackUploadParams.ts +0 -12
- package/bundle/src/codex-protocol/v2/FeedbackUploadResponse.ts +0 -5
- package/bundle/src/codex-protocol/v2/FileChangeApprovalDecision.ts +0 -5
- package/bundle/src/codex-protocol/v2/FileChangeOutputDeltaNotification.ts +0 -15
- package/bundle/src/codex-protocol/v2/FileChangePatchUpdatedNotification.ts +0 -11
- package/bundle/src/codex-protocol/v2/FileChangeRequestApprovalParams.ts +0 -22
- package/bundle/src/codex-protocol/v2/FileChangeRequestApprovalResponse.ts +0 -6
- package/bundle/src/codex-protocol/v2/FileSystemAccessMode.ts +0 -5
- package/bundle/src/codex-protocol/v2/FileSystemPath.ts +0 -10
- package/bundle/src/codex-protocol/v2/FileSystemSandboxEntry.ts +0 -7
- package/bundle/src/codex-protocol/v2/FileSystemSpecialPath.ts +0 -11
- package/bundle/src/codex-protocol/v2/FileUpdateChange.ts +0 -6
- package/bundle/src/codex-protocol/v2/FsChangedNotification.ts +0 -18
- package/bundle/src/codex-protocol/v2/FsCopyParams.ts +0 -22
- package/bundle/src/codex-protocol/v2/FsCopyResponse.ts +0 -8
- package/bundle/src/codex-protocol/v2/FsCreateDirectoryParams.ts +0 -18
- package/bundle/src/codex-protocol/v2/FsCreateDirectoryResponse.ts +0 -8
- package/bundle/src/codex-protocol/v2/FsGetMetadataParams.ts +0 -14
- package/bundle/src/codex-protocol/v2/FsGetMetadataResponse.ts +0 -29
- package/bundle/src/codex-protocol/v2/FsReadDirectoryEntry.ts +0 -21
- package/bundle/src/codex-protocol/v2/FsReadDirectoryParams.ts +0 -14
- package/bundle/src/codex-protocol/v2/FsReadDirectoryResponse.ts +0 -14
- package/bundle/src/codex-protocol/v2/FsReadFileParams.ts +0 -14
- package/bundle/src/codex-protocol/v2/FsReadFileResponse.ts +0 -13
- package/bundle/src/codex-protocol/v2/FsRemoveParams.ts +0 -22
- package/bundle/src/codex-protocol/v2/FsRemoveResponse.ts +0 -8
- package/bundle/src/codex-protocol/v2/FsUnwatchParams.ts +0 -13
- package/bundle/src/codex-protocol/v2/FsUnwatchResponse.ts +0 -8
- package/bundle/src/codex-protocol/v2/FsWatchParams.ts +0 -18
- package/bundle/src/codex-protocol/v2/FsWatchResponse.ts +0 -14
- package/bundle/src/codex-protocol/v2/FsWriteFileParams.ts +0 -18
- package/bundle/src/codex-protocol/v2/FsWriteFileResponse.ts +0 -8
- package/bundle/src/codex-protocol/v2/GetAccountParams.ts +0 -14
- package/bundle/src/codex-protocol/v2/GetAccountRateLimitsResponse.ts +0 -15
- package/bundle/src/codex-protocol/v2/GetAccountResponse.ts +0 -6
- package/bundle/src/codex-protocol/v2/GitInfo.ts +0 -5
- package/bundle/src/codex-protocol/v2/GrantedPermissionProfile.ts +0 -10
- package/bundle/src/codex-protocol/v2/GuardianApprovalReview.ts +0 -18
- package/bundle/src/codex-protocol/v2/GuardianApprovalReviewAction.ts +0 -34
- package/bundle/src/codex-protocol/v2/GuardianApprovalReviewStatus.ts +0 -13
- package/bundle/src/codex-protocol/v2/GuardianCommandSource.ts +0 -5
- package/bundle/src/codex-protocol/v2/GuardianRiskLevel.ts +0 -8
- package/bundle/src/codex-protocol/v2/GuardianUserAuthorization.ts +0 -8
- package/bundle/src/codex-protocol/v2/GuardianWarningNotification.ts +0 -14
- package/bundle/src/codex-protocol/v2/HookCompletedNotification.ts +0 -10
- package/bundle/src/codex-protocol/v2/HookErrorInfo.ts +0 -5
- package/bundle/src/codex-protocol/v2/HookEventName.ts +0 -13
- package/bundle/src/codex-protocol/v2/HookExecutionMode.ts +0 -5
- package/bundle/src/codex-protocol/v2/HookHandlerType.ts +0 -5
- package/bundle/src/codex-protocol/v2/HookMetadata.ts +0 -26
- package/bundle/src/codex-protocol/v2/HookMigration.ts +0 -5
- package/bundle/src/codex-protocol/v2/HookOutputEntry.ts +0 -6
- package/bundle/src/codex-protocol/v2/HookOutputEntryKind.ts +0 -5
- package/bundle/src/codex-protocol/v2/HookPromptFragment.ts +0 -5
- package/bundle/src/codex-protocol/v2/HookRunStatus.ts +0 -5
- package/bundle/src/codex-protocol/v2/HookRunSummary.ts +0 -28
- package/bundle/src/codex-protocol/v2/HookScope.ts +0 -5
- package/bundle/src/codex-protocol/v2/HookSource.ts +0 -15
- package/bundle/src/codex-protocol/v2/HookStartedNotification.ts +0 -10
- package/bundle/src/codex-protocol/v2/HookTrustStatus.ts +0 -5
- package/bundle/src/codex-protocol/v2/HooksListEntry.ts +0 -12
- package/bundle/src/codex-protocol/v2/HooksListParams.ts +0 -10
- package/bundle/src/codex-protocol/v2/HooksListResponse.ts +0 -6
- package/bundle/src/codex-protocol/v2/ItemCompletedNotification.ts +0 -14
- package/bundle/src/codex-protocol/v2/ItemGuardianApprovalReviewCompletedNotification.ts +0 -44
- package/bundle/src/codex-protocol/v2/ItemGuardianApprovalReviewStartedNotification.ts +0 -38
- package/bundle/src/codex-protocol/v2/ItemStartedNotification.ts +0 -14
- package/bundle/src/codex-protocol/v2/ListMcpServerStatusParams.ts +0 -20
- package/bundle/src/codex-protocol/v2/ListMcpServerStatusResponse.ts +0 -13
- package/bundle/src/codex-protocol/v2/LoginAccountParams.ts +0 -27
- package/bundle/src/codex-protocol/v2/LoginAccountResponse.ts +0 -27
- package/bundle/src/codex-protocol/v2/LogoutAccountResponse.ts +0 -5
- package/bundle/src/codex-protocol/v2/ManagedHooksRequirements.ts +0 -17
- package/bundle/src/codex-protocol/v2/MarketplaceAddParams.ts +0 -9
- package/bundle/src/codex-protocol/v2/MarketplaceAddResponse.ts +0 -10
- package/bundle/src/codex-protocol/v2/MarketplaceInterface.ts +0 -5
- package/bundle/src/codex-protocol/v2/MarketplaceLoadErrorInfo.ts +0 -6
- package/bundle/src/codex-protocol/v2/MarketplaceRemoveParams.ts +0 -5
- package/bundle/src/codex-protocol/v2/MarketplaceRemoveResponse.ts +0 -9
- package/bundle/src/codex-protocol/v2/MarketplaceUpgradeErrorInfo.ts +0 -5
- package/bundle/src/codex-protocol/v2/MarketplaceUpgradeParams.ts +0 -5
- package/bundle/src/codex-protocol/v2/MarketplaceUpgradeResponse.ts +0 -11
- package/bundle/src/codex-protocol/v2/McpAuthStatus.ts +0 -5
- package/bundle/src/codex-protocol/v2/McpElicitationArrayType.ts +0 -5
- package/bundle/src/codex-protocol/v2/McpElicitationBooleanSchema.ts +0 -11
- package/bundle/src/codex-protocol/v2/McpElicitationBooleanType.ts +0 -5
- package/bundle/src/codex-protocol/v2/McpElicitationConstOption.ts +0 -5
- package/bundle/src/codex-protocol/v2/McpElicitationEnumSchema.ts +0 -11
- package/bundle/src/codex-protocol/v2/McpElicitationLegacyTitledEnumSchema.ts +0 -13
- package/bundle/src/codex-protocol/v2/McpElicitationMultiSelectEnumSchema.ts +0 -9
- package/bundle/src/codex-protocol/v2/McpElicitationNumberSchema.ts +0 -13
- package/bundle/src/codex-protocol/v2/McpElicitationNumberType.ts +0 -5
- package/bundle/src/codex-protocol/v2/McpElicitationObjectType.ts +0 -5
- package/bundle/src/codex-protocol/v2/McpElicitationPrimitiveSchema.ts +0 -13
- package/bundle/src/codex-protocol/v2/McpElicitationSchema.ts +0 -18
- package/bundle/src/codex-protocol/v2/McpElicitationSingleSelectEnumSchema.ts +0 -9
- package/bundle/src/codex-protocol/v2/McpElicitationStringFormat.ts +0 -5
- package/bundle/src/codex-protocol/v2/McpElicitationStringSchema.ts +0 -15
- package/bundle/src/codex-protocol/v2/McpElicitationStringType.ts +0 -5
- package/bundle/src/codex-protocol/v2/McpElicitationTitledEnumItems.ts +0 -6
- package/bundle/src/codex-protocol/v2/McpElicitationTitledMultiSelectEnumSchema.ts +0 -15
- package/bundle/src/codex-protocol/v2/McpElicitationTitledSingleSelectEnumSchema.ts +0 -13
- package/bundle/src/codex-protocol/v2/McpElicitationUntitledEnumItems.ts +0 -9
- package/bundle/src/codex-protocol/v2/McpElicitationUntitledMultiSelectEnumSchema.ts +0 -15
- package/bundle/src/codex-protocol/v2/McpElicitationUntitledSingleSelectEnumSchema.ts +0 -12
- package/bundle/src/codex-protocol/v2/McpResourceReadParams.ts +0 -5
- package/bundle/src/codex-protocol/v2/McpResourceReadResponse.ts +0 -6
- package/bundle/src/codex-protocol/v2/McpServerElicitationAction.ts +0 -5
- package/bundle/src/codex-protocol/v2/McpServerElicitationRequestParams.ts +0 -27
- package/bundle/src/codex-protocol/v2/McpServerElicitationRequestResponse.ts +0 -19
- package/bundle/src/codex-protocol/v2/McpServerMigration.ts +0 -5
- package/bundle/src/codex-protocol/v2/McpServerOauthLoginCompletedNotification.ts +0 -9
- package/bundle/src/codex-protocol/v2/McpServerOauthLoginParams.ts +0 -9
- package/bundle/src/codex-protocol/v2/McpServerOauthLoginResponse.ts +0 -5
- package/bundle/src/codex-protocol/v2/McpServerRefreshResponse.ts +0 -5
- package/bundle/src/codex-protocol/v2/McpServerStartupState.ts +0 -5
- package/bundle/src/codex-protocol/v2/McpServerStatus.ts +0 -15
- package/bundle/src/codex-protocol/v2/McpServerStatusDetail.ts +0 -5
- package/bundle/src/codex-protocol/v2/McpServerStatusUpdatedNotification.ts +0 -10
- package/bundle/src/codex-protocol/v2/McpServerToolCallParams.ts +0 -12
- package/bundle/src/codex-protocol/v2/McpServerToolCallResponse.ts +0 -11
- package/bundle/src/codex-protocol/v2/McpToolCallError.ts +0 -5
- package/bundle/src/codex-protocol/v2/McpToolCallProgressNotification.ts +0 -10
- package/bundle/src/codex-protocol/v2/McpToolCallResult.ts +0 -10
- package/bundle/src/codex-protocol/v2/McpToolCallStatus.ts +0 -5
- package/bundle/src/codex-protocol/v2/MemoryCitation.ts +0 -6
- package/bundle/src/codex-protocol/v2/MemoryCitationEntry.ts +0 -10
- package/bundle/src/codex-protocol/v2/MergeStrategy.ts +0 -5
- package/bundle/src/codex-protocol/v2/MigrationDetails.ts +0 -18
- package/bundle/src/codex-protocol/v2/Model.ts +0 -30
- package/bundle/src/codex-protocol/v2/ModelAvailabilityNux.ts +0 -5
- package/bundle/src/codex-protocol/v2/ModelListParams.ts +0 -18
- package/bundle/src/codex-protocol/v2/ModelListResponse.ts +0 -13
- package/bundle/src/codex-protocol/v2/ModelProviderCapabilitiesReadParams.ts +0 -5
- package/bundle/src/codex-protocol/v2/ModelProviderCapabilitiesReadResponse.ts +0 -9
- package/bundle/src/codex-protocol/v2/ModelRerouteReason.ts +0 -5
- package/bundle/src/codex-protocol/v2/ModelReroutedNotification.ts +0 -12
- package/bundle/src/codex-protocol/v2/ModelServiceTier.ts +0 -5
- package/bundle/src/codex-protocol/v2/ModelUpgradeInfo.ts +0 -10
- package/bundle/src/codex-protocol/v2/ModelVerification.ts +0 -5
- package/bundle/src/codex-protocol/v2/ModelVerificationNotification.ts +0 -10
- package/bundle/src/codex-protocol/v2/NetworkAccess.ts +0 -5
- package/bundle/src/codex-protocol/v2/NetworkApprovalContext.ts +0 -6
- package/bundle/src/codex-protocol/v2/NetworkApprovalProtocol.ts +0 -5
- package/bundle/src/codex-protocol/v2/NetworkDomainPermission.ts +0 -5
- package/bundle/src/codex-protocol/v2/NetworkPolicyAmendment.ts +0 -6
- package/bundle/src/codex-protocol/v2/NetworkPolicyRuleAction.ts +0 -5
- package/bundle/src/codex-protocol/v2/NetworkRequirements.ts +0 -40
- package/bundle/src/codex-protocol/v2/NetworkUnixSocketPermission.ts +0 -5
- package/bundle/src/codex-protocol/v2/NonSteerableTurnKind.ts +0 -5
- package/bundle/src/codex-protocol/v2/OverriddenMetadata.ts +0 -11
- package/bundle/src/codex-protocol/v2/PatchApplyStatus.ts +0 -5
- package/bundle/src/codex-protocol/v2/PatchChangeKind.ts +0 -8
- package/bundle/src/codex-protocol/v2/PermissionGrantScope.ts +0 -5
- package/bundle/src/codex-protocol/v2/PermissionProfile.ts +0 -14
- package/bundle/src/codex-protocol/v2/PermissionProfileFileSystemPermissions.ts +0 -8
- package/bundle/src/codex-protocol/v2/PermissionProfileModificationParams.ts +0 -9
- package/bundle/src/codex-protocol/v2/PermissionProfileNetworkPermissions.ts +0 -5
- package/bundle/src/codex-protocol/v2/PermissionProfileSelectionParams.ts +0 -10
- package/bundle/src/codex-protocol/v2/PermissionsRequestApprovalParams.ts +0 -18
- package/bundle/src/codex-protocol/v2/PermissionsRequestApprovalResponse.ts +0 -14
- package/bundle/src/codex-protocol/v2/PlanDeltaNotification.ts +0 -14
- package/bundle/src/codex-protocol/v2/PluginAuthPolicy.ts +0 -5
- package/bundle/src/codex-protocol/v2/PluginAvailability.ts +0 -5
- package/bundle/src/codex-protocol/v2/PluginDetail.ts +0 -19
- package/bundle/src/codex-protocol/v2/PluginHookSummary.ts +0 -6
- package/bundle/src/codex-protocol/v2/PluginInstallParams.ts +0 -10
- package/bundle/src/codex-protocol/v2/PluginInstallPolicy.ts +0 -5
- package/bundle/src/codex-protocol/v2/PluginInstallResponse.ts +0 -10
- package/bundle/src/codex-protocol/v2/PluginInterface.ts +0 -46
- package/bundle/src/codex-protocol/v2/PluginListMarketplaceKind.ts +0 -5
- package/bundle/src/codex-protocol/v2/PluginListParams.ts +0 -18
- package/bundle/src/codex-protocol/v2/PluginListResponse.ts +0 -11
- package/bundle/src/codex-protocol/v2/PluginMarketplaceEntry.ts +0 -17
- package/bundle/src/codex-protocol/v2/PluginReadParams.ts +0 -10
- package/bundle/src/codex-protocol/v2/PluginReadResponse.ts +0 -6
- package/bundle/src/codex-protocol/v2/PluginShareContext.ts +0 -12
- package/bundle/src/codex-protocol/v2/PluginShareDeleteParams.ts +0 -5
- package/bundle/src/codex-protocol/v2/PluginShareDeleteResponse.ts +0 -5
- package/bundle/src/codex-protocol/v2/PluginShareDiscoverability.ts +0 -5
- package/bundle/src/codex-protocol/v2/PluginShareListItem.ts +0 -11
- package/bundle/src/codex-protocol/v2/PluginShareListParams.ts +0 -5
- package/bundle/src/codex-protocol/v2/PluginShareListResponse.ts +0 -6
- package/bundle/src/codex-protocol/v2/PluginSharePrincipal.ts +0 -10
- package/bundle/src/codex-protocol/v2/PluginSharePrincipalType.ts +0 -5
- package/bundle/src/codex-protocol/v2/PluginShareSaveParams.ts +0 -13
- package/bundle/src/codex-protocol/v2/PluginShareSaveResponse.ts +0 -5
- package/bundle/src/codex-protocol/v2/PluginShareTarget.ts +0 -6
- package/bundle/src/codex-protocol/v2/PluginShareUpdateDiscoverability.ts +0 -5
- package/bundle/src/codex-protocol/v2/PluginShareUpdateTargetsParams.ts +0 -11
- package/bundle/src/codex-protocol/v2/PluginShareUpdateTargetsResponse.ts +0 -10
- package/bundle/src/codex-protocol/v2/PluginSkillReadParams.ts +0 -9
- package/bundle/src/codex-protocol/v2/PluginSkillReadResponse.ts +0 -5
- package/bundle/src/codex-protocol/v2/PluginSource.ts +0 -9
- package/bundle/src/codex-protocol/v2/PluginSummary.ts +0 -29
- package/bundle/src/codex-protocol/v2/PluginUninstallParams.ts +0 -5
- package/bundle/src/codex-protocol/v2/PluginUninstallResponse.ts +0 -5
- package/bundle/src/codex-protocol/v2/PluginsMigration.ts +0 -5
- package/bundle/src/codex-protocol/v2/ProcessExitedNotification.ts +0 -43
- package/bundle/src/codex-protocol/v2/ProcessOutputDeltaNotification.ts +0 -27
- package/bundle/src/codex-protocol/v2/ProcessOutputStream.ts +0 -8
- package/bundle/src/codex-protocol/v2/ProcessTerminalSize.ts +0 -17
- package/bundle/src/codex-protocol/v2/ProfileV2.ts +0 -37
- package/bundle/src/codex-protocol/v2/RateLimitReachedType.ts +0 -10
- package/bundle/src/codex-protocol/v2/RateLimitSnapshot.ts +0 -17
- package/bundle/src/codex-protocol/v2/RateLimitWindow.ts +0 -9
- package/bundle/src/codex-protocol/v2/RawResponseItemCompletedNotification.ts +0 -10
- package/bundle/src/codex-protocol/v2/ReasoningEffortOption.ts +0 -6
- package/bundle/src/codex-protocol/v2/ReasoningSummaryPartAddedNotification.ts +0 -10
- package/bundle/src/codex-protocol/v2/ReasoningSummaryTextDeltaNotification.ts +0 -11
- package/bundle/src/codex-protocol/v2/ReasoningTextDeltaNotification.ts +0 -11
- package/bundle/src/codex-protocol/v2/RemoteControlConnectionStatus.ts +0 -5
- package/bundle/src/codex-protocol/v2/RemoteControlStatusChangedNotification.ts +0 -12
- package/bundle/src/codex-protocol/v2/RequestPermissionProfile.ts +0 -10
- package/bundle/src/codex-protocol/v2/ResidencyRequirement.ts +0 -5
- package/bundle/src/codex-protocol/v2/ReviewDelivery.ts +0 -5
- package/bundle/src/codex-protocol/v2/ReviewStartParams.ts +0 -15
- package/bundle/src/codex-protocol/v2/ReviewStartResponse.ts +0 -15
- package/bundle/src/codex-protocol/v2/ReviewTarget.ts +0 -16
- package/bundle/src/codex-protocol/v2/SandboxMode.ts +0 -5
- package/bundle/src/codex-protocol/v2/SandboxPolicy.ts +0 -17
- package/bundle/src/codex-protocol/v2/SandboxWorkspaceWrite.ts +0 -10
- package/bundle/src/codex-protocol/v2/SendAddCreditsNudgeEmailParams.ts +0 -6
- package/bundle/src/codex-protocol/v2/SendAddCreditsNudgeEmailResponse.ts +0 -6
- package/bundle/src/codex-protocol/v2/ServerRequestResolvedNotification.ts +0 -6
- package/bundle/src/codex-protocol/v2/SessionMigration.ts +0 -5
- package/bundle/src/codex-protocol/v2/SessionSource.ts +0 -13
- package/bundle/src/codex-protocol/v2/SkillDependencies.ts +0 -6
- package/bundle/src/codex-protocol/v2/SkillErrorInfo.ts +0 -5
- package/bundle/src/codex-protocol/v2/SkillInterface.ts +0 -13
- package/bundle/src/codex-protocol/v2/SkillMetadata.ts +0 -21
- package/bundle/src/codex-protocol/v2/SkillScope.ts +0 -5
- package/bundle/src/codex-protocol/v2/SkillSummary.ts +0 -14
- package/bundle/src/codex-protocol/v2/SkillToolDependency.ts +0 -12
- package/bundle/src/codex-protocol/v2/SkillsChangedNotification.ts +0 -11
- package/bundle/src/codex-protocol/v2/SkillsConfigWriteParams.ts +0 -16
- package/bundle/src/codex-protocol/v2/SkillsConfigWriteResponse.ts +0 -5
- package/bundle/src/codex-protocol/v2/SkillsListEntry.ts +0 -11
- package/bundle/src/codex-protocol/v2/SkillsListParams.ts +0 -14
- package/bundle/src/codex-protocol/v2/SkillsListResponse.ts +0 -6
- package/bundle/src/codex-protocol/v2/SortDirection.ts +0 -5
- package/bundle/src/codex-protocol/v2/SubagentMigration.ts +0 -5
- package/bundle/src/codex-protocol/v2/TerminalInteractionNotification.ts +0 -11
- package/bundle/src/codex-protocol/v2/TextElement.ts +0 -15
- package/bundle/src/codex-protocol/v2/TextPosition.ts +0 -14
- package/bundle/src/codex-protocol/v2/TextRange.ts +0 -6
- package/bundle/src/codex-protocol/v2/Thread.ts +0 -88
- package/bundle/src/codex-protocol/v2/ThreadActiveFlag.ts +0 -5
- package/bundle/src/codex-protocol/v2/ThreadApproveGuardianDeniedActionParams.ts +0 -12
- package/bundle/src/codex-protocol/v2/ThreadApproveGuardianDeniedActionResponse.ts +0 -5
- package/bundle/src/codex-protocol/v2/ThreadArchiveParams.ts +0 -5
- package/bundle/src/codex-protocol/v2/ThreadArchiveResponse.ts +0 -5
- package/bundle/src/codex-protocol/v2/ThreadArchivedNotification.ts +0 -5
- package/bundle/src/codex-protocol/v2/ThreadClosedNotification.ts +0 -5
- package/bundle/src/codex-protocol/v2/ThreadCompactStartParams.ts +0 -5
- package/bundle/src/codex-protocol/v2/ThreadCompactStartResponse.ts +0 -5
- package/bundle/src/codex-protocol/v2/ThreadForkParams.ts +0 -40
- package/bundle/src/codex-protocol/v2/ThreadForkResponse.ts +0 -30
- package/bundle/src/codex-protocol/v2/ThreadGoal.ts +0 -15
- package/bundle/src/codex-protocol/v2/ThreadGoalClearedNotification.ts +0 -5
- package/bundle/src/codex-protocol/v2/ThreadGoalStatus.ts +0 -5
- package/bundle/src/codex-protocol/v2/ThreadGoalUpdatedNotification.ts +0 -10
- package/bundle/src/codex-protocol/v2/ThreadInjectItemsParams.ts +0 -12
- package/bundle/src/codex-protocol/v2/ThreadInjectItemsResponse.ts +0 -5
- package/bundle/src/codex-protocol/v2/ThreadItem.ts +0 -156
- package/bundle/src/codex-protocol/v2/ThreadListParams.ts +0 -55
- package/bundle/src/codex-protocol/v2/ThreadListResponse.ts +0 -20
- package/bundle/src/codex-protocol/v2/ThreadLoadedListParams.ts +0 -14
- package/bundle/src/codex-protocol/v2/ThreadLoadedListResponse.ts +0 -15
- package/bundle/src/codex-protocol/v2/ThreadMetadataGitInfoUpdateParams.ts +0 -21
- package/bundle/src/codex-protocol/v2/ThreadMetadataUpdateParams.ts +0 -14
- package/bundle/src/codex-protocol/v2/ThreadMetadataUpdateResponse.ts +0 -6
- package/bundle/src/codex-protocol/v2/ThreadNameUpdatedNotification.ts +0 -5
- package/bundle/src/codex-protocol/v2/ThreadReadParams.ts +0 -11
- package/bundle/src/codex-protocol/v2/ThreadReadResponse.ts +0 -6
- package/bundle/src/codex-protocol/v2/ThreadRealtimeAudioChunk.ts +0 -14
- package/bundle/src/codex-protocol/v2/ThreadRealtimeClosedNotification.ts +0 -8
- package/bundle/src/codex-protocol/v2/ThreadRealtimeErrorNotification.ts +0 -8
- package/bundle/src/codex-protocol/v2/ThreadRealtimeItemAddedNotification.ts +0 -9
- package/bundle/src/codex-protocol/v2/ThreadRealtimeOutputAudioDeltaNotification.ts +0 -12
- package/bundle/src/codex-protocol/v2/ThreadRealtimeSdpNotification.ts +0 -8
- package/bundle/src/codex-protocol/v2/ThreadRealtimeStartTransport.ts +0 -17
- package/bundle/src/codex-protocol/v2/ThreadRealtimeStartedNotification.ts +0 -13
- package/bundle/src/codex-protocol/v2/ThreadRealtimeTranscriptDeltaNotification.ts +0 -16
- package/bundle/src/codex-protocol/v2/ThreadRealtimeTranscriptDoneNotification.ts +0 -16
- package/bundle/src/codex-protocol/v2/ThreadResumeParams.ts +0 -39
- package/bundle/src/codex-protocol/v2/ThreadResumeResponse.ts +0 -30
- package/bundle/src/codex-protocol/v2/ThreadRollbackParams.ts +0 -14
- package/bundle/src/codex-protocol/v2/ThreadRollbackResponse.ts +0 -15
- package/bundle/src/codex-protocol/v2/ThreadSetNameParams.ts +0 -5
- package/bundle/src/codex-protocol/v2/ThreadSetNameResponse.ts +0 -5
- package/bundle/src/codex-protocol/v2/ThreadShellCommandParams.ts +0 -14
- package/bundle/src/codex-protocol/v2/ThreadShellCommandResponse.ts +0 -5
- package/bundle/src/codex-protocol/v2/ThreadSortKey.ts +0 -5
- package/bundle/src/codex-protocol/v2/ThreadSource.ts +0 -5
- package/bundle/src/codex-protocol/v2/ThreadSourceKind.ts +0 -15
- package/bundle/src/codex-protocol/v2/ThreadStartParams.ts +0 -33
- package/bundle/src/codex-protocol/v2/ThreadStartResponse.ts +0 -30
- package/bundle/src/codex-protocol/v2/ThreadStartSource.ts +0 -5
- package/bundle/src/codex-protocol/v2/ThreadStartedNotification.ts +0 -6
- package/bundle/src/codex-protocol/v2/ThreadStatus.ts +0 -10
- package/bundle/src/codex-protocol/v2/ThreadStatusChangedNotification.ts +0 -6
- package/bundle/src/codex-protocol/v2/ThreadTokenUsage.ts +0 -10
- package/bundle/src/codex-protocol/v2/ThreadTokenUsageUpdatedNotification.ts +0 -10
- package/bundle/src/codex-protocol/v2/ThreadUnarchiveParams.ts +0 -5
- package/bundle/src/codex-protocol/v2/ThreadUnarchiveResponse.ts +0 -6
- package/bundle/src/codex-protocol/v2/ThreadUnarchivedNotification.ts +0 -5
- package/bundle/src/codex-protocol/v2/ThreadUnsubscribeParams.ts +0 -5
- package/bundle/src/codex-protocol/v2/ThreadUnsubscribeResponse.ts +0 -6
- package/bundle/src/codex-protocol/v2/ThreadUnsubscribeStatus.ts +0 -5
- package/bundle/src/codex-protocol/v2/TokenUsageBreakdown.ts +0 -11
- package/bundle/src/codex-protocol/v2/ToolRequestUserInputAnswer.ts +0 -8
- package/bundle/src/codex-protocol/v2/ToolRequestUserInputOption.ts +0 -8
- package/bundle/src/codex-protocol/v2/ToolRequestUserInputParams.ts +0 -14
- package/bundle/src/codex-protocol/v2/ToolRequestUserInputQuestion.ts +0 -16
- package/bundle/src/codex-protocol/v2/ToolRequestUserInputResponse.ts +0 -11
- package/bundle/src/codex-protocol/v2/ToolsV2.ts +0 -6
- package/bundle/src/codex-protocol/v2/Turn.ts +0 -36
- package/bundle/src/codex-protocol/v2/TurnCompletedNotification.ts +0 -6
- package/bundle/src/codex-protocol/v2/TurnDiffUpdatedNotification.ts +0 -9
- package/bundle/src/codex-protocol/v2/TurnEnvironmentParams.ts +0 -6
- package/bundle/src/codex-protocol/v2/TurnError.ts +0 -10
- package/bundle/src/codex-protocol/v2/TurnInterruptParams.ts +0 -5
- package/bundle/src/codex-protocol/v2/TurnInterruptResponse.ts +0 -5
- package/bundle/src/codex-protocol/v2/TurnItemsView.ts +0 -5
- package/bundle/src/codex-protocol/v2/TurnPlanStep.ts +0 -6
- package/bundle/src/codex-protocol/v2/TurnPlanStepStatus.ts +0 -5
- package/bundle/src/codex-protocol/v2/TurnPlanUpdatedNotification.ts +0 -11
- package/bundle/src/codex-protocol/v2/TurnStartParams.ts +0 -48
- package/bundle/src/codex-protocol/v2/TurnStartResponse.ts +0 -6
- package/bundle/src/codex-protocol/v2/TurnStartedNotification.ts +0 -6
- package/bundle/src/codex-protocol/v2/TurnStatus.ts +0 -5
- package/bundle/src/codex-protocol/v2/TurnSteerParams.ts +0 -13
- package/bundle/src/codex-protocol/v2/TurnSteerResponse.ts +0 -5
- package/bundle/src/codex-protocol/v2/UserInput.ts +0 -18
- package/bundle/src/codex-protocol/v2/WarningNotification.ts +0 -14
- package/bundle/src/codex-protocol/v2/WebSearchAction.ts +0 -9
- package/bundle/src/codex-protocol/v2/WindowsSandboxReadiness.ts +0 -5
- package/bundle/src/codex-protocol/v2/WindowsSandboxReadinessResponse.ts +0 -6
- package/bundle/src/codex-protocol/v2/WindowsSandboxSetupCompletedNotification.ts +0 -10
- package/bundle/src/codex-protocol/v2/WindowsSandboxSetupMode.ts +0 -5
- package/bundle/src/codex-protocol/v2/WindowsSandboxSetupStartParams.ts +0 -10
- package/bundle/src/codex-protocol/v2/WindowsSandboxSetupStartResponse.ts +0 -5
- package/bundle/src/codex-protocol/v2/WindowsWorldWritableWarningNotification.ts +0 -9
- package/bundle/src/codex-protocol/v2/WriteStatus.ts +0 -5
- package/bundle/src/codex-protocol/v2/index.ts +0 -446
- package/bundle/src/utils/providers/openai/codex-rpc.ts +0 -238
- package/bundle/src/utils/providers/openai/codex-worker.test.ts +0 -1006
- package/bundle/src/utils/providers/openai/codex-worker.ts +0 -927
- package/bundle/src/utils/providers/openai/openai-worker-pool-config.ts +0 -112
- package/bundle/web-dist/client/assets/index-C24D5PiN.js +0 -106
- package/bundle/web-dist/client/assets/index-CcMEpCgt.css +0 -1
- package/bundle/web-dist/client/assets/logs-CIlZG6A3.js +0 -1
- package/bundle/web-dist/client/assets/monit-DZFBMxKl.js +0 -1
- package/bundle/web-dist/client/assets/routes-C3wlSNBL.js +0 -5
- package/bundle/web-dist/client/assets/services.generated-jGypfumC.js +0 -51
- package/bundle/web-dist/client/assets/settings-ClRDWO-8.js +0 -1
- package/bundle/web-dist/client/assets/show-BP7U8yyJ.js +0 -2
- package/bundle/web-dist/client/assets/tokens-DfQeULnJ.js +0 -1
- package/bundle/web-dist/client/assets/use-oauth-login-flow-CY-ASCfL.js +0 -1
- package/bundle/web-dist/server/assets/lazyRouteComponent-DOc8TV-P.js +0 -1856
- package/bundle/web-dist/server/assets/logs-CfF3nmLM.js +0 -451
- package/bundle/web-dist/server/assets/monit-BSaKhh5D.js +0 -1577
- package/bundle/web-dist/server/assets/plus-DLFUHsfx.js +0 -19
- package/bundle/web-dist/server/assets/react-dom-BotjLnTK.js +0 -462
- package/bundle/web-dist/server/assets/routes-CHMxrTT0.js +0 -2924
- package/bundle/web-dist/server/assets/services.generated-D3Q3FYot.js +0 -23570
- package/bundle/web-dist/server/assets/settings-DOQjV28c.js +0 -598
- package/bundle/web-dist/server/assets/show-Cn_C6Qvl.js +0 -2776
- package/bundle/web-dist/server/assets/tokens-c0EN3iCx.js +0 -441
- package/bundle/web-dist/server/assets/use-oauth-login-flow-B68AbMDE.js +0 -160
- /package/bundle/dist/{codex-protocol/AbsolutePathBuf.js → utils/providers/common/provider-types.js} +0 -0
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import os from "node:os";
|
|
2
|
+
//#region src/utils/providers/openai/openai-backend-protocol.ts
|
|
3
|
+
const CHATGPT_CODEX_RESPONSES_URL = "https://chatgpt.com/backend-api/codex/responses";
|
|
4
|
+
const CODEX_CLI_ORIGINATOR = "codex_cli_rs";
|
|
5
|
+
const CODEX_CLI_VERSION = "0.147.0";
|
|
6
|
+
function codexPlatform() {
|
|
7
|
+
const names = {
|
|
8
|
+
darwin: "Mac OS",
|
|
9
|
+
linux: "Linux",
|
|
10
|
+
win32: "Windows"
|
|
11
|
+
};
|
|
12
|
+
const terminal = process.env.TERM_PROGRAM;
|
|
13
|
+
const terminalVersion = process.env.TERM_PROGRAM_VERSION;
|
|
14
|
+
return {
|
|
15
|
+
osType: names[process.platform] ?? process.platform,
|
|
16
|
+
osVersion: os.release(),
|
|
17
|
+
architecture: process.arch,
|
|
18
|
+
terminal: terminal ? `${terminal}${terminalVersion ? `/${terminalVersion}` : ""}` : "unknown"
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
/** Matches the platform/terminal suffix emitted by the pinned Rust Codex CLI. */
|
|
22
|
+
function codexCliUserAgent(platform = codexPlatform()) {
|
|
23
|
+
return `codex_cli_rs/${CODEX_CLI_VERSION} (${platform.osType} ${platform.osVersion}; ${platform.architecture}) ${platform.terminal}`;
|
|
24
|
+
}
|
|
25
|
+
function buildOpenAIResponsesRequest(options) {
|
|
26
|
+
const tools = options.tools ? [...options.tools] : [];
|
|
27
|
+
if (options.imageGeneration) tools.push(options.imageGeneration === true ? { type: "image_generation" } : {
|
|
28
|
+
type: "image_generation",
|
|
29
|
+
...options.imageGeneration
|
|
30
|
+
});
|
|
31
|
+
const text = options.verbosity || options.outputSchema ? {
|
|
32
|
+
...options.verbosity ? { verbosity: options.verbosity } : {},
|
|
33
|
+
...options.outputSchema ? { format: {
|
|
34
|
+
type: "json_schema",
|
|
35
|
+
strict: true,
|
|
36
|
+
schema: options.outputSchema.schema,
|
|
37
|
+
name: options.outputSchema.name ?? "codex_output_schema"
|
|
38
|
+
} } : {}
|
|
39
|
+
} : void 0;
|
|
40
|
+
return {
|
|
41
|
+
model: options.model,
|
|
42
|
+
...options.instructions ? { instructions: options.instructions } : {},
|
|
43
|
+
input: [...options.history],
|
|
44
|
+
...tools.length ? { tools } : {},
|
|
45
|
+
tool_choice: options.toolChoice ?? "auto",
|
|
46
|
+
parallel_tool_calls: options.parallelToolCalls ?? true,
|
|
47
|
+
reasoning: options.reasoning ?? null,
|
|
48
|
+
store: false,
|
|
49
|
+
stream: true,
|
|
50
|
+
include: ["reasoning.encrypted_content"],
|
|
51
|
+
...options.serviceTier ? { service_tier: options.serviceTier } : {},
|
|
52
|
+
...options.promptCacheKey ? { prompt_cache_key: options.promptCacheKey } : {},
|
|
53
|
+
...text ? { text } : {}
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
function buildCodexIdentityHeaders(accessToken, accountId, correlation) {
|
|
57
|
+
return {
|
|
58
|
+
Accept: "text/event-stream",
|
|
59
|
+
Authorization: `Bearer ${accessToken}`,
|
|
60
|
+
"ChatGPT-Account-ID": accountId,
|
|
61
|
+
"Content-Type": "application/json",
|
|
62
|
+
originator: CODEX_CLI_ORIGINATOR,
|
|
63
|
+
"User-Agent": codexCliUserAgent(),
|
|
64
|
+
...correlation?.sessionId ? { "session-id": correlation.sessionId } : {},
|
|
65
|
+
...correlation?.threadId ? { "thread-id": correlation.threadId } : {},
|
|
66
|
+
...correlation?.clientRequestId ? { "x-client-request-id": correlation.clientRequestId } : {}
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
var OpenAIProtocolError = class extends Error {
|
|
70
|
+
code;
|
|
71
|
+
status;
|
|
72
|
+
retryAfterMs;
|
|
73
|
+
constructor(message, code, status, retryAfterMs) {
|
|
74
|
+
super(message);
|
|
75
|
+
this.code = code;
|
|
76
|
+
this.status = status;
|
|
77
|
+
this.retryAfterMs = retryAfterMs;
|
|
78
|
+
this.name = "OpenAIProtocolError";
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
function usageFrom(value) {
|
|
82
|
+
if (!value || typeof value !== "object") return void 0;
|
|
83
|
+
const usage = value;
|
|
84
|
+
const inputDetails = usage.input_tokens_details ?? {};
|
|
85
|
+
const outputDetails = usage.output_tokens_details ?? {};
|
|
86
|
+
return {
|
|
87
|
+
inputTokens: Number(usage.input_tokens ?? 0),
|
|
88
|
+
cachedInputTokens: Number(inputDetails.cached_tokens ?? 0),
|
|
89
|
+
outputTokens: Number(usage.output_tokens ?? 0),
|
|
90
|
+
reasoningTokens: Number(outputDetails.reasoning_tokens ?? 0),
|
|
91
|
+
totalTokens: Number(usage.total_tokens ?? 0)
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
function normalizeOpenAIEvent(raw) {
|
|
95
|
+
if (!raw || typeof raw !== "object") return void 0;
|
|
96
|
+
const event = raw;
|
|
97
|
+
const type = String(event.type ?? "");
|
|
98
|
+
if (type === "response.created") {
|
|
99
|
+
const response = event.response;
|
|
100
|
+
return {
|
|
101
|
+
type: "created",
|
|
102
|
+
...response?.id ? { responseId: String(response.id) } : {}
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
if (type === "response.output_text.delta" && typeof event.delta === "string") return {
|
|
106
|
+
type: "text-delta",
|
|
107
|
+
text: event.delta
|
|
108
|
+
};
|
|
109
|
+
if ((type === "response.output_item.added" || type === "response.output_item.done") && event.item && typeof event.item === "object") {
|
|
110
|
+
const item = event.item;
|
|
111
|
+
if (item.type === "image_generation_call" && typeof item.result === "string") return {
|
|
112
|
+
type: "image",
|
|
113
|
+
...typeof item.id === "string" ? { id: item.id } : {},
|
|
114
|
+
base64: item.result,
|
|
115
|
+
mimeType: "image/png",
|
|
116
|
+
...typeof item.revised_prompt === "string" ? { revisedPrompt: item.revised_prompt } : typeof item.revisedPrompt === "string" ? { revisedPrompt: item.revisedPrompt } : {}
|
|
117
|
+
};
|
|
118
|
+
return {
|
|
119
|
+
type: "output-item",
|
|
120
|
+
item
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
if (type === "response.completed") {
|
|
124
|
+
const response = event.response ?? {};
|
|
125
|
+
return {
|
|
126
|
+
type: "completed",
|
|
127
|
+
responseId: String(response.id ?? ""),
|
|
128
|
+
...response.usage ? { usage: usageFrom(response.usage) } : {},
|
|
129
|
+
...typeof response.model === "string" ? { model: response.model } : {}
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
if (type === "error" || type === "response.failed" || type === "response.incomplete") {
|
|
133
|
+
const source = event.error ?? event.response ?? event;
|
|
134
|
+
const nested = source.error ?? source;
|
|
135
|
+
return {
|
|
136
|
+
type: "error",
|
|
137
|
+
error: new OpenAIProtocolError(String(nested.message ?? `OpenAI stream ended with ${type}`), typeof nested.code === "string" ? nested.code : void 0)
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
//#endregion
|
|
142
|
+
export { CHATGPT_CODEX_RESPONSES_URL, CODEX_CLI_ORIGINATOR, CODEX_CLI_VERSION, OpenAIProtocolError, buildCodexIdentityHeaders, buildOpenAIResponsesRequest, codexCliUserAgent, normalizeOpenAIEvent };
|
|
143
|
+
|
|
144
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbmFpLWJhY2tlbmQtcHJvdG9jb2wuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3V0aWxzL3Byb3ZpZGVycy9vcGVuYWkvb3BlbmFpLWJhY2tlbmQtcHJvdG9jb2wudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG9zIGZyb20gXCJub2RlOm9zXCI7XG5cbmV4cG9ydCBjb25zdCBDSEFUR1BUX0NPREVYX1JFU1BPTlNFU19VUkwgPVxuICBcImh0dHBzOi8vY2hhdGdwdC5jb20vYmFja2VuZC1hcGkvY29kZXgvcmVzcG9uc2VzXCIgYXMgY29uc3Q7XG5cbmV4cG9ydCBjb25zdCBDT0RFWF9DTElfT1JJR0lOQVRPUiA9IFwiY29kZXhfY2xpX3JzXCIgYXMgY29uc3Q7XG5leHBvcnQgY29uc3QgQ09ERVhfQ0xJX1ZFUlNJT04gPSBcIjAuMTQ3LjBcIiBhcyBjb25zdDtcblxuZXhwb3J0IGludGVyZmFjZSBDb2RleFVzZXJBZ2VudFBsYXRmb3JtIHtcbiAgb3NUeXBlOiBzdHJpbmc7XG4gIG9zVmVyc2lvbjogc3RyaW5nO1xuICBhcmNoaXRlY3R1cmU6IHN0cmluZztcbiAgdGVybWluYWw6IHN0cmluZztcbn1cblxuZnVuY3Rpb24gY29kZXhQbGF0Zm9ybSgpOiBDb2RleFVzZXJBZ2VudFBsYXRmb3JtIHtcbiAgY29uc3QgbmFtZXM6IFBhcnRpYWw8UmVjb3JkPE5vZGVKUy5QbGF0Zm9ybSwgc3RyaW5nPj4gPSB7XG4gICAgZGFyd2luOiBcIk1hYyBPU1wiLFxuICAgIGxpbnV4OiBcIkxpbnV4XCIsXG4gICAgd2luMzI6IFwiV2luZG93c1wiLFxuICB9O1xuICBjb25zdCB0ZXJtaW5hbCA9IHByb2Nlc3MuZW52LlRFUk1fUFJPR1JBTTtcbiAgY29uc3QgdGVybWluYWxWZXJzaW9uID0gcHJvY2Vzcy5lbnYuVEVSTV9QUk9HUkFNX1ZFUlNJT047XG4gIHJldHVybiB7XG4gICAgb3NUeXBlOiBuYW1lc1twcm9jZXNzLnBsYXRmb3JtXSA/PyBwcm9jZXNzLnBsYXRmb3JtLFxuICAgIG9zVmVyc2lvbjogb3MucmVsZWFzZSgpLFxuICAgIGFyY2hpdGVjdHVyZTogcHJvY2Vzcy5hcmNoLFxuICAgIHRlcm1pbmFsOiB0ZXJtaW5hbCA/IGAke3Rlcm1pbmFsfSR7dGVybWluYWxWZXJzaW9uID8gYC8ke3Rlcm1pbmFsVmVyc2lvbn1gIDogXCJcIn1gIDogXCJ1bmtub3duXCIsXG4gIH07XG59XG5cbi8qKiBNYXRjaGVzIHRoZSBwbGF0Zm9ybS90ZXJtaW5hbCBzdWZmaXggZW1pdHRlZCBieSB0aGUgcGlubmVkIFJ1c3QgQ29kZXggQ0xJLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvZGV4Q2xpVXNlckFnZW50KHBsYXRmb3JtOiBDb2RleFVzZXJBZ2VudFBsYXRmb3JtID0gY29kZXhQbGF0Zm9ybSgpKTogc3RyaW5nIHtcbiAgcmV0dXJuIGBjb2RleF9jbGlfcnMvJHtDT0RFWF9DTElfVkVSU0lPTn0gKCR7cGxhdGZvcm0ub3NUeXBlfSAke3BsYXRmb3JtLm9zVmVyc2lvbn07ICR7cGxhdGZvcm0uYXJjaGl0ZWN0dXJlfSkgJHtwbGF0Zm9ybS50ZXJtaW5hbH1gO1xufVxuXG5leHBvcnQgdHlwZSBKc29uVmFsdWUgPVxuICB8IG51bGxcbiAgfCBib29sZWFuXG4gIHwgbnVtYmVyXG4gIHwgc3RyaW5nXG4gIHwgSnNvblZhbHVlW11cbiAgfCB7IFtrZXk6IHN0cmluZ106IEpzb25WYWx1ZSB9O1xuXG4vKiogUmF3IFJlc3BvbnNlcyBBUEkgaXRlbXMuIEtlZXBpbmcgdGhlc2Ugb3BhcXVlIHByZXNlcnZlcyB0aGUgY29tcGxldGUgY29udmVyc2F0aW9uIGhpc3RvcnkuICovXG5leHBvcnQgdHlwZSBPcGVuQUlSZXNwb25zZUl0ZW0gPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxuZXhwb3J0IGludGVyZmFjZSBPcGVuQUlPdXRwdXRTY2hlbWEge1xuICBuYW1lPzogc3RyaW5nO1xuICBzY2hlbWE6IEpzb25WYWx1ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPcGVuQUlSZXNwb25zZXNPcHRpb25zIHtcbiAgbW9kZWw6IHN0cmluZztcbiAgaW5zdHJ1Y3Rpb25zPzogc3RyaW5nO1xuICBoaXN0b3J5OiByZWFkb25seSBPcGVuQUlSZXNwb25zZUl0ZW1bXTtcbiAgdG9vbHM/OiByZWFkb25seSBPcGVuQUlSZXNwb25zZUl0ZW1bXTtcbiAgdG9vbENob2ljZT86IHN0cmluZyB8IE9wZW5BSVJlc3BvbnNlSXRlbTtcbiAgcGFyYWxsZWxUb29sQ2FsbHM/OiBib29sZWFuO1xuICByZWFzb25pbmc/OiB7XG4gICAgZWZmb3J0PzogXCJub25lXCIgfCBcIm1pbmltYWxcIiB8IFwibG93XCIgfCBcIm1lZGl1bVwiIHwgXCJoaWdoXCIgfCBcInhoaWdoXCI7XG4gICAgc3VtbWFyeT86IFwiYXV0b1wiIHwgXCJjb25jaXNlXCIgfCBcImRldGFpbGVkXCI7XG4gIH07XG4gIHZlcmJvc2l0eT86IFwibG93XCIgfCBcIm1lZGl1bVwiIHwgXCJoaWdoXCI7XG4gIHNlcnZpY2VUaWVyPzogc3RyaW5nO1xuICBwcm9tcHRDYWNoZUtleT86IHN0cmluZztcbiAgb3V0cHV0U2NoZW1hPzogT3BlbkFJT3V0cHV0U2NoZW1hO1xuICBpbWFnZUdlbmVyYXRpb24/OiBib29sZWFuIHwgT3BlbkFJUmVzcG9uc2VJdGVtO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9wZW5BSVJlc3BvbnNlc1JlcXVlc3Qge1xuICBtb2RlbDogc3RyaW5nO1xuICBpbnN0cnVjdGlvbnM/OiBzdHJpbmc7XG4gIGlucHV0OiBPcGVuQUlSZXNwb25zZUl0ZW1bXTtcbiAgdG9vbHM/OiBPcGVuQUlSZXNwb25zZUl0ZW1bXTtcbiAgdG9vbF9jaG9pY2U6IHN0cmluZyB8IE9wZW5BSVJlc3BvbnNlSXRlbTtcbiAgcGFyYWxsZWxfdG9vbF9jYWxsczogYm9vbGVhbjtcbiAgcmVhc29uaW5nOiBPcGVuQUlSZXNwb25zZXNPcHRpb25zW1wicmVhc29uaW5nXCJdIHwgbnVsbDtcbiAgc3RvcmU6IGZhbHNlO1xuICBzdHJlYW06IHRydWU7XG4gIGluY2x1ZGU6IHN0cmluZ1tdO1xuICBzZXJ2aWNlX3RpZXI/OiBzdHJpbmc7XG4gIHByb21wdF9jYWNoZV9rZXk/OiBzdHJpbmc7XG4gIHRleHQ/OiB7XG4gICAgdmVyYm9zaXR5PzogXCJsb3dcIiB8IFwibWVkaXVtXCIgfCBcImhpZ2hcIjtcbiAgICBmb3JtYXQ/OiB7XG4gICAgICB0eXBlOiBcImpzb25fc2NoZW1hXCI7XG4gICAgICBzdHJpY3Q6IHRydWU7XG4gICAgICBzY2hlbWE6IEpzb25WYWx1ZTtcbiAgICAgIG5hbWU6IHN0cmluZztcbiAgICB9O1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRPcGVuQUlSZXNwb25zZXNSZXF1ZXN0KFxuICBvcHRpb25zOiBPcGVuQUlSZXNwb25zZXNPcHRpb25zLFxuKTogT3BlbkFJUmVzcG9uc2VzUmVxdWVzdCB7XG4gIGNvbnN0IHRvb2xzID0gb3B0aW9ucy50b29scyA/IFsuLi5vcHRpb25zLnRvb2xzXSA6IFtdO1xuICBpZiAob3B0aW9ucy5pbWFnZUdlbmVyYXRpb24pIHtcbiAgICB0b29scy5wdXNoKFxuICAgICAgb3B0aW9ucy5pbWFnZUdlbmVyYXRpb24gPT09IHRydWVcbiAgICAgICAgPyB7IHR5cGU6IFwiaW1hZ2VfZ2VuZXJhdGlvblwiIH1cbiAgICAgICAgOiB7IHR5cGU6IFwiaW1hZ2VfZ2VuZXJhdGlvblwiLCAuLi5vcHRpb25zLmltYWdlR2VuZXJhdGlvbiB9LFxuICAgICk7XG4gIH1cblxuICBjb25zdCB0ZXh0ID1cbiAgICBvcHRpb25zLnZlcmJvc2l0eSB8fCBvcHRpb25zLm91dHB1dFNjaGVtYVxuICAgICAgPyB7XG4gICAgICAgICAgLi4uKG9wdGlvbnMudmVyYm9zaXR5ID8geyB2ZXJib3NpdHk6IG9wdGlvbnMudmVyYm9zaXR5IH0gOiB7fSksXG4gICAgICAgICAgLi4uKG9wdGlvbnMub3V0cHV0U2NoZW1hXG4gICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICBmb3JtYXQ6IHtcbiAgICAgICAgICAgICAgICAgIHR5cGU6IFwianNvbl9zY2hlbWFcIiBhcyBjb25zdCxcbiAgICAgICAgICAgICAgICAgIHN0cmljdDogdHJ1ZSBhcyBjb25zdCxcbiAgICAgICAgICAgICAgICAgIHNjaGVtYTogb3B0aW9ucy5vdXRwdXRTY2hlbWEuc2NoZW1hLFxuICAgICAgICAgICAgICAgICAgbmFtZTogb3B0aW9ucy5vdXRwdXRTY2hlbWEubmFtZSA/PyBcImNvZGV4X291dHB1dF9zY2hlbWFcIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgfVxuICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgcmV0dXJuIHtcbiAgICBtb2RlbDogb3B0aW9ucy5tb2RlbCxcbiAgICAuLi4ob3B0aW9ucy5pbnN0cnVjdGlvbnMgPyB7IGluc3RydWN0aW9uczogb3B0aW9ucy5pbnN0cnVjdGlvbnMgfSA6IHt9KSxcbiAgICAvLyBDb3B5IHRoZSBhcnJheSwgbm90IGl0cyBpdGVtczogcmF3IGl0ZW1zIG11c3QgYXJyaXZlIGJ5dGUtZm9yLWJ5dGUgZXF1aXZhbGVudC5cbiAgICBpbnB1dDogWy4uLm9wdGlvbnMuaGlzdG9yeV0sXG4gICAgLi4uKHRvb2xzLmxlbmd0aCA/IHsgdG9vbHMgfSA6IHt9KSxcbiAgICB0b29sX2Nob2ljZTogb3B0aW9ucy50b29sQ2hvaWNlID8/IFwiYXV0b1wiLFxuICAgIHBhcmFsbGVsX3Rvb2xfY2FsbHM6IG9wdGlvbnMucGFyYWxsZWxUb29sQ2FsbHMgPz8gdHJ1ZSxcbiAgICByZWFzb25pbmc6IG9wdGlvbnMucmVhc29uaW5nID8/IG51bGwsXG4gICAgc3RvcmU6IGZhbHNlLFxuICAgIHN0cmVhbTogdHJ1ZSxcbiAgICBpbmNsdWRlOiBbXCJyZWFzb25pbmcuZW5jcnlwdGVkX2NvbnRlbnRcIl0sXG4gICAgLi4uKG9wdGlvbnMuc2VydmljZVRpZXIgPyB7IHNlcnZpY2VfdGllcjogb3B0aW9ucy5zZXJ2aWNlVGllciB9IDoge30pLFxuICAgIC4uLihvcHRpb25zLnByb21wdENhY2hlS2V5ID8geyBwcm9tcHRfY2FjaGVfa2V5OiBvcHRpb25zLnByb21wdENhY2hlS2V5IH0gOiB7fSksXG4gICAgLi4uKHRleHQgPyB7IHRleHQgfSA6IHt9KSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkQ29kZXhJZGVudGl0eUhlYWRlcnMoXG4gIGFjY2Vzc1Rva2VuOiBzdHJpbmcsXG4gIGFjY291bnRJZDogc3RyaW5nLFxuICBjb3JyZWxhdGlvbj86IHsgc2Vzc2lvbklkPzogc3RyaW5nOyB0aHJlYWRJZD86IHN0cmluZzsgY2xpZW50UmVxdWVzdElkPzogc3RyaW5nIH0sXG4pOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgcmV0dXJuIHtcbiAgICBBY2NlcHQ6IFwidGV4dC9ldmVudC1zdHJlYW1cIixcbiAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7YWNjZXNzVG9rZW59YCxcbiAgICBcIkNoYXRHUFQtQWNjb3VudC1JRFwiOiBhY2NvdW50SWQsXG4gICAgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIsXG4gICAgb3JpZ2luYXRvcjogQ09ERVhfQ0xJX09SSUdJTkFUT1IsXG4gICAgXCJVc2VyLUFnZW50XCI6IGNvZGV4Q2xpVXNlckFnZW50KCksXG4gICAgLi4uKGNvcnJlbGF0aW9uPy5zZXNzaW9uSWQgPyB7IFwic2Vzc2lvbi1pZFwiOiBjb3JyZWxhdGlvbi5zZXNzaW9uSWQgfSA6IHt9KSxcbiAgICAuLi4oY29ycmVsYXRpb24/LnRocmVhZElkID8geyBcInRocmVhZC1pZFwiOiBjb3JyZWxhdGlvbi50aHJlYWRJZCB9IDoge30pLFxuICAgIC4uLihjb3JyZWxhdGlvbj8uY2xpZW50UmVxdWVzdElkID8geyBcIngtY2xpZW50LXJlcXVlc3QtaWRcIjogY29ycmVsYXRpb24uY2xpZW50UmVxdWVzdElkIH0gOiB7fSksXG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3BlbkFJVXNhZ2Uge1xuICBpbnB1dFRva2VuczogbnVtYmVyO1xuICBjYWNoZWRJbnB1dFRva2VuczogbnVtYmVyO1xuICBvdXRwdXRUb2tlbnM6IG51bWJlcjtcbiAgcmVhc29uaW5nVG9rZW5zOiBudW1iZXI7XG4gIHRvdGFsVG9rZW5zOiBudW1iZXI7XG59XG5cbmV4cG9ydCB0eXBlIE9wZW5BSU5vcm1hbGl6ZWRFdmVudCA9XG4gIHwgeyB0eXBlOiBcImNyZWF0ZWRcIjsgcmVzcG9uc2VJZD86IHN0cmluZyB9XG4gIHwgeyB0eXBlOiBcInRleHQtZGVsdGFcIjsgdGV4dDogc3RyaW5nIH1cbiAgfCB7IHR5cGU6IFwiaW1hZ2VcIjsgaWQ/OiBzdHJpbmc7IGJhc2U2NDogc3RyaW5nOyBtaW1lVHlwZTogXCJpbWFnZS9wbmdcIjsgcmV2aXNlZFByb21wdD86IHN0cmluZyB9XG4gIHwgeyB0eXBlOiBcIm91dHB1dC1pdGVtXCI7IGl0ZW06IE9wZW5BSVJlc3BvbnNlSXRlbSB9XG4gIHwgeyB0eXBlOiBcImNvbXBsZXRlZFwiOyByZXNwb25zZUlkOiBzdHJpbmc7IHVzYWdlPzogT3BlbkFJVXNhZ2U7IG1vZGVsPzogc3RyaW5nIH1cbiAgfCB7IHR5cGU6IFwiZXJyb3JcIjsgZXJyb3I6IE9wZW5BSVByb3RvY29sRXJyb3IgfTtcblxuZXhwb3J0IGNsYXNzIE9wZW5BSVByb3RvY29sRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICBwdWJsaWMgcmVhZG9ubHkgY29kZT86IHN0cmluZyxcbiAgICBwdWJsaWMgcmVhZG9ubHkgc3RhdHVzPzogbnVtYmVyLFxuICAgIHB1YmxpYyByZWFkb25seSByZXRyeUFmdGVyTXM/OiBudW1iZXIsXG4gICkge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgIHRoaXMubmFtZSA9IFwiT3BlbkFJUHJvdG9jb2xFcnJvclwiO1xuICB9XG59XG5cbmZ1bmN0aW9uIHVzYWdlRnJvbSh2YWx1ZTogdW5rbm93bik6IE9wZW5BSVVzYWdlIHwgdW5kZWZpbmVkIHtcbiAgaWYgKCF2YWx1ZSB8fCB0eXBlb2YgdmFsdWUgIT09IFwib2JqZWN0XCIpIHJldHVybiB1bmRlZmluZWQ7XG4gIGNvbnN0IHVzYWdlID0gdmFsdWUgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIGNvbnN0IGlucHV0RGV0YWlscyA9ICh1c2FnZS5pbnB1dF90b2tlbnNfZGV0YWlscyA/PyB7fSkgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIGNvbnN0IG91dHB1dERldGFpbHMgPSAodXNhZ2Uub3V0cHV0X3Rva2Vuc19kZXRhaWxzID8/IHt9KSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgcmV0dXJuIHtcbiAgICBpbnB1dFRva2VuczogTnVtYmVyKHVzYWdlLmlucHV0X3Rva2VucyA/PyAwKSxcbiAgICBjYWNoZWRJbnB1dFRva2VuczogTnVtYmVyKGlucHV0RGV0YWlscy5jYWNoZWRfdG9rZW5zID8/IDApLFxuICAgIG91dHB1dFRva2VuczogTnVtYmVyKHVzYWdlLm91dHB1dF90b2tlbnMgPz8gMCksXG4gICAgcmVhc29uaW5nVG9rZW5zOiBOdW1iZXIob3V0cHV0RGV0YWlscy5yZWFzb25pbmdfdG9rZW5zID8/IDApLFxuICAgIHRvdGFsVG9rZW5zOiBOdW1iZXIodXNhZ2UudG90YWxfdG9rZW5zID8/IDApLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplT3BlbkFJRXZlbnQocmF3OiB1bmtub3duKTogT3BlbkFJTm9ybWFsaXplZEV2ZW50IHwgdW5kZWZpbmVkIHtcbiAgaWYgKCFyYXcgfHwgdHlwZW9mIHJhdyAhPT0gXCJvYmplY3RcIikgcmV0dXJuIHVuZGVmaW5lZDtcbiAgY29uc3QgZXZlbnQgPSByYXcgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIGNvbnN0IHR5cGUgPSBTdHJpbmcoZXZlbnQudHlwZSA/PyBcIlwiKTtcbiAgaWYgKHR5cGUgPT09IFwicmVzcG9uc2UuY3JlYXRlZFwiKSB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBldmVudC5yZXNwb25zZSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IHVuZGVmaW5lZDtcbiAgICByZXR1cm4geyB0eXBlOiBcImNyZWF0ZWRcIiwgLi4uKHJlc3BvbnNlPy5pZCA/IHsgcmVzcG9uc2VJZDogU3RyaW5nKHJlc3BvbnNlLmlkKSB9IDoge30pIH07XG4gIH1cbiAgaWYgKHR5cGUgPT09IFwicmVzcG9uc2Uub3V0cHV0X3RleHQuZGVsdGFcIiAmJiB0eXBlb2YgZXZlbnQuZGVsdGEgPT09IFwic3RyaW5nXCIpIHtcbiAgICByZXR1cm4geyB0eXBlOiBcInRleHQtZGVsdGFcIiwgdGV4dDogZXZlbnQuZGVsdGEgfTtcbiAgfVxuICBpZiAoXG4gICAgKHR5cGUgPT09IFwicmVzcG9uc2Uub3V0cHV0X2l0ZW0uYWRkZWRcIiB8fCB0eXBlID09PSBcInJlc3BvbnNlLm91dHB1dF9pdGVtLmRvbmVcIikgJiZcbiAgICBldmVudC5pdGVtICYmXG4gICAgdHlwZW9mIGV2ZW50Lml0ZW0gPT09IFwib2JqZWN0XCJcbiAgKSB7XG4gICAgY29uc3QgaXRlbSA9IGV2ZW50Lml0ZW0gYXMgT3BlbkFJUmVzcG9uc2VJdGVtO1xuICAgIGlmIChpdGVtLnR5cGUgPT09IFwiaW1hZ2VfZ2VuZXJhdGlvbl9jYWxsXCIgJiYgdHlwZW9mIGl0ZW0ucmVzdWx0ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0eXBlOiBcImltYWdlXCIsXG4gICAgICAgIC4uLih0eXBlb2YgaXRlbS5pZCA9PT0gXCJzdHJpbmdcIiA/IHsgaWQ6IGl0ZW0uaWQgfSA6IHt9KSxcbiAgICAgICAgYmFzZTY0OiBpdGVtLnJlc3VsdCxcbiAgICAgICAgbWltZVR5cGU6IFwiaW1hZ2UvcG5nXCIsXG4gICAgICAgIC4uLih0eXBlb2YgaXRlbS5yZXZpc2VkX3Byb21wdCA9PT0gXCJzdHJpbmdcIlxuICAgICAgICAgID8geyByZXZpc2VkUHJvbXB0OiBpdGVtLnJldmlzZWRfcHJvbXB0IH1cbiAgICAgICAgICA6IHR5cGVvZiBpdGVtLnJldmlzZWRQcm9tcHQgPT09IFwic3RyaW5nXCJcbiAgICAgICAgICAgID8geyByZXZpc2VkUHJvbXB0OiBpdGVtLnJldmlzZWRQcm9tcHQgfVxuICAgICAgICAgICAgOiB7fSksXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4geyB0eXBlOiBcIm91dHB1dC1pdGVtXCIsIGl0ZW0gfTtcbiAgfVxuICBpZiAodHlwZSA9PT0gXCJyZXNwb25zZS5jb21wbGV0ZWRcIikge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gKGV2ZW50LnJlc3BvbnNlID8/IHt9KSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogXCJjb21wbGV0ZWRcIixcbiAgICAgIHJlc3BvbnNlSWQ6IFN0cmluZyhyZXNwb25zZS5pZCA/PyBcIlwiKSxcbiAgICAgIC4uLihyZXNwb25zZS51c2FnZSA/IHsgdXNhZ2U6IHVzYWdlRnJvbShyZXNwb25zZS51c2FnZSkgfSA6IHt9KSxcbiAgICAgIC4uLih0eXBlb2YgcmVzcG9uc2UubW9kZWwgPT09IFwic3RyaW5nXCIgPyB7IG1vZGVsOiByZXNwb25zZS5tb2RlbCB9IDoge30pLFxuICAgIH07XG4gIH1cbiAgaWYgKHR5cGUgPT09IFwiZXJyb3JcIiB8fCB0eXBlID09PSBcInJlc3BvbnNlLmZhaWxlZFwiIHx8IHR5cGUgPT09IFwicmVzcG9uc2UuaW5jb21wbGV0ZVwiKSB7XG4gICAgY29uc3Qgc291cmNlID0gKGV2ZW50LmVycm9yID8/IGV2ZW50LnJlc3BvbnNlID8/IGV2ZW50KSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICBjb25zdCBuZXN0ZWQgPSAoc291cmNlLmVycm9yID8/IHNvdXJjZSkgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IFwiZXJyb3JcIixcbiAgICAgIGVycm9yOiBuZXcgT3BlbkFJUHJvdG9jb2xFcnJvcihcbiAgICAgICAgU3RyaW5nKG5lc3RlZC5tZXNzYWdlID8/IGBPcGVuQUkgc3RyZWFtIGVuZGVkIHdpdGggJHt0eXBlfWApLFxuICAgICAgICB0eXBlb2YgbmVzdGVkLmNvZGUgPT09IFwic3RyaW5nXCIgPyBuZXN0ZWQuY29kZSA6IHVuZGVmaW5lZCxcbiAgICAgICksXG4gICAgfTtcbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuIl0sIm1hcHBpbmdzIjoiOztBQUVBLE1BQWEsOEJBQ1g7QUFFRixNQUFhLHVCQUF1QjtBQUNwQyxNQUFhLG9CQUFvQjtBQVNqQyxTQUFTLGdCQUF3QztDQUMvQyxNQUFNLFFBQWtEO0VBQ3RELFFBQVE7RUFDUixPQUFPO0VBQ1AsT0FBTztDQUNUO0NBQ0EsTUFBTSxXQUFXLFFBQVEsSUFBSTtDQUM3QixNQUFNLGtCQUFrQixRQUFRLElBQUk7Q0FDcEMsT0FBTztFQUNMLFFBQVEsTUFBTSxRQUFRLGFBQWEsUUFBUTtFQUMzQyxXQUFXLEdBQUcsUUFBUTtFQUN0QixjQUFjLFFBQVE7RUFDdEIsVUFBVSxXQUFXLEdBQUcsV0FBVyxrQkFBa0IsSUFBSSxvQkFBb0IsT0FBTztDQUN0RjtBQUNGOztBQUdBLFNBQWdCLGtCQUFrQixXQUFtQyxjQUFjLEdBQVc7Q0FDNUYsT0FBTyxnQkFBZ0Isa0JBQWtCLElBQUksU0FBUyxPQUFPLEdBQUcsU0FBUyxVQUFVLElBQUksU0FBUyxhQUFhLElBQUksU0FBUztBQUM1SDtBQTREQSxTQUFnQiw0QkFDZCxTQUN3QjtDQUN4QixNQUFNLFFBQVEsUUFBUSxRQUFRLENBQUMsR0FBRyxRQUFRLEtBQUssSUFBSSxDQUFDO0NBQ3BELElBQUksUUFBUSxpQkFDVixNQUFNLEtBQ0osUUFBUSxvQkFBb0IsT0FDeEIsRUFBRSxNQUFNLG1CQUFtQixJQUMzQjtFQUFFLE1BQU07RUFBb0IsR0FBRyxRQUFRO0NBQWdCLENBQzdEO0NBR0YsTUFBTSxPQUNKLFFBQVEs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
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
//#region src/utils/providers/openai/openai-constants.ts
|
|
2
2
|
const OPENAI_ISSUER = "https://auth.openai.com";
|
|
3
3
|
const OPENAI_CLIENT_ID = "app_EMoamEEZ73f0CkXaXp7hrann";
|
|
4
|
+
const OPENAI_AUTHORIZE_URL = `${OPENAI_ISSUER}/oauth/authorize`;
|
|
4
5
|
const OPENAI_TOKEN_URL = `${OPENAI_ISSUER}/oauth/token`;
|
|
5
6
|
const OPENAI_SCOPES = "openid profile email offline_access api.connectors.read api.connectors.invoke";
|
|
7
|
+
const OPENAI_ORIGINATOR = "codex_cli_rs";
|
|
6
8
|
//#endregion
|
|
7
|
-
export { OPENAI_CLIENT_ID, OPENAI_ISSUER, OPENAI_SCOPES, OPENAI_TOKEN_URL };
|
|
9
|
+
export { OPENAI_AUTHORIZE_URL, OPENAI_CLIENT_ID, OPENAI_ISSUER, OPENAI_ORIGINATOR, OPENAI_SCOPES, OPENAI_TOKEN_URL };
|
|
8
10
|
|
|
9
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
11
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbmFpLWNvbnN0YW50cy5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdXRpbHMvcHJvdmlkZXJzL29wZW5haS9vcGVuYWktY29uc3RhbnRzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBPUEVOQUlfSVNTVUVSID0gXCJodHRwczovL2F1dGgub3BlbmFpLmNvbVwiO1xuZXhwb3J0IGNvbnN0IE9QRU5BSV9DTElFTlRfSUQgPSBcImFwcF9FTW9hbUVFWjczZjBDa1hhWHA3aHJhbm5cIjtcbmV4cG9ydCBjb25zdCBPUEVOQUlfQVVUSE9SSVpFX1VSTCA9IGAke09QRU5BSV9JU1NVRVJ9L29hdXRoL2F1dGhvcml6ZWA7XG5leHBvcnQgY29uc3QgT1BFTkFJX1RPS0VOX1VSTCA9IGAke09QRU5BSV9JU1NVRVJ9L29hdXRoL3Rva2VuYDtcbmV4cG9ydCBjb25zdCBPUEVOQUlfU0NPUEVTID1cbiAgXCJvcGVuaWQgcHJvZmlsZSBlbWFpbCBvZmZsaW5lX2FjY2VzcyBhcGkuY29ubmVjdG9ycy5yZWFkIGFwaS5jb25uZWN0b3JzLmludm9rZVwiO1xuZXhwb3J0IGNvbnN0IE9QRU5BSV9PUklHSU5BVE9SID0gXCJjb2RleF9jbGlfcnNcIjtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBLE1BQWEsZ0JBQWdCO0FBQzdCLE1BQWEsbUJBQW1CO0FBQ2hDLE1BQWEsdUJBQXVCLEdBQUcsY0FBYztBQUNyRCxNQUFhLG1CQUFtQixHQUFHLGNBQWM7QUFDakQsTUFBYSxnQkFDWDtBQUNGLE1BQWEsb0JBQW9CIn0=
|
|
@@ -0,0 +1,327 @@
|
|
|
1
|
+
import { CHATGPT_CODEX_RESPONSES_URL, OpenAIProtocolError, buildCodexIdentityHeaders, buildOpenAIResponsesRequest, normalizeOpenAIEvent } from "./openai-backend-protocol.js";
|
|
2
|
+
import { normalizeOpenAISSE } from "./openai-sse.js";
|
|
3
|
+
import crypto from "node:crypto";
|
|
4
|
+
import WsClient from "ws";
|
|
5
|
+
//#region src/utils/providers/openai/openai-direct-client.ts
|
|
6
|
+
const MAX_BUFFERED_SOCKET_RECORDS = 1600;
|
|
7
|
+
function websocketUrl(url) {
|
|
8
|
+
let parsed;
|
|
9
|
+
try {
|
|
10
|
+
parsed = new URL(url);
|
|
11
|
+
} catch (error) {
|
|
12
|
+
throw new OpenAIProtocolError(`Invalid OpenAI Responses URL: ${String(error)}`);
|
|
13
|
+
}
|
|
14
|
+
parsed.protocol = parsed.protocol === "https:" ? "wss:" : "ws:";
|
|
15
|
+
return parsed.toString();
|
|
16
|
+
}
|
|
17
|
+
function rawDataText(data) {
|
|
18
|
+
if (Array.isArray(data)) return Buffer.concat(data).toString();
|
|
19
|
+
if (data instanceof ArrayBuffer) return Buffer.from(new Uint8Array(data)).toString();
|
|
20
|
+
return Buffer.from(data).toString();
|
|
21
|
+
}
|
|
22
|
+
function socketEvents(socket, signal) {
|
|
23
|
+
const records = [];
|
|
24
|
+
const waiters = [];
|
|
25
|
+
let active = true;
|
|
26
|
+
const push = (record) => {
|
|
27
|
+
if (!active) return;
|
|
28
|
+
const waiter = waiters.shift();
|
|
29
|
+
if (waiter) waiter(record);
|
|
30
|
+
else if (records.length < MAX_BUFFERED_SOCKET_RECORDS) records.push(record);
|
|
31
|
+
else {
|
|
32
|
+
active = false;
|
|
33
|
+
records.length = 0;
|
|
34
|
+
socket.terminate();
|
|
35
|
+
const overflow = {
|
|
36
|
+
kind: "error",
|
|
37
|
+
error: new OpenAIProtocolError(`OpenAI WebSocket exceeded the ${MAX_BUFFERED_SOCKET_RECORDS}-record receive buffer`, "websocket_backpressure")
|
|
38
|
+
};
|
|
39
|
+
const overflowWaiter = waiters.shift();
|
|
40
|
+
if (overflowWaiter) overflowWaiter(overflow);
|
|
41
|
+
else records.push(overflow);
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
const onOpen = () => push({ kind: "open" });
|
|
45
|
+
const onMessage = (data, isBinary) => push({
|
|
46
|
+
kind: "message",
|
|
47
|
+
data,
|
|
48
|
+
isBinary
|
|
49
|
+
});
|
|
50
|
+
const onClose = (code, reason) => push({
|
|
51
|
+
kind: "close",
|
|
52
|
+
code,
|
|
53
|
+
reason: reason.toString()
|
|
54
|
+
});
|
|
55
|
+
const onError = (error) => push({
|
|
56
|
+
kind: "error",
|
|
57
|
+
error
|
|
58
|
+
});
|
|
59
|
+
const onUnexpectedResponse = (_request, response) => push({
|
|
60
|
+
kind: "rejected",
|
|
61
|
+
status: response.statusCode
|
|
62
|
+
});
|
|
63
|
+
socket.on("open", onOpen);
|
|
64
|
+
socket.on("message", onMessage);
|
|
65
|
+
socket.on("close", onClose);
|
|
66
|
+
socket.on("error", onError);
|
|
67
|
+
socket.on("unexpected-response", onUnexpectedResponse);
|
|
68
|
+
const onAbort = () => {
|
|
69
|
+
socket.terminate();
|
|
70
|
+
push({
|
|
71
|
+
kind: "error",
|
|
72
|
+
error: abortError(signal)
|
|
73
|
+
});
|
|
74
|
+
};
|
|
75
|
+
signal?.addEventListener("abort", onAbort, { once: true });
|
|
76
|
+
return {
|
|
77
|
+
next: () => records.length ? Promise.resolve(records.shift()) : new Promise((resolve) => waiters.push(resolve)),
|
|
78
|
+
cleanup: () => {
|
|
79
|
+
active = false;
|
|
80
|
+
signal?.removeEventListener("abort", onAbort);
|
|
81
|
+
socket.off("open", onOpen);
|
|
82
|
+
socket.off("message", onMessage);
|
|
83
|
+
socket.off("close", onClose);
|
|
84
|
+
socket.off("error", onError);
|
|
85
|
+
socket.off("unexpected-response", onUnexpectedResponse);
|
|
86
|
+
records.length = 0;
|
|
87
|
+
const closed = {
|
|
88
|
+
kind: "error",
|
|
89
|
+
error: new OpenAIProtocolError("OpenAI WebSocket event stream was closed")
|
|
90
|
+
};
|
|
91
|
+
for (const waiter of waiters.splice(0)) waiter(closed);
|
|
92
|
+
},
|
|
93
|
+
detachAbort: () => signal?.removeEventListener("abort", onAbort)
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
function abortError(signal) {
|
|
97
|
+
return signal?.reason instanceof Error ? signal.reason : new DOMException("Aborted", "AbortError");
|
|
98
|
+
}
|
|
99
|
+
async function nextPooledRecord(events, socket, signal) {
|
|
100
|
+
if (!signal) return events.next();
|
|
101
|
+
if (signal.aborted) throw abortError(signal);
|
|
102
|
+
return new Promise((resolve, reject) => {
|
|
103
|
+
const onAbort = () => {
|
|
104
|
+
socket.terminate();
|
|
105
|
+
reject(abortError(signal));
|
|
106
|
+
};
|
|
107
|
+
signal.addEventListener("abort", onAbort, { once: true });
|
|
108
|
+
events.next().then(resolve, reject).finally(() => {
|
|
109
|
+
signal.removeEventListener("abort", onAbort);
|
|
110
|
+
});
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
function cacheAffinityUuid(key) {
|
|
114
|
+
const hex = crypto.createHash("sha256").update(key).digest("hex").slice(0, 32).split("");
|
|
115
|
+
hex[12] = "4";
|
|
116
|
+
hex[16] = (Number.parseInt(hex[16], 16) & 3 | 8).toString(16);
|
|
117
|
+
return `${hex.slice(0, 8).join("")}-${hex.slice(8, 12).join("")}-${hex.slice(12, 16).join("")}-${hex.slice(16, 20).join("")}-${hex.slice(20).join("")}`;
|
|
118
|
+
}
|
|
119
|
+
var OpenAIWebSocketTransport = class OpenAIWebSocketTransport {
|
|
120
|
+
static MAX_AFFINITY_CONNECTIONS = 16;
|
|
121
|
+
credentials;
|
|
122
|
+
refreshCredentials;
|
|
123
|
+
webSocketFactory;
|
|
124
|
+
affinityConnections = /* @__PURE__ */ new Map();
|
|
125
|
+
busyAffinities = /* @__PURE__ */ new Set();
|
|
126
|
+
constructor(options) {
|
|
127
|
+
this.credentials = options.credentials;
|
|
128
|
+
this.refreshCredentials = options.refreshCredentials;
|
|
129
|
+
this.webSocketFactory = options.webSocketFactory ?? ((url, wsOptions) => new WsClient(url, wsOptions));
|
|
130
|
+
}
|
|
131
|
+
stream(request) {
|
|
132
|
+
return this.run(request);
|
|
133
|
+
}
|
|
134
|
+
close() {
|
|
135
|
+
for (const { socket, events } of this.affinityConnections.values()) {
|
|
136
|
+
events.cleanup();
|
|
137
|
+
socket.close(1e3, "transport closed");
|
|
138
|
+
}
|
|
139
|
+
this.affinityConnections.clear();
|
|
140
|
+
this.busyAffinities.clear();
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* 캐시에 연결을 등록한다. 자리가 없으면 유휴 연결만 축출하고, 전부 사용 중이면
|
|
144
|
+
* 진행 중인 응답을 끊는 대신 등록을 포기한다(false → 이 요청은 일회성 소켓으로 처리).
|
|
145
|
+
*/
|
|
146
|
+
rememberAffinityConnection(threadId, connection) {
|
|
147
|
+
if (!this.affinityConnections.has(threadId) && this.affinityConnections.size >= OpenAIWebSocketTransport.MAX_AFFINITY_CONNECTIONS) {
|
|
148
|
+
const idleKey = [...this.affinityConnections.keys()].find((key) => !this.busyAffinities.has(key));
|
|
149
|
+
if (idleKey === void 0) return false;
|
|
150
|
+
const idle = this.affinityConnections.get(idleKey);
|
|
151
|
+
idle.events.cleanup();
|
|
152
|
+
idle.socket.close(1e3, "affinity cache evicted");
|
|
153
|
+
this.affinityConnections.delete(idleKey);
|
|
154
|
+
}
|
|
155
|
+
this.affinityConnections.set(threadId, connection);
|
|
156
|
+
const drop = () => {
|
|
157
|
+
connection.closed = true;
|
|
158
|
+
if (this.busyAffinities.has(threadId)) return;
|
|
159
|
+
if (this.affinityConnections.get(threadId) !== connection) return;
|
|
160
|
+
this.affinityConnections.delete(threadId);
|
|
161
|
+
connection.events.cleanup();
|
|
162
|
+
};
|
|
163
|
+
connection.socket.on("close", drop);
|
|
164
|
+
connection.socket.on("error", drop);
|
|
165
|
+
return true;
|
|
166
|
+
}
|
|
167
|
+
async *run(request) {
|
|
168
|
+
let refreshed = false;
|
|
169
|
+
while (true) {
|
|
170
|
+
if (request.signal?.aborted) throw abortError(request.signal);
|
|
171
|
+
const retainConnection = request.body.prompt_cache_key !== void 0 && !this.busyAffinities.has(request.threadId);
|
|
172
|
+
if (retainConnection) this.busyAffinities.add(request.threadId);
|
|
173
|
+
const entry = retainConnection ? this.affinityConnections.get(request.threadId) : void 0;
|
|
174
|
+
if (entry?.closed) {
|
|
175
|
+
this.affinityConnections.delete(request.threadId);
|
|
176
|
+
entry.events.cleanup();
|
|
177
|
+
}
|
|
178
|
+
const cached = entry?.closed ? void 0 : entry;
|
|
179
|
+
let retained = retainConnection;
|
|
180
|
+
const socket = cached?.socket ?? this.webSocketFactory(websocketUrl("https://chatgpt.com/backend-api/codex/responses"), { headers: {
|
|
181
|
+
...buildCodexIdentityHeaders(this.credentials.accessToken, this.credentials.accountId, {
|
|
182
|
+
sessionId: request.sessionId,
|
|
183
|
+
threadId: request.threadId,
|
|
184
|
+
clientRequestId: request.clientRequestId
|
|
185
|
+
}),
|
|
186
|
+
"OpenAI-Beta": "responses_websockets=2026-02-06"
|
|
187
|
+
} });
|
|
188
|
+
const events = cached?.events ?? socketEvents(socket, request.signal);
|
|
189
|
+
let completed = false;
|
|
190
|
+
try {
|
|
191
|
+
if (!cached) {
|
|
192
|
+
const handshake = await events.next();
|
|
193
|
+
if (handshake.kind === "rejected" && handshake.status === 401 && !refreshed && this.refreshCredentials) {
|
|
194
|
+
socket.terminate();
|
|
195
|
+
this.credentials = await this.refreshCredentials();
|
|
196
|
+
refreshed = true;
|
|
197
|
+
continue;
|
|
198
|
+
}
|
|
199
|
+
if (handshake.kind === "rejected") throw new OpenAIProtocolError(`OpenAI WebSocket handshake rejected${handshake.status ? ` with HTTP ${handshake.status}` : ""}`, void 0, handshake.status);
|
|
200
|
+
if (handshake.kind === "error") throw handshake.error;
|
|
201
|
+
if (handshake.kind !== "open") throw new OpenAIProtocolError("OpenAI WebSocket closed before the handshake completed");
|
|
202
|
+
if (retainConnection) retained = this.rememberAffinityConnection(request.threadId, {
|
|
203
|
+
socket,
|
|
204
|
+
events
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
await new Promise((resolve, reject) => {
|
|
208
|
+
socket.send(JSON.stringify({
|
|
209
|
+
type: "response.create",
|
|
210
|
+
...request.body
|
|
211
|
+
}), (error) => error ? reject(error) : resolve());
|
|
212
|
+
});
|
|
213
|
+
while (true) {
|
|
214
|
+
const record = cached ? await nextPooledRecord(events, socket, request.signal) : await events.next();
|
|
215
|
+
if (record.kind === "message") {
|
|
216
|
+
if (record.isBinary) throw new OpenAIProtocolError("OpenAI WebSocket sent an unexpected binary message");
|
|
217
|
+
let raw;
|
|
218
|
+
try {
|
|
219
|
+
raw = JSON.parse(rawDataText(record.data));
|
|
220
|
+
} catch {
|
|
221
|
+
throw new OpenAIProtocolError("OpenAI WebSocket sent invalid JSON");
|
|
222
|
+
}
|
|
223
|
+
const event = normalizeOpenAIEvent(raw);
|
|
224
|
+
if (!event) continue;
|
|
225
|
+
if (event.type === "completed") {
|
|
226
|
+
completed = true;
|
|
227
|
+
if (retained) events.detachAbort();
|
|
228
|
+
else socket.close(1e3, "response completed");
|
|
229
|
+
yield event;
|
|
230
|
+
return;
|
|
231
|
+
}
|
|
232
|
+
yield event;
|
|
233
|
+
if (event.type === "error") throw event.error;
|
|
234
|
+
} else if (record.kind === "error") throw record.error;
|
|
235
|
+
else if (record.kind === "close") throw new OpenAIProtocolError(`OpenAI WebSocket closed before a terminal response event (${record.code}${record.reason ? `: ${record.reason}` : ""})`);
|
|
236
|
+
else throw new OpenAIProtocolError("OpenAI WebSocket emitted an unexpected handshake event");
|
|
237
|
+
}
|
|
238
|
+
} finally {
|
|
239
|
+
if (!completed || !retained) {
|
|
240
|
+
if (retained) this.affinityConnections.delete(request.threadId);
|
|
241
|
+
events.cleanup();
|
|
242
|
+
if (!completed) socket.terminate();
|
|
243
|
+
}
|
|
244
|
+
if (retainConnection) this.busyAffinities.delete(request.threadId);
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
};
|
|
249
|
+
async function responseError(response) {
|
|
250
|
+
const text = await response.text().catch(() => "");
|
|
251
|
+
let message = text || response.statusText || `HTTP ${response.status}`;
|
|
252
|
+
let code;
|
|
253
|
+
try {
|
|
254
|
+
const parsed = JSON.parse(text);
|
|
255
|
+
const error = parsed.error;
|
|
256
|
+
message = (typeof error === "object" ? error.message : void 0) ?? parsed.message ?? (typeof error === "string" ? error : message);
|
|
257
|
+
code = (typeof error === "object" ? error.code : void 0) ?? parsed.code;
|
|
258
|
+
} catch {
|
|
259
|
+
code = void 0;
|
|
260
|
+
}
|
|
261
|
+
return new OpenAIProtocolError(message, code, response.status);
|
|
262
|
+
}
|
|
263
|
+
var OpenAIHttpsTransport = class {
|
|
264
|
+
credentials;
|
|
265
|
+
fetchImpl;
|
|
266
|
+
refreshCredentials;
|
|
267
|
+
constructor(options) {
|
|
268
|
+
this.credentials = options.credentials;
|
|
269
|
+
this.fetchImpl = options.fetch ?? fetch;
|
|
270
|
+
this.refreshCredentials = options.refreshCredentials;
|
|
271
|
+
}
|
|
272
|
+
stream(request) {
|
|
273
|
+
return this.run(request);
|
|
274
|
+
}
|
|
275
|
+
async *run(request) {
|
|
276
|
+
let refreshed = false;
|
|
277
|
+
while (true) {
|
|
278
|
+
const response = await this.fetchImpl(CHATGPT_CODEX_RESPONSES_URL, {
|
|
279
|
+
method: "POST",
|
|
280
|
+
headers: buildCodexIdentityHeaders(this.credentials.accessToken, this.credentials.accountId, {
|
|
281
|
+
sessionId: request.sessionId,
|
|
282
|
+
threadId: request.threadId,
|
|
283
|
+
clientRequestId: request.clientRequestId
|
|
284
|
+
}),
|
|
285
|
+
body: JSON.stringify(request.body),
|
|
286
|
+
signal: request.signal
|
|
287
|
+
});
|
|
288
|
+
if (response.status === 401 && !refreshed && this.refreshCredentials) {
|
|
289
|
+
await response.body?.cancel();
|
|
290
|
+
this.credentials = await this.refreshCredentials();
|
|
291
|
+
refreshed = true;
|
|
292
|
+
continue;
|
|
293
|
+
}
|
|
294
|
+
if (!response.ok) throw await responseError(response);
|
|
295
|
+
if (!response.body) throw new OpenAIProtocolError("OpenAI response had no body");
|
|
296
|
+
for await (const event of normalizeOpenAISSE(response.body)) yield event;
|
|
297
|
+
return;
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
};
|
|
301
|
+
var OpenAIDirectClient = class {
|
|
302
|
+
transport;
|
|
303
|
+
constructor(options) {
|
|
304
|
+
this.transport = options.transport ?? (options.transportKind === "websocket" ? new OpenAIWebSocketTransport(options) : new OpenAIHttpsTransport(options));
|
|
305
|
+
}
|
|
306
|
+
responses(options, signal) {
|
|
307
|
+
const clientRequestId = crypto.randomUUID();
|
|
308
|
+
const affinityId = options.promptCacheKey ? cacheAffinityUuid(options.promptCacheKey) : clientRequestId;
|
|
309
|
+
return this.transport.stream({
|
|
310
|
+
body: buildOpenAIResponsesRequest(options.promptCacheKey ? {
|
|
311
|
+
...options,
|
|
312
|
+
promptCacheKey: affinityId
|
|
313
|
+
} : options),
|
|
314
|
+
signal,
|
|
315
|
+
sessionId: affinityId,
|
|
316
|
+
threadId: affinityId,
|
|
317
|
+
clientRequestId
|
|
318
|
+
});
|
|
319
|
+
}
|
|
320
|
+
close() {
|
|
321
|
+
this.transport.close?.();
|
|
322
|
+
}
|
|
323
|
+
};
|
|
324
|
+
//#endregion
|
|
325
|
+
export { OpenAIDirectClient, OpenAIHttpsTransport, OpenAIWebSocketTransport };
|
|
326
|
+
|
|
327
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbmFpLWRpcmVjdC1jbGllbnQuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3V0aWxzL3Byb3ZpZGVycy9vcGVuYWkvb3BlbmFpLWRpcmVjdC1jbGllbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyeXB0byBmcm9tIFwibm9kZTpjcnlwdG9cIjtcblxuaW1wb3J0IFdzQ2xpZW50LCB7IHR5cGUgQ2xpZW50T3B0aW9ucywgdHlwZSBSYXdEYXRhIH0gZnJvbSBcIndzXCI7XG5cbmltcG9ydCB7XG4gIGJ1aWxkQ29kZXhJZGVudGl0eUhlYWRlcnMsXG4gIGJ1aWxkT3BlbkFJUmVzcG9uc2VzUmVxdWVzdCxcbiAgQ0hBVEdQVF9DT0RFWF9SRVNQT05TRVNfVVJMLFxuICBub3JtYWxpemVPcGVuQUlFdmVudCxcbiAgT3BlbkFJUHJvdG9jb2xFcnJvcixcbiAgdHlwZSBPcGVuQUlOb3JtYWxpemVkRXZlbnQsXG4gIHR5cGUgT3BlbkFJUmVzcG9uc2VzT3B0aW9ucyxcbiAgdHlwZSBPcGVuQUlSZXNwb25zZXNSZXF1ZXN0LFxufSBmcm9tIFwiLi9vcGVuYWktYmFja2VuZC1wcm90b2NvbFwiO1xuaW1wb3J0IHsgbm9ybWFsaXplT3BlbkFJU1NFLCB0eXBlIE9wZW5BSUV2ZW50U3RyZWFtIH0gZnJvbSBcIi4vb3BlbmFpLXNzZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIE9wZW5BSURpcmVjdENyZWRlbnRpYWxzIHtcbiAgYWNjZXNzVG9rZW46IHN0cmluZztcbiAgYWNjb3VudElkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3BlbkFJVHJhbnNwb3J0UmVxdWVzdCB7XG4gIGJvZHk6IE9wZW5BSVJlc3BvbnNlc1JlcXVlc3Q7XG4gIHNpZ25hbD86IEFib3J0U2lnbmFsO1xuICBzZXNzaW9uSWQ6IHN0cmluZztcbiAgdGhyZWFkSWQ6IHN0cmluZztcbiAgY2xpZW50UmVxdWVzdElkOiBzdHJpbmc7XG59XG5cbi8qKiBUcmFuc3BvcnQtaW5kZXBlbmRlbnQgc3RyZWFtaW5nIGludGVyZmFjZTsgSFRUUFMgaXMgdGhlIGZpcnN0IGltcGxlbWVudGF0aW9uLiAqL1xuZXhwb3J0IGludGVyZmFjZSBPcGVuQUlSZXNwb25zZXNUcmFuc3BvcnQge1xuICBzdHJlYW0ocmVxdWVzdDogT3BlbkFJVHJhbnNwb3J0UmVxdWVzdCk6IE9wZW5BSUV2ZW50U3RyZWFtO1xuICBjbG9zZT8oKTogdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPcGVuQUlIdHRwc1RyYW5zcG9ydE9wdGlvbnMge1xuICBjcmVkZW50aWFsczogT3BlbkFJRGlyZWN0Q3JlZGVudGlhbHM7XG4gIGZldGNoPzogdHlwZW9mIGZldGNoO1xuICByZWZyZXNoQ3JlZGVudGlhbHM/OiAoKSA9PiBQcm9taXNlPE9wZW5BSURpcmVjdENyZWRlbnRpYWxzPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPcGVuQUlXZWJTb2NrZXRMaWtlIHtcbiAgb24oZXZlbnQ6IFwib3BlblwiLCBsaXN0ZW5lcjogKCkgPT4gdm9pZCk6IHRoaXM7XG4gIG9uKGV2ZW50OiBcIm1lc3NhZ2VcIiwgbGlzdGVuZXI6IChkYXRhOiBSYXdEYXRhLCBpc0JpbmFyeTogYm9vbGVhbikgPT4gdm9pZCk6IHRoaXM7XG4gIG9uKGV2ZW50OiBcImNsb3NlXCIsIGxpc3RlbmVyOiAoY29kZTogbnVtYmVyLCByZWFzb246IEJ1ZmZlcikgPT4gdm9pZCk6IHRoaXM7XG4gIG9uKGV2ZW50OiBcImVycm9yXCIsIGxpc3RlbmVyOiAoZXJyb3I6IEVycm9yKSA9PiB2b2lkKTogdGhpcztcbiAgb24oXG4gICAgZXZlbnQ6IFwidW5leHBlY3RlZC1yZXNwb25zZVwiLFxuICAgIGxpc3RlbmVyOiAocmVxdWVzdDogdW5rbm93biwgcmVzcG9uc2U6IHsgc3RhdHVzQ29kZT86IG51bWJlciB9KSA9PiB2b2lkLFxuICApOiB0aGlzO1xuICBvZmYoZXZlbnQ6IHN0cmluZywgbGlzdGVuZXI6ICguLi5hcmdzOiBuZXZlcltdKSA9PiB2b2lkKTogdGhpcztcbiAgc2VuZChkYXRhOiBzdHJpbmcsIGNhbGxiYWNrPzogKGVycm9yPzogRXJyb3IpID0+IHZvaWQpOiB2b2lkO1xuICBjbG9zZShjb2RlPzogbnVtYmVyLCByZWFzb24/OiBzdHJpbmcpOiB2b2lkO1xuICB0ZXJtaW5hdGUoKTogdm9pZDtcbn1cblxuZXhwb3J0IHR5cGUgT3BlbkFJV2ViU29ja2V0RmFjdG9yeSA9ICh1cmw6IHN0cmluZywgb3B0aW9uczogQ2xpZW50T3B0aW9ucykgPT4gT3BlbkFJV2ViU29ja2V0TGlrZTtcblxuZXhwb3J0IGludGVyZmFjZSBPcGVuQUlXZWJTb2NrZXRUcmFuc3BvcnRPcHRpb25zIGV4dGVuZHMgT3BlbkFJSHR0cHNUcmFuc3BvcnRPcHRpb25zIHtcbiAgd2ViU29ja2V0RmFjdG9yeT86IE9wZW5BSVdlYlNvY2tldEZhY3Rvcnk7XG59XG5cbnR5cGUgU29ja2V0UmVjb3JkID1cbiAgfCB7IGtpbmQ6IFwib3BlblwiIH1cbiAgfCB7IGtpbmQ6IFwibWVzc2FnZVwiOyBkYXRhOiBSYXdEYXRhOyBpc0JpbmFyeTogYm9vbGVhbiB9XG4gIHwgeyBraW5kOiBcImNsb3NlXCI7IGNvZGU6IG51bWJlcjsgcmVhc29uOiBzdHJpbmcgfVxuICB8IHsga2luZDogXCJlcnJvclwiOyBlcnJvcjogRXJyb3IgfVxuICB8IHsga2luZDogXCJyZWplY3RlZFwiOyBzdGF0dXM/OiBudW1iZXIgfTtcblxuY29uc3QgTUFYX0JVRkZFUkVEX1NPQ0tFVF9SRUNPUkRTID0gMTYwMDtcblxuZnVuY3Rpb24gd2Vic29ja2V0VXJsKHVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgbGV0IHBhcnNlZDogVVJMO1xuICB0cnkge1xuICAgIHBhcnNlZCA9IG5ldyBVUkwodXJsKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICB0aHJvdyBuZXcgT3BlbkFJUHJvdG9jb2xFcnJvcihgSW52YWxpZCBPcGVuQUkgUmVzcG9uc2VzIFVSTDogJHtTdHJpbmcoZXJyb3IpfWApO1xuICB9XG4gIHBhcnNlZC5wcm90b2NvbCA9IHBhcnNlZC5wcm90b2NvbCA9PT0gXCJodHRwczpcIiA/IFwid3NzOlwiIDogXCJ3czpcIjtcbiAgcmV0dXJuIHBhcnNlZC50b1N0cmluZygpO1xufVxuXG5mdW5jdGlvbiByYXdEYXRhVGV4dChkYXRhOiBSYXdEYXRhKTogc3RyaW5nIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YSkpIHJldHVybiBCdWZmZXIuY29uY2F0KGRhdGEpLnRvU3RyaW5nKCk7XG4gIGlmIChkYXRhIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpIHJldHVybiBCdWZmZXIuZnJvbShuZXcgVWludDhBcnJheShkYXRhKSkudG9TdHJpbmcoKTtcbiAgcmV0dXJuIEJ1ZmZlci5mcm9tKGRhdGEpLnRvU3RyaW5nKCk7XG59XG5cbmZ1bmN0aW9uIHNvY2tldEV2ZW50cyhzb2NrZXQ6IE9wZW5BSVdlYlNvY2tldExpa2UsIHNpZ25hbD86IEFib3J0U2lnbmFsKSB7XG4gIGNvbnN0IHJlY29yZHM6IFNvY2tldFJlY29yZFtdID0gW107XG4gIGNvbnN0IHdhaXRlcnM6IEFycmF5PChyZWNvcmQ6IFNvY2tldFJlY29yZCkgPT4gdm9pZD4gPSBbXTtcbiAgbGV0IGFjdGl2ZSA9IHRydWU7XG4gIGNvbnN0IHB1c2ggPSAocmVjb3JkOiBTb2NrZXRSZWNvcmQpID0+IHtcbiAgICBpZiAoIWFjdGl2ZSkgcmV0dXJuO1xuICAgIGNvbnN0IHdhaXRlciA9IHdhaXRlcnMuc2hpZnQoKTtcbiAgICBpZiAod2FpdGVyKSB3YWl0ZXIocmVjb3JkKTtcbiAgICBlbHNlIGlmIChyZWNvcmRzLmxlbmd0aCA8IE1BWF9CVUZGRVJFRF9TT0NLRVRfUkVDT1JEUykgcmVjb3Jkcy5wdXNoKHJlY29yZCk7XG4gICAgZWxzZSB7XG4gICAgICBhY3RpdmUgPSBmYWxzZTtcbiAgICAgIHJlY29yZHMubGVuZ3RoID0gMDtcbiAgICAgIHNvY2tldC50ZXJtaW5hdGUoKTtcbiAgICAgIGNvbnN0IG92ZXJmbG93ID0ge1xuICAgICAgICBraW5kOiBcImVycm9yXCIgYXMgY29uc3QsXG4gICAgICAgIGVycm9yOiBuZXcgT3BlbkFJUHJvdG9jb2xFcnJvcihcbiAgICAgICAgICBgT3BlbkFJIFdlYlNvY2tldCBleGNlZWRlZCB0aGUgJHtNQVhfQlVGRkVSRURfU09DS0VUX1JFQ09SRFN9LXJlY29yZCByZWNlaXZlIGJ1ZmZlcmAsXG4gICAgICAgICAgXCJ3ZWJzb2NrZXRfYmFja3ByZXNzdXJlXCIsXG4gICAgICAgICksXG4gICAgICB9O1xuICAgICAgY29uc3Qgb3ZlcmZsb3dXYWl0ZXIgPSB3YWl0ZXJzLnNoaWZ0KCk7XG4gICAgICBpZiAob3ZlcmZsb3dXYWl0ZXIpIG92ZXJmbG93V2FpdGVyKG92ZXJmbG93KTtcbiAgICAgIGVsc2UgcmVjb3Jkcy5wdXNoKG92ZXJmbG93KTtcbiAgICB9XG4gIH07XG4gIGNvbnN0IG9uT3BlbiA9ICgpID0+IHB1c2goeyBraW5kOiBcIm9wZW5cIiB9KTtcbiAgY29uc3Qgb25NZXNzYWdlID0gKGRhdGE6IFJhd0RhdGEsIGlzQmluYXJ5OiBib29sZWFuKSA9PiBwdXNoKHsga2luZDogXCJtZXNzYWdlXCIsIGRhdGEsIGlzQmluYXJ5IH0pO1xuICBjb25zdCBvbkNsb3NlID0gKGNvZGU6IG51bWJlciwgcmVhc29uOiBCdWZmZXIpID0+XG4gICAgcHVzaCh7IGtpbmQ6IFwiY2xvc2VcIiwgY29kZSwgcmVhc29uOiByZWFzb24udG9TdHJpbmcoKSB9KTtcbiAgY29uc3Qgb25FcnJvciA9IChlcnJvcjogRXJyb3IpID0+IHB1c2goeyBraW5kOiBcImVycm9yXCIsIGVycm9yIH0pO1xuICBjb25zdCBvblVuZXhwZWN0ZWRSZXNwb25zZSA9IChfcmVxdWVzdDogdW5rbm93biwgcmVzcG9uc2U6IHsgc3RhdHVzQ29kZT86IG51bWJlciB9KSA9PlxuICAgIHB1c2goeyBraW5kOiBcInJlamVjdGVkXCIsIHN0YXR1czogcmVzcG9uc2Uuc3RhdHVzQ29kZSB9KTtcbiAgc29ja2V0Lm9uKFwib3BlblwiLCBvbk9wZW4pO1xuICBzb2NrZXQub24oXCJtZXNzYWdlXCIsIG9uTWVzc2FnZSk7XG4gIHNvY2tldC5vbihcImNsb3NlXCIsIG9uQ2xvc2UpO1xuICBzb2NrZXQub24oXCJlcnJvclwiLCBvbkVycm9yKTtcbiAgc29ja2V0Lm9uKFwidW5leHBlY3RlZC1yZXNwb25zZVwiLCBvblVuZXhwZWN0ZWRSZXNwb25zZSk7XG4gIGNvbnN0IG9uQWJvcnQgPSAoKSA9PiB7XG4gICAgc29ja2V0LnRlcm1pbmF0ZSgpO1xuICAgIHB1c2goeyBraW5kOiBcImVycm9yXCIsIGVycm9yOiBhYm9ydEVycm9yKHNpZ25hbCkgfSk7XG4gIH07XG4gIHNpZ25hbD8uYWRkRXZlbnRMaXN0ZW5lcihcImFib3J0XCIsIG9uQWJvcnQsIHsgb25jZTogdHJ1ZSB9KTtcbiAgcmV0dXJuIHtcbiAgICBuZXh0OiAoKSA9PlxuICAgICAgcmVjb3Jkcy5sZW5ndGhcbiAgICAgICAgPyBQcm9taXNlLnJlc29sdmUocmVjb3Jkcy5zaGlmdCgpISlcbiAgICAgICAgOiBuZXcgUHJvbWlzZTxTb2NrZXRSZWNvcmQ+KChyZXNvbHZlKSA9PiB3YWl0ZXJzLnB1c2gocmVzb2x2ZSkpLFxuICAgIGNsZWFudXA6ICgpID0+IHtcbiAgICAgIGFjdGl2ZSA9IGZhbHNlO1xuICAgICAgc2lnbmFsPy5yZW1vdmVFdmVudExpc3RlbmVyKFwiYWJvcnRcIiwgb25BYm9ydCk7XG4gICAgICBzb2NrZXQub2ZmKFwib3BlblwiLCBvbk9wZW4pO1xuICAgICAgc29ja2V0Lm9mZihcIm1lc3NhZ2VcIiwgb25NZXNzYWdlKTtcbiAgICAgIHNvY2tldC5vZmYoXCJjbG9zZVwiLCBvbkNsb3NlKTtcbiAgICAgIHNvY2tldC5vZmYoXCJlcnJvclwiLCBvbkVycm9yKTtcbiAgICAgIHNvY2tldC5vZmYoXCJ1bmV4cGVjdGVkLXJlc3BvbnNlXCIsIG9uVW5leHBlY3RlZFJlc3BvbnNlKTtcbiAgICAgIHJlY29yZHMubGVuZ3RoID0gMDtcbiAgICAgIGNvbnN0IGNsb3NlZCA9IHtcbiAgICAgICAga2luZDogXCJlcnJvclwiIGFzIGNvbnN0LFxuICAgICAgICBlcnJvcjogbmV3IE9wZW5BSVByb3RvY29sRXJyb3IoXCJPcGVuQUkgV2ViU29ja2V0IGV2ZW50IHN0cmVhbSB3YXMgY2xvc2VkXCIpLFxuICAgICAgfTtcbiAgICAgIGZvciAoY29uc3Qgd2FpdGVyIG9mIHdhaXRlcnMuc3BsaWNlKDApKSB3YWl0ZXIoY2xvc2VkKTtcbiAgICB9LFxuICAgIGRldGFjaEFib3J0OiAoKSA9PiBzaWduYWw/LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJhYm9ydFwiLCBvbkFib3J0KSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gYWJvcnRFcnJvcihzaWduYWw/OiBBYm9ydFNpZ25hbCk6IEVycm9yIHtcbiAgcmV0dXJuIHNpZ25hbD8ucmVhc29uIGluc3RhbmNlb2YgRXJyb3JcbiAgICA/IHNpZ25hbC5yZWFzb25cbiAgICA6IG5ldyBET01FeGNlcHRpb24oXCJBYm9ydGVkXCIsIFwiQWJvcnRFcnJvclwiKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gbmV4dFBvb2xlZFJlY29yZChcbiAgZXZlbnRzOiBSZXR1cm5UeXBlPHR5cGVvZiBzb2NrZXRFdmVudHM+LFxuICBzb2NrZXQ6IE9wZW5BSVdlYlNvY2tldExpa2UsXG4gIHNpZ25hbD86IEFib3J0U2lnbmFsLFxuKTogUHJvbWlzZTxTb2NrZXRSZWNvcmQ+IHtcbiAgaWYgKCFzaWduYWwpIHJldHVybiBldmVudHMubmV4dCgpO1xuICBpZiAoc2lnbmFsLmFib3J0ZWQpIHRocm93IGFib3J0RXJyb3Ioc2lnbmFsKTtcbiAgcmV0dXJuIG5ldyBQcm9taXNlPFNvY2tldFJlY29yZD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IG9uQWJvcnQgPSAoKSA9PiB7XG4gICAgICBzb2NrZXQudGVybWluYXRlKCk7XG4gICAgICByZWplY3QoYWJvcnRFcnJvcihzaWduYWwpKTtcbiAgICB9O1xuICAgIHNpZ25hbC5hZGRFdmVudExpc3RlbmVyKFwiYWJvcnRcIiwgb25BYm9ydCwgeyBvbmNlOiB0cnVlIH0pO1xuICAgIHZvaWQgZXZlbnRzXG4gICAgICAubmV4dCgpXG4gICAgICAudGhlbihyZXNvbHZlLCByZWplY3QpXG4gICAgICAuZmluYWxseSgoKSA9PiB7XG4gICAgICAgIHNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKFwiYWJvcnRcIiwgb25BYm9ydCk7XG4gICAgICB9KTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGNhY2hlQWZmaW5pdHlVdWlkKGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgaGV4ID0gY3J5cHRvLmNyZWF0ZUhhc2goXCJzaGEyNTZcIikudXBkYXRlKGtleSkuZGlnZXN0KFwiaGV4XCIpLnNsaWNlKDAsIDMyKS5zcGxpdChcIlwiKTtcbiAgaGV4WzEyXSA9IFwiNFwiO1xuICBoZXhbMTZdID0gKChOdW1iZXIucGFyc2VJbnQoaGV4WzE2XSEsIDE2KSAmIDB4MykgfCAweDgpLnRvU3RyaW5nKDE2KTtcbiAgcmV0dXJuIGAke2hleC5zbGljZSgwLCA4KS5qb2luKFwiXCIpfS0ke2hleC5zbGljZSg4LCAxMikuam9pbihcIlwiKX0tJHtoZXguc2xpY2UoMTIsIDE2KS5qb2luKFwiXCIpfS0ke2hleC5zbGljZSgxNiwgMjApLmpvaW4oXCJcIil9LSR7aGV4LnNsaWNlKDIwKS5qb2luKFwiXCIpfWA7XG59XG5cbnR5cGUgQWZmaW5pdHlDb25uZWN0aW9uID0ge1xuICBzb2NrZXQ6IE9wZW5BSVdlYlNvY2tldExpa2U7XG4gIGV2ZW50czogUmV0dXJuVHlwZTx0eXBlb2Ygc29ja2V0RXZlbnRzPjtcbiAgY2xvc2VkPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCBjbGFzcyBPcGVuQUlXZWJTb2NrZXRUcmFuc3BvcnQgaW1wbGVtZW50cyBPcGVuQUlSZXNwb25zZXNUcmFuc3BvcnQge1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBNQVhfQUZGSU5JVFlfQ09OTkVDVElPTlMgPSAxNjtcbiAgcHJpdmF0ZSBjcmVkZW50aWFsczogT3BlbkFJRGlyZWN0Q3JlZGVudGlhbHM7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVmcmVzaENyZWRlbnRpYWxzPzogKCkgPT4gUHJvbWlzZTxPcGVuQUlEaXJlY3RDcmVkZW50aWFscz47XG4gIHByaXZhdGUgcmVhZG9ubHkgd2ViU29ja2V0RmFjdG9yeTogT3BlbkFJV2ViU29ja2V0RmFjdG9yeTtcbiAgcHJpdmF0ZSByZWFkb25seSBhZmZpbml0eUNvbm5lY3Rpb25zID0gbmV3IE1hcDxzdHJpbmcsIEFmZmluaXR5Q29ubmVjdGlvbj4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBidXN5QWZmaW5pdGllcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IE9wZW5BSVdlYlNvY2tldFRyYW5zcG9ydE9wdGlvbnMpIHtcbiAgICB0aGlzLmNyZWRlbnRpYWxzID0gb3B0aW9ucy5jcmVkZW50aWFscztcbiAgICB0aGlzLnJlZnJlc2hDcmVkZW50aWFscyA9IG9wdGlvbnMucmVmcmVzaENyZWRlbnRpYWxzO1xuICAgIHRoaXMud2ViU29ja2V0RmFjdG9yeSA9XG4gICAgICBvcHRpb25zLndlYlNvY2tldEZhY3RvcnkgPz8gKCh1cmwsIHdzT3B0aW9ucykgPT4gbmV3IFdzQ2xpZW50KHVybCwgd3NPcHRpb25zKSk7XG4gIH1cblxuICBzdHJlYW0ocmVxdWVzdDogT3BlbkFJVHJhbnNwb3J0UmVxdWVzdCk6IE9wZW5BSUV2ZW50U3RyZWFtIHtcbiAgICByZXR1cm4gdGhpcy5ydW4ocmVxdWVzdCk7XG4gIH1cblxuICBjbG9zZSgpOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IHsgc29ja2V0LCBldmVudHMgfSBvZiB0aGlzLmFmZmluaXR5Q29ubmVjdGlvbnMudmFsdWVzKCkpIHtcbiAgICAgIGV2ZW50cy5jbGVhbnVwKCk7XG4gICAgICBzb2NrZXQuY2xvc2UoMTAwMCwgXCJ0cmFuc3BvcnQgY2xvc2VkXCIpO1xuICAgIH1cbiAgICB0aGlzLmFmZmluaXR5Q29ubmVjdGlvbnMuY2xlYXIoKTtcbiAgICB0aGlzLmJ1c3lBZmZpbml0aWVzLmNsZWFyKCk7XG4gIH1cblxuICAvKipcbiAgICog7LqQ7Iuc7JeQIOyXsOqysOydhCDrk7HroZ3tlZzri6QuIOyekOumrOqwgCDsl4bsnLzrqbQg7Jyg7Zy0IOyXsOqysOunjCDstpXstpztlZjqs6AsIOyghOu2gCDsgqzsmqkg7KSR7J2066m0XG4gICAqIOynhO2WiSDspJHsnbgg7J2R64u17J2EIOuBiuuKlCDrjIDsi6Ag65Ox66Gd7J2EIO2PrOq4sO2VnOuLpChmYWxzZSDihpIg7J20IOyalOyyreydgCDsnbztmozshLEg7IaM7LyT7Jy866GcIOyymOumrCkuXG4gICAqL1xuICBwcml2YXRlIHJlbWVtYmVyQWZmaW5pdHlDb25uZWN0aW9uKHRocmVhZElkOiBzdHJpbmcsIGNvbm5lY3Rpb246IEFmZmluaXR5Q29ubmVjdGlvbik6IGJvb2xlYW4ge1xuICAgIGlmIChcbiAgICAgICF0aGlzLmFmZmluaXR5Q29ubmVjdGlvbnMuaGFzKHRocmVhZElkKSAmJlxuICAgICAgdGhpcy5hZmZpbml0eUNvbm5lY3Rpb25zLnNpemUgPj0gT3BlbkFJV2ViU29ja2V0VHJhbnNwb3J0Lk1BWF9BRkZJTklUWV9DT05ORUNUSU9OU1xuICAgICkge1xuICAgICAgY29uc3QgaWRsZUtleSA9IFsuLi50aGlzLmFmZmluaXR5Q29ubmVjdGlvbnMua2V5cygpXS5maW5kKFxuICAgICAgICAoa2V5KSA9PiAhdGhpcy5idXN5QWZmaW5pdGllcy5oYXMoa2V5KSxcbiAgICAgICk7XG4gICAgICBpZiAoaWRsZUtleSA9PT0gdW5kZWZpbmVkKSByZXR1cm4gZmFsc2U7XG4gICAgICBjb25zdCBpZGxlID0gdGhpcy5hZmZpbml0eUNvbm5lY3Rpb25zLmdldChpZGxlS2V5KSE7XG4gICAgICBpZGxlLmV2ZW50cy5jbGVhbnVwKCk7XG4gICAgICBpZGxlLnNvY2tldC5jbG9zZSgxMDAwLCBcImFmZmluaXR5IGNhY2hlIGV2aWN0ZWRcIik7XG4gICAgICB0aGlzLmFmZmluaXR5Q29ubmVjdGlvbnMuZGVsZXRlKGlkbGVLZXkpO1xuICAgIH1cbiAgICB0aGlzLmFmZmluaXR5Q29ubmVjdGlvbnMuc2V0KHRocmVhZElkLCBjb25uZWN0aW9uKTtcbiAgICAvLyDsnKDtnLQg7IOB7YOc7JeQ7IScIGJhY2tlbmQg6rCAIOuBiuydgCDshozsvJPsnYQg64uk7J2MIOyalOyyreydtCDsp5HslrTrk6Tsp4Ag7JWK64+E66GdIOy6kOyLnOyXkOyEnCDsoJzqsbDtlZzri6QuXG4gICAgY29uc3QgZHJvcCA9ICgpID0+IHtcbiAgICAgIGNvbm5lY3Rpb24uY2xvc2VkID0gdHJ1ZTtcbiAgICAgIGlmICh0aGlzLmJ1c3lBZmZpbml0aWVzLmhhcyh0aHJlYWRJZCkpIHJldHVybjtcbiAgICAgIGlmICh0aGlzLmFmZmluaXR5Q29ubmVjdGlvbnMuZ2V0KHRocmVhZElkKSAhPT0gY29ubmVjdGlvbikgcmV0dXJuO1xuICAgICAgdGhpcy5hZmZpbml0eUNvbm5lY3Rpb25zLmRlbGV0ZSh0aHJlYWRJZCk7XG4gICAgICBjb25uZWN0aW9uLmV2ZW50cy5jbGVhbnVwKCk7XG4gICAgfTtcbiAgICBjb25uZWN0aW9uLnNvY2tldC5vbihcImNsb3NlXCIsIGRyb3ApO1xuICAgIGNvbm5lY3Rpb24uc29ja2V0Lm9uKFwiZXJyb3JcIiwgZHJvcCk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jICpydW4ocmVxdWVzdDogT3BlbkFJVHJhbnNwb3J0UmVxdWVzdCk6IEFzeW5jR2VuZXJhdG9yPE9wZW5BSU5vcm1hbGl6ZWRFdmVudD4ge1xuICAgIGxldCByZWZyZXNoZWQgPSBmYWxzZTtcbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgaWYgKHJlcXVlc3Quc2lnbmFsPy5hYm9ydGVkKSB0aHJvdyBhYm9ydEVycm9yKHJlcXVlc3Quc2lnbmFsKTtcbiAgICAgIGNvbnN0IGhhc0FmZmluaXR5ID0gcmVxdWVzdC5ib2R5LnByb21wdF9jYWNoZV9rZXkgIT09IHVuZGVmaW5lZDtcbiAgICAgIGNvbnN0IHJldGFpbkNvbm5lY3Rpb24gPSBoYXNBZmZpbml0eSAmJiAhdGhpcy5idXN5QWZmaW5pdGllcy5oYXMocmVxdWVzdC50aHJlYWRJZCk7XG4gICAgICBpZiAocmV0YWluQ29ubmVjdGlvbikgdGhpcy5idXN5QWZmaW5pdGllcy5hZGQocmVxdWVzdC50aHJlYWRJZCk7XG4gICAgICBjb25zdCBlbnRyeSA9IHJldGFpbkNvbm5lY3Rpb24gPyB0aGlzLmFmZmluaXR5Q29ubmVjdGlvbnMuZ2V0KHJlcXVlc3QudGhyZWFkSWQpIDogdW5kZWZpbmVkO1xuICAgICAgaWYgKGVudHJ5Py5jbG9zZWQpIHtcbiAgICAgICAgdGhpcy5hZmZpbml0eUNvbm5lY3Rpb25zLmRlbGV0ZShyZXF1ZXN0LnRocmVhZElkKTtcbiAgICAgICAgZW50cnkuZXZlbnRzLmNsZWFudXAoKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGNhY2hlZCA9IGVudHJ5Py5jbG9zZWQgPyB1bmRlZmluZWQgOiBlbnRyeTtcbiAgICAgIC8vIOy6kOyLnCDrk7HroZ3sl5Ag7Iuk7Yyo7ZWY66m0IOydtCDsmpTssq3snYAg7J6s7IKs7JqpIOuMgOyDgeydtCDslYTri4jri6QuXG4gICAgICBsZXQgcmV0YWluZWQgPSByZXRhaW5Db25uZWN0aW9uO1xuICAgICAgY29uc3Qgc29ja2V0ID1cbiAgICAgICAgY2FjaGVkPy5zb2NrZXQgPz9cbiAgICAgICAgdGhpcy53ZWJTb2NrZXRGYWN0b3J5KHdlYnNvY2tldFVybChDSEFUR1BUX0NPREVYX1JFU1BPTlNFU19VUkwpLCB7XG4gICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgLi4uYnVpbGRDb2RleElkZW50aXR5SGVhZGVycyh0aGlzLmNyZWRlbnRpYWxzLmFjY2Vzc1Rva2VuLCB0aGlzLmNyZWRlbnRpYWxzLmFjY291bnRJZCwge1xuICAgICAgICAgICAgICBzZXNzaW9uSWQ6IHJlcXVlc3Quc2Vzc2lvbklkLFxuICAgICAgICAgICAgICB0aHJlYWRJZDogcmVxdWVzdC50aHJlYWRJZCxcbiAgICAgICAgICAgICAgY2xpZW50UmVxdWVzdElkOiByZXF1ZXN0LmNsaWVudFJlcXVlc3RJZCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgXCJPcGVuQUktQmV0YVwiOiBcInJlc3BvbnNlc193ZWJzb2NrZXRzPTIwMjYtMDItMDZcIixcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgIGNvbnN0IGV2ZW50cyA9IGNhY2hlZD8uZXZlbnRzID8/IHNvY2tldEV2ZW50cyhzb2NrZXQsIHJlcXVlc3Quc2lnbmFsKTtcbiAgICAgIGxldCBjb21wbGV0ZWQgPSBmYWxzZTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGlmICghY2FjaGVkKSB7XG4gICAgICAgICAgY29uc3QgaGFuZHNoYWtlID0gYXdhaXQgZXZlbnRzLm5leHQoKTtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBoYW5kc2hha2Uua2luZCA9PT0gXCJyZWplY3RlZFwiICYmXG4gICAgICAgICAgICBoYW5kc2hha2Uuc3RhdHVzID09PSA0MDEgJiZcbiAgICAgICAgICAgICFyZWZyZXNoZWQgJiZcbiAgICAgICAgICAgIHRoaXMucmVmcmVzaENyZWRlbnRpYWxzXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBzb2NrZXQudGVybWluYXRlKCk7XG4gICAgICAgICAgICB0aGlzLmNyZWRlbnRpYWxzID0gYXdhaXQgdGhpcy5yZWZyZXNoQ3JlZGVudGlhbHMoKTtcbiAgICAgICAgICAgIHJlZnJlc2hlZCA9IHRydWU7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGhhbmRzaGFrZS5raW5kID09PSBcInJlamVjdGVkXCIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBPcGVuQUlQcm90b2NvbEVycm9yKFxuICAgICAgICAgICAgICBgT3BlbkFJIFdlYlNvY2tldCBoYW5kc2hha2UgcmVqZWN0ZWQke2hhbmRzaGFrZS5zdGF0dXMgPyBgIHdpdGggSFRUUCAke2hhbmRzaGFrZS5zdGF0dXN9YCA6IFwiXCJ9YCxcbiAgICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgICBoYW5kc2hha2Uuc3RhdHVzLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGhhbmRzaGFrZS5raW5kID09PSBcImVycm9yXCIpIHRocm93IGhhbmRzaGFrZS5lcnJvcjtcbiAgICAgICAgICBpZiAoaGFuZHNoYWtlLmtpbmQgIT09IFwib3BlblwiKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgT3BlbkFJUHJvdG9jb2xFcnJvcihcIk9wZW5BSSBXZWJTb2NrZXQgY2xvc2VkIGJlZm9yZSB0aGUgaGFuZHNoYWtlIGNvbXBsZXRlZFwiKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHJldGFpbkNvbm5lY3Rpb24pIHtcbiAgICAgICAgICAgIHJldGFpbmVkID0gdGhpcy5yZW1lbWJlckFmZmluaXR5Q29ubmVjdGlvbihyZXF1ZXN0LnRocmVhZElkLCB7IHNvY2tldCwgZXZlbnRzIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGF3YWl0IG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICBzb2NrZXQuc2VuZChKU09OLnN0cmluZ2lmeSh7IHR5cGU6IFwicmVzcG9uc2UuY3JlYXRlXCIsIC4uLnJlcXVlc3QuYm9keSB9KSwgKGVycm9yKSA9PlxuICAgICAgICAgICAgZXJyb3IgPyByZWplY3QoZXJyb3IpIDogcmVzb2x2ZSgpLFxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAgICAgY29uc3QgcmVjb3JkID0gY2FjaGVkXG4gICAgICAgICAgICA/IGF3YWl0IG5leHRQb29sZWRSZWNvcmQoZXZlbnRzLCBzb2NrZXQsIHJlcXVlc3Quc2lnbmFsKVxuICAgICAgICAgICAgOiBhd2FpdCBldmVudHMubmV4dCgpO1xuICAgICAgICAgIGlmIChyZWNvcmQua2luZCA9PT0gXCJtZXNzYWdlXCIpIHtcbiAgICAgICAgICAgIGlmIChyZWNvcmQuaXNCaW5hcnkpIHtcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IE9wZW5BSVByb3RvY29sRXJyb3IoXCJPcGVuQUkgV2ViU29ja2V0IHNlbnQgYW4gdW5leHBlY3RlZCBiaW5hcnkgbWVzc2FnZVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCByYXc6IHVua25vd247XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICByYXcgPSBKU09OLnBhcnNlKHJhd0RhdGFUZXh0KHJlY29yZC5kYXRhKSk7XG4gICAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IE9wZW5BSVByb3RvY29sRXJyb3IoXCJPcGVuQUkgV2ViU29ja2V0IHNlbnQgaW52YWxpZCBKU09OXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgZXZlbnQgPSBub3JtYWxpemVPcGVuQUlFdmVudChyYXcpO1xuICAgICAgICAgICAgaWYgKCFldmVudCkgY29udGludWU7XG4gICAgICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gXCJjb21wbGV0ZWRcIikge1xuICAgICAgICAgICAgICBjb21wbGV0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICBpZiAocmV0YWluZWQpIGV2ZW50cy5kZXRhY2hBYm9ydCgpO1xuICAgICAgICAgICAgICBlbHNlIHNvY2tldC5jbG9zZSgxMDAwLCBcInJlc3BvbnNlIGNvbXBsZXRlZFwiKTtcbiAgICAgICAgICAgICAgeWllbGQgZXZlbnQ7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHlpZWxkIGV2ZW50O1xuICAgICAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09IFwiZXJyb3JcIikgdGhyb3cgZXZlbnQuZXJyb3I7XG4gICAgICAgICAgfSBlbHNlIGlmIChyZWNvcmQua2luZCA9PT0gXCJlcnJvclwiKSB7XG4gICAgICAgICAgICB0aHJvdyByZWNvcmQuZXJyb3I7XG4gICAgICAgICAgfSBlbHNlIGlmIChyZWNvcmQua2luZCA9PT0gXCJjbG9zZVwiKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgT3BlbkFJUHJvdG9jb2xFcnJvcihcbiAgICAgICAgICAgICAgYE9wZW5BSSBXZWJTb2NrZXQgY2xvc2VkIGJlZm9yZSBhIHRlcm1pbmFsIHJlc3BvbnNlIGV2ZW50ICgke3JlY29yZC5jb2RlfSR7cmVjb3JkLnJlYXNvbiA/IGA6ICR7cmVjb3JkLnJlYXNvbn1gIDogXCJcIn0pYCxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBPcGVuQUlQcm90b2NvbEVycm9yKFwiT3BlbkFJIFdlYlNvY2tldCBlbWl0dGVkIGFuIHVuZXhwZWN0ZWQgaGFuZHNoYWtlIGV2ZW50XCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgaWYgKCFjb21wbGV0ZWQgfHwgIXJldGFpbmVkKSB7XG4gICAgICAgICAgaWYgKHJldGFpbmVkKSB0aGlzLmFmZmluaXR5Q29ubmVjdGlvbnMuZGVsZXRlKHJlcXVlc3QudGhyZWFkSWQpO1xuICAgICAgICAgIGV2ZW50cy5jbGVhbnVwKCk7XG4gICAgICAgICAgaWYgKCFjb21wbGV0ZWQpIHNvY2tldC50ZXJtaW5hdGUoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocmV0YWluQ29ubmVjdGlvbikgdGhpcy5idXN5QWZmaW5pdGllcy5kZWxldGUocmVxdWVzdC50aHJlYWRJZCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJlc3BvbnNlRXJyb3IocmVzcG9uc2U6IFJlc3BvbnNlKTogUHJvbWlzZTxPcGVuQUlQcm90b2NvbEVycm9yPiB7XG4gIGNvbnN0IHRleHQgPSBhd2FpdCByZXNwb25zZS50ZXh0KCkuY2F0Y2goKCkgPT4gXCJcIik7XG4gIGxldCBtZXNzYWdlID0gdGV4dCB8fCByZXNwb25zZS5zdGF0dXNUZXh0IHx8IGBIVFRQICR7cmVzcG9uc2Uuc3RhdHVzfWA7XG4gIGxldCBjb2RlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHRyeSB7XG4gICAgY29uc3QgcGFyc2VkID0gSlNPTi5wYXJzZSh0ZXh0KSBhcyB7XG4gICAgICBlcnJvcj86IHsgbWVzc2FnZT86IHN0cmluZzsgY29kZT86IHN0cmluZyB9IHwgc3RyaW5nO1xuICAgICAgbWVzc2FnZT86IHN0cmluZztcbiAgICAgIGNvZGU/OiBzdHJpbmc7XG4gICAgfTtcbiAgICBjb25zdCBlcnJvciA9IHBhcnNlZC5lcnJvcjtcbiAgICBtZXNzYWdlID1cbiAgICAgICh0eXBlb2YgZXJyb3IgPT09IFwib2JqZWN0XCIgPyBlcnJvci5tZXNzYWdlIDogdW5kZWZpbmVkKSA/P1xuICAgICAgcGFyc2VkLm1lc3NhZ2UgPz9cbiAgICAgICh0eXBlb2YgZXJyb3IgPT09IFwic3RyaW5nXCIgPyBlcnJvciA6IG1lc3NhZ2UpO1xuICAgIGNvZGUgPSAodHlwZW9mIGVycm9yID09PSBcIm9iamVjdFwiID8gZXJyb3IuY29kZSA6IHVuZGVmaW5lZCkgPz8gcGFyc2VkLmNvZGU7XG4gIH0gY2F0Y2gge1xuICAgIGNvZGUgPSB1bmRlZmluZWQ7XG4gIH1cbiAgcmV0dXJuIG5ldyBPcGVuQUlQcm90b2NvbEVycm9yKG1lc3NhZ2UsIGNvZGUsIHJlc3BvbnNlLnN0YXR1cyk7XG59XG5cbmV4cG9ydCBjbGFzcyBPcGVuQUlIdHRwc1RyYW5zcG9ydCBpbXBsZW1lbnRzIE9wZW5BSVJlc3BvbnNlc1RyYW5zcG9ydCB7XG4gIHByaXZhdGUgY3JlZGVudGlhbHM6IE9wZW5BSURpcmVjdENyZWRlbnRpYWxzO1xuICBwcml2YXRlIHJlYWRvbmx5IGZldGNoSW1wbDogdHlwZW9mIGZldGNoO1xuICBwcml2YXRlIHJlYWRvbmx5IHJlZnJlc2hDcmVkZW50aWFscz86ICgpID0+IFByb21pc2U8T3BlbkFJRGlyZWN0Q3JlZGVudGlhbHM+O1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IE9wZW5BSUh0dHBzVHJhbnNwb3J0T3B0aW9ucykge1xuICAgIHRoaXMuY3JlZGVudGlhbHMgPSBvcHRpb25zLmNyZWRlbnRpYWxzO1xuICAgIHRoaXMuZmV0Y2hJbXBsID0gb3B0aW9ucy5mZXRjaCA/PyBmZXRjaDtcbiAgICB0aGlzLnJlZnJlc2hDcmVkZW50aWFscyA9IG9wdGlvbnMucmVmcmVzaENyZWRlbnRpYWxzO1xuICB9XG5cbiAgc3RyZWFtKHJlcXVlc3Q6IE9wZW5BSVRyYW5zcG9ydFJlcXVlc3QpOiBPcGVuQUlFdmVudFN0cmVhbSB7XG4gICAgcmV0dXJuIHRoaXMucnVuKHJlcXVlc3QpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyAqcnVuKHJlcXVlc3Q6IE9wZW5BSVRyYW5zcG9ydFJlcXVlc3QpOiBBc3luY0dlbmVyYXRvcjxPcGVuQUlOb3JtYWxpemVkRXZlbnQ+IHtcbiAgICBsZXQgcmVmcmVzaGVkID0gZmFsc2U7XG5cbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmZldGNoSW1wbChDSEFUR1BUX0NPREVYX1JFU1BPTlNFU19VUkwsIHtcbiAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgaGVhZGVyczogYnVpbGRDb2RleElkZW50aXR5SGVhZGVycyhcbiAgICAgICAgICB0aGlzLmNyZWRlbnRpYWxzLmFjY2Vzc1Rva2VuLFxuICAgICAgICAgIHRoaXMuY3JlZGVudGlhbHMuYWNjb3VudElkLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHNlc3Npb25JZDogcmVxdWVzdC5zZXNzaW9uSWQsXG4gICAgICAgICAgICB0aHJlYWRJZDogcmVxdWVzdC50aHJlYWRJZCxcbiAgICAgICAgICAgIGNsaWVudFJlcXVlc3RJZDogcmVxdWVzdC5jbGllbnRSZXF1ZXN0SWQsXG4gICAgICAgICAgfSxcbiAgICAgICAgKSxcbiAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkocmVxdWVzdC5ib2R5KSxcbiAgICAgICAgc2lnbmFsOiByZXF1ZXN0LnNpZ25hbCxcbiAgICAgIH0pO1xuXG4gICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSA0MDEgJiYgIXJlZnJlc2hlZCAmJiB0aGlzLnJlZnJlc2hDcmVkZW50aWFscykge1xuICAgICAgICBhd2FpdCByZXNwb25zZS5ib2R5Py5jYW5jZWwoKTtcbiAgICAgICAgdGhpcy5jcmVkZW50aWFscyA9IGF3YWl0IHRoaXMucmVmcmVzaENyZWRlbnRpYWxzKCk7XG4gICAgICAgIHJlZnJlc2hlZCA9IHRydWU7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKCFyZXNwb25zZS5vaykgdGhyb3cgYXdhaXQgcmVzcG9uc2VFcnJvcihyZXNwb25zZSk7XG4gICAgICBpZiAoIXJlc3BvbnNlLmJvZHkpIHRocm93IG5ldyBPcGVuQUlQcm90b2NvbEVycm9yKFwiT3BlbkFJIHJlc3BvbnNlIGhhZCBubyBib2R5XCIpO1xuXG4gICAgICBmb3IgYXdhaXQgKGNvbnN0IGV2ZW50IG9mIG5vcm1hbGl6ZU9wZW5BSVNTRShyZXNwb25zZS5ib2R5KSkge1xuICAgICAgICB5aWVsZCBldmVudDtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBPcGVuQUlEaXJlY3RDbGllbnRPcHRpb25zIGV4dGVuZHMgT3BlbkFJSHR0cHNUcmFuc3BvcnRPcHRpb25zIHtcbiAgdHJhbnNwb3J0PzogT3BlbkFJUmVzcG9uc2VzVHJhbnNwb3J0O1xuICB0cmFuc3BvcnRLaW5kPzogXCJodHRwc1wiIHwgXCJ3ZWJzb2NrZXRcIjtcbiAgd2ViU29ja2V0RmFjdG9yeT86IE9wZW5BSVdlYlNvY2tldEZhY3Rvcnk7XG59XG5cbmV4cG9ydCBjbGFzcyBPcGVuQUlEaXJlY3RDbGllbnQge1xuICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zcG9ydDogT3BlbkFJUmVzcG9uc2VzVHJhbnNwb3J0O1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IE9wZW5BSURpcmVjdENsaWVudE9wdGlvbnMpIHtcbiAgICB0aGlzLnRyYW5zcG9ydCA9XG4gICAgICBvcHRpb25zLnRyYW5zcG9ydCA/P1xuICAgICAgKG9wdGlvbnMudHJhbnNwb3J0S2luZCA9PT0gXCJ3ZWJzb2NrZXRcIlxuICAgICAgICA/IG5ldyBPcGVuQUlXZWJTb2NrZXRUcmFuc3BvcnQob3B0aW9ucylcbiAgICAgICAgOiBuZXcgT3BlbkFJSHR0cHNUcmFuc3BvcnQob3B0aW9ucykpO1xuICB9XG5cbiAgcmVzcG9uc2VzKG9wdGlvbnM6IE9wZW5BSVJlc3BvbnNlc09wdGlvbnMsIHNpZ25hbD86IEFib3J0U2lnbmFsKTogT3BlbkFJRXZlbnRTdHJlYW0ge1xuICAgIGNvbnN0IGNsaWVudFJlcXVlc3RJZCA9IGNyeXB0by5yYW5kb21VVUlEKCk7XG4gICAgY29uc3QgYWZmaW5pdHlJZCA9IG9wdGlvbnMucHJvbXB0Q2FjaGVLZXlcbiAgICAgID8gY2FjaGVBZmZpbml0eVV1aWQob3B0aW9ucy5wcm9tcHRDYWNoZUtleSlcbiAgICAgIDogY2xpZW50UmVxdWVzdElkO1xuICAgIHJldHVybiB0aGlzLnRyYW5zcG9ydC5zdHJlYW0oe1xuICAgICAgYm9keTogYnVpbGRPcGVuQUlSZXNwb25zZXNSZXF1ZXN0KFxuICAgICAgICBvcHRpb25zLnByb21wdENhY2hlS2V5ID8geyAuLi5vcHRpb25zLCBwcm9tcHRDYWNoZUtleTogYWZmaW5pdHlJZCB9IDogb3B0aW9ucyxcbiAgICAgICksXG4gICAgICBzaWduYWwsXG4gICAgICBzZXNzaW9uSWQ6IGFmZmluaXR5SWQsXG4gICAgICAvLyBwcm9tcHRDYWNoZUtleSBpcyBhbHJlYWR5IGEgb25lLXdheSBTREsgYWZmaW5pdHkgdmFsdWUsIG5ldmVyIGEgcmF3IHNlc3Npb25LZXkuXG4gICAgICB0aHJlYWRJZDogYWZmaW5pdHlJZCxcbiAgICAgIGNsaWVudFJlcXVlc3RJZCxcbiAgICB9KTtcbiAgfVxuXG4gIGNsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMudHJhbnNwb3J0LmNsb3NlPy4oKTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7OztBQXFFQSxNQUFNLDhCQUE4QjtBQUVwQyxTQUFTLGFBQWEsS0FBcUI7Q0FDekMsSUFBSTtDQUNKLElBQUk7RUFDRixTQUFTLElBQUksSUFBSSxHQUFHO0NBQ3RCLFNBQVMsT0FBTztFQUNkLE1BQU0sSUFBSSxvQkFBb0IsaUNBQWlDLE9BQU8sS0FBSyxHQUFHO0NBQ2hGO0NBQ0EsT0FBTyxXQUFXLE9BQU8sYUFBYSxXQUFXLFNBQVM7Q0FDMUQsT0FBTyxPQUFPLFNBQVM7QUFDekI7QUFFQSxTQUFTLFlBQVksTUFBdUI7Q0FDMUMsSUFBSSxNQUFNLFFBQVEsSUFBSSxHQUFHLE9BQU8sT0FBTyxPQUFPLElBQUksQ0FBQyxDQUFDLFNBQVM7Q0FDN0QsSUFBSSxnQkFBZ0IsYUFBYSxPQUFPLE9BQU8sS0FBSyxJQUFJLFdBQVcsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTO0NBQ25GLE9BQU8sT0FBTyxLQUFLLElBQUksQ0FBQyxDQUFDLFNBQVM7QUFDcEM7QUFFQSxTQUFTLGFBQWEsUUFBNkIsUUFBc0I7Q0FDdkUsTUFBTSxVQUEwQixDQUFDO0NBQ2pDLE1BQU0sVUFBaUQsQ0FBQztDQUN4RCxJQUFJLFNBQVM7Q0FDYixNQUFNLFFBQVEsV0FBeUI7RUFDckMsSUFBSSxDQUFDLFFBQVE7RUFDYixNQUFNLFNBQVMsUUFBUSxNQUFNO0VBQzdCLElBQUksUUFBUSxPQUFPLE1BQU07T0FDcEIsSUFBSSxRQUFRLFNBQVMsNkJBQTZCLFFBQVEsS0FBSyxNQUFNO09BQ3JFO0dBQ0gsU0FBUztHQUNULFFBQVEsU0FBUztHQUNqQixPQUFPLFVBQVU7R0FDakIsTUFBTSxXQUFXO0lBQ2YsTUFBTTtJQUNOLE9BQU8sSUFBSSxvQkFDVCxpQ0FBaUMsNEJBQTRCLHlCQUM3RCx3QkFDRjtHQUNGO0dB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
|