@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,84 @@
|
|
|
1
|
+
import { OPENAI_AUTHORIZE_URL, OPENAI_CLIENT_ID, OPENAI_ORIGINATOR, OPENAI_SCOPES, OPENAI_TOKEN_URL } from "./openai-constants.js";
|
|
2
|
+
import crypto from "node:crypto";
|
|
3
|
+
//#region src/utils/providers/openai/openai-oauth.ts
|
|
4
|
+
const OPENAI_AUTH_CLAIM = "https://api.openai.com/auth";
|
|
5
|
+
function generateOpenAIPKCE() {
|
|
6
|
+
const codeVerifier = crypto.randomBytes(64).toString("base64url");
|
|
7
|
+
return {
|
|
8
|
+
codeVerifier,
|
|
9
|
+
codeChallenge: crypto.createHash("sha256").update(codeVerifier).digest("base64url"),
|
|
10
|
+
state: crypto.randomBytes(32).toString("base64url")
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
function buildOpenAIAuthUrl(codeChallenge, state, redirectUri) {
|
|
14
|
+
const url = new URL(OPENAI_AUTHORIZE_URL);
|
|
15
|
+
url.search = new URLSearchParams({
|
|
16
|
+
response_type: "code",
|
|
17
|
+
client_id: OPENAI_CLIENT_ID,
|
|
18
|
+
redirect_uri: redirectUri,
|
|
19
|
+
scope: OPENAI_SCOPES,
|
|
20
|
+
code_challenge: codeChallenge,
|
|
21
|
+
code_challenge_method: "S256",
|
|
22
|
+
id_token_add_organizations: "true",
|
|
23
|
+
codex_cli_simplified_flow: "true",
|
|
24
|
+
state,
|
|
25
|
+
originator: OPENAI_ORIGINATOR
|
|
26
|
+
}).toString();
|
|
27
|
+
return url.toString();
|
|
28
|
+
}
|
|
29
|
+
function parseOpenAITokenClaims(jwt) {
|
|
30
|
+
const parts = jwt.split(".");
|
|
31
|
+
const payloadPart = parts[1];
|
|
32
|
+
if (parts.length !== 3 || parts.some((part) => !part) || !payloadPart) throw new Error("invalid OpenAI JWT format");
|
|
33
|
+
let payload;
|
|
34
|
+
try {
|
|
35
|
+
payload = JSON.parse(Buffer.from(payloadPart, "base64url").toString("utf8"));
|
|
36
|
+
} catch {
|
|
37
|
+
throw new Error("invalid OpenAI JWT payload");
|
|
38
|
+
}
|
|
39
|
+
if (!payload || typeof payload !== "object") throw new Error("invalid OpenAI JWT payload");
|
|
40
|
+
const claims = payload;
|
|
41
|
+
const auth = claims[OPENAI_AUTH_CLAIM];
|
|
42
|
+
const nested = auth && typeof auth === "object" ? auth : {};
|
|
43
|
+
return {
|
|
44
|
+
expiresAt: typeof claims.exp === "number" ? claims.exp * 1e3 : void 0,
|
|
45
|
+
accountId: typeof nested.chatgpt_account_id === "string" ? nested.chatgpt_account_id : void 0,
|
|
46
|
+
planType: typeof nested.chatgpt_plan_type === "string" ? nested.chatgpt_plan_type : void 0
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
async function exchangeOpenAICode(code, codeVerifier, redirectUri) {
|
|
50
|
+
const response = await fetch(OPENAI_TOKEN_URL, {
|
|
51
|
+
method: "POST",
|
|
52
|
+
headers: { "Content-Type": "application/x-www-form-urlencoded" },
|
|
53
|
+
body: new URLSearchParams({
|
|
54
|
+
grant_type: "authorization_code",
|
|
55
|
+
code,
|
|
56
|
+
redirect_uri: redirectUri,
|
|
57
|
+
client_id: OPENAI_CLIENT_ID,
|
|
58
|
+
code_verifier: codeVerifier
|
|
59
|
+
})
|
|
60
|
+
});
|
|
61
|
+
if (!response.ok) {
|
|
62
|
+
await response.body?.cancel().catch(() => void 0);
|
|
63
|
+
throw new Error(`OPENAI_TOKEN_EXCHANGE_HTTP_${response.status}`);
|
|
64
|
+
}
|
|
65
|
+
const tokens = await response.json();
|
|
66
|
+
if (!tokens.id_token || !tokens.access_token || !tokens.refresh_token) throw new Error("OpenAI token exchange returned incomplete credentials");
|
|
67
|
+
const idClaims = parseOpenAITokenClaims(tokens.id_token);
|
|
68
|
+
const accessClaims = parseOpenAITokenClaims(tokens.access_token);
|
|
69
|
+
const accountId = idClaims.accountId ?? accessClaims.accountId;
|
|
70
|
+
if (!accountId) throw new Error("OpenAI token did not include a ChatGPT account id");
|
|
71
|
+
return {
|
|
72
|
+
accessToken: tokens.access_token,
|
|
73
|
+
refreshToken: tokens.refresh_token,
|
|
74
|
+
idToken: tokens.id_token,
|
|
75
|
+
accessTokenExpiresAt: accessClaims.expiresAt ?? (tokens.expires_in ? Date.now() + tokens.expires_in * 1e3 : Date.now()),
|
|
76
|
+
...idClaims.expiresAt ? { idTokenExpiresAt: idClaims.expiresAt } : {},
|
|
77
|
+
accountId,
|
|
78
|
+
...idClaims.planType ?? accessClaims.planType ? { planType: idClaims.planType ?? accessClaims.planType } : {}
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
//#endregion
|
|
82
|
+
export { buildOpenAIAuthUrl, exchangeOpenAICode, generateOpenAIPKCE, parseOpenAITokenClaims };
|
|
83
|
+
|
|
84
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbmFpLW9hdXRoLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy91dGlscy9wcm92aWRlcnMvb3BlbmFpL29wZW5haS1vYXV0aC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3J5cHRvIGZyb20gXCJub2RlOmNyeXB0b1wiO1xuXG5pbXBvcnQge1xuICBPUEVOQUlfQVVUSE9SSVpFX1VSTCxcbiAgT1BFTkFJX0NMSUVOVF9JRCxcbiAgT1BFTkFJX09SSUdJTkFUT1IsXG4gIE9QRU5BSV9TQ09QRVMsXG4gIE9QRU5BSV9UT0tFTl9VUkwsXG59IGZyb20gXCIuL29wZW5haS1jb25zdGFudHNcIjtcblxuY29uc3QgT1BFTkFJX0FVVEhfQ0xBSU0gPSBcImh0dHBzOi8vYXBpLm9wZW5haS5jb20vYXV0aFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIE9wZW5BSVBLQ0Uge1xuICBjb2RlVmVyaWZpZXI6IHN0cmluZztcbiAgY29kZUNoYWxsZW5nZTogc3RyaW5nO1xuICBzdGF0ZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9wZW5BSVRva2VuQ2xhaW1zIHtcbiAgZXhwaXJlc0F0PzogbnVtYmVyO1xuICBhY2NvdW50SWQ/OiBzdHJpbmc7XG4gIHBsYW5UeXBlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9wZW5BSUV4Y2hhbmdlZENyZWRlbnRpYWxzIHtcbiAgYWNjZXNzVG9rZW46IHN0cmluZztcbiAgcmVmcmVzaFRva2VuOiBzdHJpbmc7XG4gIGlkVG9rZW46IHN0cmluZztcbiAgYWNjZXNzVG9rZW5FeHBpcmVzQXQ6IG51bWJlcjtcbiAgaWRUb2tlbkV4cGlyZXNBdD86IG51bWJlcjtcbiAgYWNjb3VudElkOiBzdHJpbmc7XG4gIHBsYW5UeXBlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVPcGVuQUlQS0NFKCk6IE9wZW5BSVBLQ0Uge1xuICBjb25zdCBjb2RlVmVyaWZpZXIgPSBjcnlwdG8ucmFuZG9tQnl0ZXMoNjQpLnRvU3RyaW5nKFwiYmFzZTY0dXJsXCIpO1xuICByZXR1cm4ge1xuICAgIGNvZGVWZXJpZmllcixcbiAgICBjb2RlQ2hhbGxlbmdlOiBjcnlwdG8uY3JlYXRlSGFzaChcInNoYTI1NlwiKS51cGRhdGUoY29kZVZlcmlmaWVyKS5kaWdlc3QoXCJiYXNlNjR1cmxcIiksXG4gICAgc3RhdGU6IGNyeXB0by5yYW5kb21CeXRlcygzMikudG9TdHJpbmcoXCJiYXNlNjR1cmxcIiksXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZE9wZW5BSUF1dGhVcmwoXG4gIGNvZGVDaGFsbGVuZ2U6IHN0cmluZyxcbiAgc3RhdGU6IHN0cmluZyxcbiAgcmVkaXJlY3RVcmk6IHN0cmluZyxcbik6IHN0cmluZyB7XG4gIGNvbnN0IHVybCA9IG5ldyBVUkwoT1BFTkFJX0FVVEhPUklaRV9VUkwpO1xuICB1cmwuc2VhcmNoID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh7XG4gICAgcmVzcG9uc2VfdHlwZTogXCJjb2RlXCIsXG4gICAgY2xpZW50X2lkOiBPUEVOQUlfQ0xJRU5UX0lELFxuICAgIHJlZGlyZWN0X3VyaTogcmVkaXJlY3RVcmksXG4gICAgc2NvcGU6IE9QRU5BSV9TQ09QRVMsXG4gICAgY29kZV9jaGFsbGVuZ2U6IGNvZGVDaGFsbGVuZ2UsXG4gICAgY29kZV9jaGFsbGVuZ2VfbWV0aG9kOiBcIlMyNTZcIixcbiAgICBpZF90b2tlbl9hZGRfb3JnYW5pemF0aW9uczogXCJ0cnVlXCIsXG4gICAgY29kZXhfY2xpX3NpbXBsaWZpZWRfZmxvdzogXCJ0cnVlXCIsXG4gICAgc3RhdGUsXG4gICAgb3JpZ2luYXRvcjogT1BFTkFJX09SSUdJTkFUT1IsXG4gIH0pLnRvU3RyaW5nKCk7XG4gIHJldHVybiB1cmwudG9TdHJpbmcoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlT3BlbkFJVG9rZW5DbGFpbXMoand0OiBzdHJpbmcpOiBPcGVuQUlUb2tlbkNsYWltcyB7XG4gIGNvbnN0IHBhcnRzID0gand0LnNwbGl0KFwiLlwiKTtcbiAgY29uc3QgcGF5bG9hZFBhcnQgPSBwYXJ0c1sxXTtcbiAgaWYgKHBhcnRzLmxlbmd0aCAhPT0gMyB8fCBwYXJ0cy5zb21lKChwYXJ0KSA9PiAhcGFydCkgfHwgIXBheWxvYWRQYXJ0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiaW52YWxpZCBPcGVuQUkgSldUIGZvcm1hdFwiKTtcbiAgfVxuXG4gIGxldCBwYXlsb2FkOiB1bmtub3duO1xuICB0cnkge1xuICAgIHBheWxvYWQgPSBKU09OLnBhcnNlKEJ1ZmZlci5mcm9tKHBheWxvYWRQYXJ0LCBcImJhc2U2NHVybFwiKS50b1N0cmluZyhcInV0ZjhcIikpO1xuICB9IGNhdGNoIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJpbnZhbGlkIE9wZW5BSSBKV1QgcGF5bG9hZFwiKTtcbiAgfVxuICBpZiAoIXBheWxvYWQgfHwgdHlwZW9mIHBheWxvYWQgIT09IFwib2JqZWN0XCIpIHRocm93IG5ldyBFcnJvcihcImludmFsaWQgT3BlbkFJIEpXVCBwYXlsb2FkXCIpO1xuXG4gIGNvbnN0IGNsYWltcyA9IHBheWxvYWQgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIGNvbnN0IGF1dGggPSBjbGFpbXNbT1BFTkFJX0FVVEhfQ0xBSU1dO1xuICBjb25zdCBuZXN0ZWQgPSBhdXRoICYmIHR5cGVvZiBhdXRoID09PSBcIm9iamVjdFwiID8gKGF1dGggYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pIDoge307XG4gIHJldHVybiB7XG4gICAgZXhwaXJlc0F0OiB0eXBlb2YgY2xhaW1zLmV4cCA9PT0gXCJudW1iZXJcIiA/IGNsYWltcy5leHAgKiAxMDAwIDogdW5kZWZpbmVkLFxuICAgIGFjY291bnRJZDpcbiAgICAgIHR5cGVvZiBuZXN0ZWQuY2hhdGdwdF9hY2NvdW50X2lkID09PSBcInN0cmluZ1wiID8gbmVzdGVkLmNoYXRncHRfYWNjb3VudF9pZCA6IHVuZGVmaW5lZCxcbiAgICBwbGFuVHlwZTogdHlwZW9mIG5lc3RlZC5jaGF0Z3B0X3BsYW5fdHlwZSA9PT0gXCJzdHJpbmdcIiA/IG5lc3RlZC5jaGF0Z3B0X3BsYW5fdHlwZSA6IHVuZGVmaW5lZCxcbiAgfTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGV4Y2hhbmdlT3BlbkFJQ29kZShcbiAgY29kZTogc3RyaW5nLFxuICBjb2RlVmVyaWZpZXI6IHN0cmluZyxcbiAgcmVkaXJlY3RVcmk6IHN0cmluZyxcbik6IFByb21pc2U8T3BlbkFJRXhjaGFuZ2VkQ3JlZGVudGlhbHM+IHtcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChPUEVOQUlfVE9LRU5fVVJMLCB7XG4gICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXCIgfSxcbiAgICBib2R5OiBuZXcgVVJMU2VhcmNoUGFyYW1zKHtcbiAgICAgIGdyYW50X3R5cGU6IFwiYXV0aG9yaXphdGlvbl9jb2RlXCIsXG4gICAgICBjb2RlLFxuICAgICAgcmVkaXJlY3RfdXJpOiByZWRpcmVjdFVyaSxcbiAgICAgIGNsaWVudF9pZDogT1BFTkFJX0NMSUVOVF9JRCxcbiAgICAgIGNvZGVfdmVyaWZpZXI6IGNvZGVWZXJpZmllcixcbiAgICB9KSxcbiAgfSk7XG4gIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAvLyBUb2tlbiBlbmRwb2ludCBib2RpZXMgY2FuIGVjaG8gY3JlZGVudGlhbHMgb3IgcHJvdmlkZXIgZGlhZ25vc3RpY3M7IG5ldmVyIGV4cG9zZSB0aGVtLlxuICAgIGF3YWl0IHJlc3BvbnNlLmJvZHk/LmNhbmNlbCgpLmNhdGNoKCgpID0+IHVuZGVmaW5lZCk7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBPUEVOQUlfVE9LRU5fRVhDSEFOR0VfSFRUUF8ke3Jlc3BvbnNlLnN0YXR1c31gKTtcbiAgfVxuXG4gIGNvbnN0IHRva2VucyA9IChhd2FpdCByZXNwb25zZS5qc29uKCkpIGFzIHtcbiAgICBpZF90b2tlbj86IHN0cmluZztcbiAgICBhY2Nlc3NfdG9rZW4/OiBzdHJpbmc7XG4gICAgcmVmcmVzaF90b2tlbj86IHN0cmluZztcbiAgICBleHBpcmVzX2luPzogbnVtYmVyO1xuICB9O1xuICBpZiAoIXRva2Vucy5pZF90b2tlbiB8fCAhdG9rZW5zLmFjY2Vzc190b2tlbiB8fCAhdG9rZW5zLnJlZnJlc2hfdG9rZW4pIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJPcGVuQUkgdG9rZW4gZXhjaGFuZ2UgcmV0dXJuZWQgaW5jb21wbGV0ZSBjcmVkZW50aWFsc1wiKTtcbiAgfVxuXG4gIGNvbnN0IGlkQ2xhaW1zID0gcGFyc2VPcGVuQUlUb2tlbkNsYWltcyh0b2tlbnMuaWRfdG9rZW4pO1xuICBjb25zdCBhY2Nlc3NDbGFpbXMgPSBwYXJzZU9wZW5BSVRva2VuQ2xhaW1zKHRva2Vucy5hY2Nlc3NfdG9rZW4pO1xuICBjb25zdCBhY2NvdW50SWQgPSBpZENsYWltcy5hY2NvdW50SWQgPz8gYWNjZXNzQ2xhaW1zLmFjY291bnRJZDtcbiAgaWYgKCFhY2NvdW50SWQpIHRocm93IG5ldyBFcnJvcihcIk9wZW5BSSB0b2tlbiBkaWQgbm90IGluY2x1ZGUgYSBDaGF0R1BUIGFjY291bnQgaWRcIik7XG5cbiAgcmV0dXJuIHtcbiAgICBhY2Nlc3NUb2tlbjogdG9rZW5zLmFjY2Vzc190b2tlbixcbiAgICByZWZyZXNoVG9rZW46IHRva2Vucy5yZWZyZXNoX3Rva2VuLFxuICAgIGlkVG9rZW46IHRva2Vucy5pZF90b2tlbixcbiAgICBhY2Nlc3NUb2tlbkV4cGlyZXNBdDpcbiAgICAgIGFjY2Vzc0NsYWltcy5leHBpcmVzQXQgPz9cbiAgICAgICh0b2tlbnMuZXhwaXJlc19pbiA/IERhdGUubm93KCkgKyB0b2tlbnMuZXhwaXJlc19pbiAqIDEwMDAgOiBEYXRlLm5vdygpKSxcbiAgICAuLi4oaWRDbGFpbXMuZXhwaXJlc0F0ID8geyBpZFRva2VuRXhwaXJlc0F0OiBpZENsYWltcy5leHBpcmVzQXQgfSA6IHt9KSxcbiAgICBhY2NvdW50SWQsXG4gICAgLi4uKChpZENsYWltcy5wbGFuVHlwZSA/PyBhY2Nlc3NDbGFpbXMucGxhblR5cGUpXG4gICAgICA/IHsgcGxhblR5cGU6IGlkQ2xhaW1zLnBsYW5UeXBlID8/IGFjY2Vzc0NsYWltcy5wbGFuVHlwZSB9XG4gICAgICA6IHt9KSxcbiAgfTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7O0FBVUEsTUFBTSxvQkFBb0I7QUF3QjFCLFNBQWdCLHFCQUFpQztDQUMvQyxNQUFNLGVBQWUsT0FBTyxZQUFZLEVBQUUsQ0FBQyxDQUFDLFNBQVMsV0FBVztDQUNoRSxPQUFPO0VBQ0w7RUFDQSxlQUFlLE9BQU8sV0FBVyxRQUFRLENBQUMsQ0FBQyxPQUFPLFlBQVksQ0FBQyxDQUFDLE9BQU8sV0FBVztFQUNsRixPQUFPLE9BQU8sWUFBWSxFQUFFLENBQUMsQ0FBQyxTQUFTLFdBQVc7Q0FDcEQ7QUFDRjtBQUVBLFNBQWdCLG1CQUNkLGVBQ0EsT0FDQSxhQUNRO0NBQ1IsTUFBTSxNQUFNLElBQUksSUFBSSxvQkFBb0I7Q0FDeEMsSUFBSSxTQUFTLElBQUksZ0JBQWdCO0VBQy9CLGVBQWU7RUFDZixXQUFXO0VBQ1gsY0FBYztFQUNkLE9BQU87RUFDUCxnQkFBZ0I7RUFDaEIsdUJBQXVCO0VBQ3ZCLDRCQUE0QjtFQUM1QiwyQkFBMkI7RUFDM0I7RUFDQSxZQUFZO0NBQ2QsQ0FBQyxDQUFDLENBQUMsU0FBUztDQUNaLE9BQU8sSUFBSSxTQUFTO0FBQ3RCO0FBRUEsU0FBZ0IsdUJBQXVCLEtBQWdDO0NBQ3JFLE1BQU0sUUFBUSxJQUFJLE1BQU0sR0FBRztDQUMzQixNQUFNLGNBQWMsTUFBTTtDQUMxQixJQUFJLE1BQU0sV0FBVyxLQUFLLE1BQU0sTUFBTSxTQUFTLENBQUMsSUFBSSxLQUFLLENBQUMsYUFDeEQsTUFBTSxJQUFJLE1BQU0sMkJBQTJCO0NBRzdDLElBQUk7Q0FDSixJQUFJO0VBQ0YsVUFBVSxLQUFLLE1BQU0sT0FBTyxLQUFLLGFBQWEsV0FBVyxDQUFDLENBQUMsU0FBUyxNQUFNLENBQUM7Q0FDN0UsUUFBUTtFQUNOLE1BQU0sSUFBSSxNQUFNLDRCQUE0QjtDQUM5QztDQUNBLElBQUksQ0FBQyxXQUFXLE9BQU8sWUFBWSxVQUFVLE1BQU0sSUFBSSxNQUFNLDRCQUE0QjtDQUV6RixNQUFNLFNBQVM7Q0FDZixNQUFNLE9BQU8sT0FBTztDQUNwQixNQUFNLFNBQVMsUUFBUSxPQUFPLFNBQVMsV0FBWSxPQUFtQyxDQUFDO0NBQ3ZGLE9BQU87RUFDTCxXQUFXLE9BQU8sT0FBTyxRQUFRLFdBQVcsT0FBTyxNQUFNLE1BQU87RUFDaEUsV0FDRSxPQUFPLE9BQU8sdUJBQXVCLFdBQVcsT0FBTyxxQkFBcUI7RUFDOUUsVUFBVSxPQUFPLE9BQU8sc0JBQXNCLFdBQVcsT0FBTyxvQkFBb0I7Q0FDdEY7QUFDRjtBQUVBLGVBQXNCLG1CQUNwQixNQUNBLGNBQ0EsYUFDcUM7Q0FDckMsTUFBTSxXQUFXLE1BQU0sTUFBTSxrQkFBa0I7RUFDN0MsUUFBUTtFQUNSLFNBQVMsRUFBRSxnQkFBZ0Isb0NBQW9DO0VBQy9ELE1BQU0sSUFBSSxnQkFBZ0I7R0FDeEIsWUFBWTtHQUNaO0dBQ0EsY0FBYztHQUNkLFdBQVc7R0FDWCxlQUFlO0VBQ2pCLENBQUM7Q0FDSCxDQUFDO0NBQ0QsSUFBSSxDQUFDLFNBQVMsSUFBSTtFQUVoQixNQUFNLFNBQVMsTUFBTSxPQUFPLENBQUMsQ0FBQyxZQUFZLE1BQVM7RUFDbkQsTUFBTSxJQUFJLE1BQU0sOEJBQThCLFNBQVMsUUFBUTtDQUNqRTtDQUVBLE1BQU0sU0FBVSxNQUFNLFNBQVMsS0FBSztDQU1wQyxJQUFJLENBQUMsT0FBTyxZQUFZLENBQUMsT0FBTyxnQkFBZ0IsQ0FBQyxPQUFPLGVBQ3RELE1BQU0sSUFBSSxNQUFNLHVEQUF1RDtDQUd6RSxNQUFNLFdBQVcsdUJBQXVCLE9BQU8sUUFBUTtDQUN2RCxNQUFNLGVBQWUsdUJBQXVCLE9BQU8sWUFBWTtDQUMvRCxNQUFNLFlBQVksU0FBUyxhQUFhLGFBQWE7Q0FDckQsSUFBSSxDQUFDLFdBQVcsTUFBTSxJQUFJLE1BQU0sbURBQW1EO0NBRW5GLE9BQU87RUFDTCxhQUFhLE9BQU87RUFDcEIsY0FBYyxPQUFPO0VBQ3JCLFNBQVMsT0FBTztFQUNoQixzQkFDRSxhQUFhLGNBQ1osT0FBTyxhQUFhLEtBQUssSUFBSSxJQUFJLE9BQU8sYUFBYSxNQUFPLEtBQUssSUFBSTtFQUN4RSxHQUFJLFNBQVMsWUFBWSxFQUFFLGtCQUFrQixTQUFTLFVBQVUsSUFBSSxDQUFDO0VBQ3JFO0VBQ0EsR0FBSyxTQUFTLFlBQVksYUFBYSxXQUNuQyxFQUFFLFVBQVUsU0FBUyxZQUFZLGFBQWEsU0FBUyxJQUN2RCxDQUFDO0NBQ1A7QUFDRiJ9
|
|
@@ -1,7 +1,77 @@
|
|
|
1
|
+
import { buildCodexIdentityHeaders } from "./openai-backend-protocol.js";
|
|
1
2
|
//#region src/utils/providers/openai/openai-quota.ts
|
|
2
|
-
|
|
3
|
+
const CHATGPT_WHAM_USAGE_URL = "https://chatgpt.com/backend-api/wham/usage";
|
|
4
|
+
async function readDirect(options) {
|
|
5
|
+
const response = await (options.fetch ?? fetch)(CHATGPT_WHAM_USAGE_URL, {
|
|
6
|
+
method: "GET",
|
|
7
|
+
headers: buildCodexIdentityHeaders(options.credentials.accessToken, options.credentials.accountId),
|
|
8
|
+
...options.signal ? { signal: options.signal } : {}
|
|
9
|
+
});
|
|
10
|
+
if (!response.ok) throw new Error(`OpenAI quota lookup failed: HTTP ${response.status}`);
|
|
11
|
+
return {
|
|
12
|
+
data: normalizeWhamUsage(await response.json()),
|
|
13
|
+
cachedAt: Date.now()
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
function windowFrom(value) {
|
|
17
|
+
if (!value || typeof value !== "object") return null;
|
|
18
|
+
const source = value;
|
|
19
|
+
const usedPercent = Number(source.usedPercent ?? source.used_percent);
|
|
20
|
+
if (!Number.isFinite(usedPercent)) return null;
|
|
21
|
+
const duration = source.windowDurationMins ?? source.window_minutes;
|
|
22
|
+
const resets = source.resetsAt ?? source.reset_at;
|
|
23
|
+
return {
|
|
24
|
+
usedPercent,
|
|
25
|
+
windowDurationMins: duration === null || duration === void 0 ? null : Number(duration),
|
|
26
|
+
resetsAt: resets === null || resets === void 0 ? null : Number(resets)
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
function snapshotFrom(value) {
|
|
30
|
+
const source = value && typeof value === "object" ? value : {};
|
|
31
|
+
const limitId = source.limitId ?? source.limit_id;
|
|
32
|
+
const limitName = source.limitName ?? source.limit_name;
|
|
33
|
+
return {
|
|
34
|
+
limitId: typeof limitId === "string" ? limitId : null,
|
|
35
|
+
limitName: typeof limitName === "string" ? limitName : null,
|
|
36
|
+
primary: windowFrom(source.primary ?? source.primary_window),
|
|
37
|
+
secondary: windowFrom(source.secondary ?? source.secondary_window),
|
|
38
|
+
credits: source.credits ?? null,
|
|
39
|
+
planType: typeof (source.planType ?? source.plan_type) === "string" ? String(source.planType ?? source.plan_type) : null,
|
|
40
|
+
rateLimitReachedType: typeof (source.rateLimitReachedType ?? source.rate_limit_reached) === "string" ? String(source.rateLimitReachedType ?? source.rate_limit_reached) : null
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
function normalizeWhamUsage(body) {
|
|
44
|
+
if (body.rateLimits && typeof body.rateLimits === "object") return body;
|
|
45
|
+
const container = body.rate_limits && typeof body.rate_limits === "object" ? body.rate_limits : body;
|
|
46
|
+
const shared = {
|
|
47
|
+
plan_type: body.plan_type ?? container.plan_type,
|
|
48
|
+
credits: body.credits ?? container.credits,
|
|
49
|
+
rate_limit_reached: body.rate_limit_reached ?? container.rate_limit_reached
|
|
50
|
+
};
|
|
51
|
+
const primary = snapshotFrom({
|
|
52
|
+
...shared,
|
|
53
|
+
...container.rate_limit ?? container
|
|
54
|
+
});
|
|
55
|
+
const additional = Array.isArray(container.additional_rate_limits) ? container.additional_rate_limits : Array.isArray(body.additional_rate_limits) ? body.additional_rate_limits : [];
|
|
56
|
+
const byId = {};
|
|
57
|
+
for (const entry of additional) {
|
|
58
|
+
if (!entry || typeof entry !== "object") continue;
|
|
59
|
+
const wrapper = entry;
|
|
60
|
+
const snapshot = snapshotFrom({
|
|
61
|
+
...shared,
|
|
62
|
+
...wrapper.rate_limit ?? wrapper
|
|
63
|
+
});
|
|
64
|
+
if (snapshot.limitId) byId[snapshot.limitId] = snapshot;
|
|
65
|
+
}
|
|
66
|
+
return {
|
|
67
|
+
rateLimits: primary,
|
|
68
|
+
rateLimitsByLimitId: Object.keys(byId).length ? byId : null
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
async function readOpenAIQuotaUsage(source) {
|
|
3
72
|
try {
|
|
4
|
-
const
|
|
73
|
+
const direct = typeof source !== "function";
|
|
74
|
+
const { data, cachedAt } = await (typeof source === "function" ? source() : readDirect(source));
|
|
5
75
|
const rateLimits = data.rateLimits;
|
|
6
76
|
const primary = rateLimits?.primary;
|
|
7
77
|
if (!primary || typeof primary.usedPercent !== "number" || !Number.isFinite(primary.usedPercent)) return {
|
|
@@ -14,7 +84,8 @@ async function readOpenAIQuotaUsage(readRateLimits) {
|
|
|
14
84
|
cacheAgeMs: Math.max(Date.now() - cachedAt, 0),
|
|
15
85
|
windowDurationMins: primary.windowDurationMins,
|
|
16
86
|
resetsAt: primary.resetsAt,
|
|
17
|
-
limitId: rateLimits.limitId
|
|
87
|
+
limitId: rateLimits.limitId,
|
|
88
|
+
...direct ? { raw: data } : {}
|
|
18
89
|
};
|
|
19
90
|
} catch (e) {
|
|
20
91
|
return {
|
|
@@ -24,6 +95,6 @@ async function readOpenAIQuotaUsage(readRateLimits) {
|
|
|
24
95
|
}
|
|
25
96
|
}
|
|
26
97
|
//#endregion
|
|
27
|
-
export { readOpenAIQuotaUsage };
|
|
98
|
+
export { CHATGPT_WHAM_USAGE_URL, readOpenAIQuotaUsage };
|
|
28
99
|
|
|
29
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbmFpLXF1b3RhLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy91dGlscy9wcm92aWRlcnMvb3BlbmFpL29wZW5haS1xdW90YS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIEdldEFjY291bnRSYXRlTGltaXRzUmVzcG9uc2UgfSBmcm9tIFwiLi4vLi4vLi4vY29kZXgtcHJvdG9jb2wvdjIvR2V0QWNjb3VudFJhdGVMaW1pdHNSZXNwb25zZVwiO1xuXG5leHBvcnQgdHlwZSBPcGVuQUlSYXRlTGltaXRzV2l0aE1ldGEgPSB7XG4gIGRhdGE6IEdldEFjY291bnRSYXRlTGltaXRzUmVzcG9uc2U7XG4gIGNhY2hlZEF0OiBudW1iZXI7XG59O1xuXG5leHBvcnQgdHlwZSBPcGVuQUlRdW90YVVzYWdlUmVzdWx0ID1cbiAgfCB7XG4gICAgICBraW5kOiBcIm9rXCI7XG4gICAgICB1dGlsaXphdGlvblBjdDogbnVtYmVyO1xuICAgICAgY2FjaGVBZ2VNczogbnVtYmVyO1xuICAgICAgd2luZG93RHVyYXRpb25NaW5zOiBudW1iZXIgfCBudWxsO1xuICAgICAgcmVzZXRzQXQ6IG51bWJlciB8IG51bGw7XG4gICAgICBsaW1pdElkOiBzdHJpbmcgfCBudWxsO1xuICAgIH1cbiAgfCB7IGtpbmQ6IFwibG9va3VwX2ZhaWxlZFwiOyByZWFzb246IHN0cmluZyB9O1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVhZE9wZW5BSVF1b3RhVXNhZ2UoXG4gIHJlYWRSYXRlTGltaXRzOiAoKSA9PiBQcm9taXNlPE9wZW5BSVJhdGVMaW1pdHNXaXRoTWV0YT4sXG4pOiBQcm9taXNlPE9wZW5BSVF1b3RhVXNhZ2VSZXN1bHQ+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCB7IGRhdGEsIGNhY2hlZEF0IH0gPSBhd2FpdCByZWFkUmF0ZUxpbWl0cygpO1xuICAgIGNvbnN0IHJhdGVMaW1pdHMgPSBkYXRhLnJhdGVMaW1pdHM7XG4gICAgY29uc3QgcHJpbWFyeSA9IHJhdGVMaW1pdHM/LnByaW1hcnk7XG5cbiAgICBpZiAoXG4gICAgICAhcHJpbWFyeSB8fFxuICAgICAgdHlwZW9mIHByaW1hcnkudXNlZFBlcmNlbnQgIT09IFwibnVtYmVyXCIgfHxcbiAgICAgICFOdW1iZXIuaXNGaW5pdGUocHJpbWFyeS51c2VkUGVyY2VudClcbiAgICApIHtcbiAgICAgIHJldHVybiB7IGtpbmQ6IFwibG9va3VwX2ZhaWxlZFwiLCByZWFzb246IFwicHJpbWFyeSB1c2VkUGVyY2VudCB1bmF2YWlsYWJsZVwiIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGtpbmQ6IFwib2tcIixcbiAgICAgIHV0aWxpemF0aW9uUGN0OiBwcmltYXJ5LnVzZWRQZXJjZW50LFxuICAgICAgY2FjaGVBZ2VNczogTWF0aC5tYXgoRGF0ZS5ub3coKSAtIGNhY2hlZEF0LCAwKSxcbiAgICAgIHdpbmRvd0R1cmF0aW9uTWluczogcHJpbWFyeS53aW5kb3dEdXJhdGlvbk1pbnMsXG4gICAgICByZXNldHNBdDogcHJpbWFyeS5yZXNldHNBdCxcbiAgICAgIGxpbWl0SWQ6IHJhdGVMaW1pdHMubGltaXRJZCxcbiAgICB9O1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIHsga2luZDogXCJsb29rdXBfZmFpbGVkXCIsIHJlYXNvbjogKGUgYXMgRXJyb3IpLm1lc3NhZ2UgfTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBa0JBLGVBQXNCLHFCQUNwQixnQkFDaUM7Q0FDakMsSUFBSTtFQUNGLE1BQU0sRUFBRSxNQUFNLGFBQWEsTUFBTSxlQUFlO0VBQ2hELE1BQU0sYUFBYSxLQUFLO0VBQ3hCLE1BQU0sVUFBVSxZQUFZO0VBRTVCLElBQ0UsQ0FBQyxXQUNELE9BQU8sUUFBUSxnQkFBZ0IsWUFDL0IsQ0FBQyxPQUFPLFNBQVMsUUFBUSxXQUFXLEdBRXBDLE9BQU87R0FBRSxNQUFNO0dBQWlCLFFBQVE7RUFBa0M7RUFHNUUsT0FBTztHQUNMLE1BQU07R0FDTixnQkFBZ0IsUUFBUTtHQUN4QixZQUFZLEtBQUssSUFBSSxLQUFLLElBQUksSUFBSSxVQUFVLENBQUM7R0FDN0Msb0JBQW9CLFFBQVE7R0FDNUIsVUFBVSxRQUFRO0dBQ2xCLFNBQVMsV0FBVztFQUN0QjtDQUNGLFNBQVMsR0FBRztFQUNWLE9BQU87R0FBRSxNQUFNO0dBQWlCLFFBQVMsRUFBWTtFQUFRO0NBQy9EO0FBQ0YifQ==
|
|
100
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbmFpLXF1b3RhLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy91dGlscy9wcm92aWRlcnMvb3BlbmFpL29wZW5haS1xdW90YS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIE9wZW5BSUNyZWRlbnRpYWxzIH0gZnJvbSBcIi4uLy4uLy4uL2FwcGxpY2F0aW9uL3Rva2VuL3Rva2VuLnR5cGVzXCI7XG5pbXBvcnQgeyB0eXBlIFF1b3RhUmF0ZUxpbWl0cywgdHlwZSBRdW90YVJhdGVMaW1pdFNuYXBzaG90IH0gZnJvbSBcIi4uL2NvbW1vbi9wcm92aWRlci10eXBlc1wiO1xuaW1wb3J0IHsgYnVpbGRDb2RleElkZW50aXR5SGVhZGVycyB9IGZyb20gXCIuL29wZW5haS1iYWNrZW5kLXByb3RvY29sXCI7XG5cbmV4cG9ydCBjb25zdCBDSEFUR1BUX1dIQU1fVVNBR0VfVVJMID0gXCJodHRwczovL2NoYXRncHQuY29tL2JhY2tlbmQtYXBpL3doYW0vdXNhZ2VcIiBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgT3BlbkFJUmF0ZUxpbWl0c1dpdGhNZXRhID0ge1xuICBkYXRhOiBRdW90YVJhdGVMaW1pdHM7XG4gIGNhY2hlZEF0OiBudW1iZXI7XG59O1xuXG5leHBvcnQgdHlwZSBPcGVuQUlRdW90YVVzYWdlUmVzdWx0ID1cbiAgfCB7XG4gICAgICBraW5kOiBcIm9rXCI7XG4gICAgICB1dGlsaXphdGlvblBjdDogbnVtYmVyO1xuICAgICAgY2FjaGVBZ2VNczogbnVtYmVyO1xuICAgICAgd2luZG93RHVyYXRpb25NaW5zOiBudW1iZXIgfCBudWxsO1xuICAgICAgcmVzZXRzQXQ6IG51bWJlciB8IG51bGw7XG4gICAgICBsaW1pdElkOiBzdHJpbmcgfCBudWxsO1xuICAgICAgcmF3PzogUXVvdGFSYXRlTGltaXRzO1xuICAgIH1cbiAgfCB7IGtpbmQ6IFwibG9va3VwX2ZhaWxlZFwiOyByZWFzb246IHN0cmluZyB9O1xuXG5leHBvcnQgaW50ZXJmYWNlIE9wZW5BSVF1b3RhSHR0cE9wdGlvbnMge1xuICBjcmVkZW50aWFsczogUGljazxPcGVuQUlDcmVkZW50aWFscywgXCJhY2Nlc3NUb2tlblwiIHwgXCJhY2NvdW50SWRcIj47XG4gIGZldGNoPzogdHlwZW9mIGZldGNoO1xuICBzaWduYWw/OiBBYm9ydFNpZ25hbDtcbn1cblxuYXN5bmMgZnVuY3Rpb24gcmVhZERpcmVjdChvcHRpb25zOiBPcGVuQUlRdW90YUh0dHBPcHRpb25zKTogUHJvbWlzZTxPcGVuQUlSYXRlTGltaXRzV2l0aE1ldGE+IHtcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCAob3B0aW9ucy5mZXRjaCA/PyBmZXRjaCkoQ0hBVEdQVF9XSEFNX1VTQUdFX1VSTCwge1xuICAgIG1ldGhvZDogXCJHRVRcIixcbiAgICBoZWFkZXJzOiBidWlsZENvZGV4SWRlbnRpdHlIZWFkZXJzKFxuICAgICAgb3B0aW9ucy5jcmVkZW50aWFscy5hY2Nlc3NUb2tlbixcbiAgICAgIG9wdGlvbnMuY3JlZGVudGlhbHMuYWNjb3VudElkLFxuICAgICksXG4gICAgLi4uKG9wdGlvbnMuc2lnbmFsID8geyBzaWduYWw6IG9wdGlvbnMuc2lnbmFsIH0gOiB7fSksXG4gIH0pO1xuICBpZiAoIXJlc3BvbnNlLm9rKSB0aHJvdyBuZXcgRXJyb3IoYE9wZW5BSSBxdW90YSBsb29rdXAgZmFpbGVkOiBIVFRQICR7cmVzcG9uc2Uuc3RhdHVzfWApO1xuICBjb25zdCBib2R5ID0gKGF3YWl0IHJlc3BvbnNlLmpzb24oKSkgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIGNvbnN0IGRhdGEgPSBub3JtYWxpemVXaGFtVXNhZ2UoYm9keSk7XG4gIHJldHVybiB7IGRhdGEsIGNhY2hlZEF0OiBEYXRlLm5vdygpIH07XG59XG5cbmZ1bmN0aW9uIHdpbmRvd0Zyb20odmFsdWU6IHVua25vd24pIHtcbiAgaWYgKCF2YWx1ZSB8fCB0eXBlb2YgdmFsdWUgIT09IFwib2JqZWN0XCIpIHJldHVybiBudWxsO1xuICBjb25zdCBzb3VyY2UgPSB2YWx1ZSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgY29uc3QgdXNlZFBlcmNlbnQgPSBOdW1iZXIoc291cmNlLnVzZWRQZXJjZW50ID8/IHNvdXJjZS51c2VkX3BlcmNlbnQpO1xuICBpZiAoIU51bWJlci5pc0Zpbml0ZSh1c2VkUGVyY2VudCkpIHJldHVybiBudWxsO1xuICBjb25zdCBkdXJhdGlvbiA9IHNvdXJjZS53aW5kb3dEdXJhdGlvbk1pbnMgPz8gc291cmNlLndpbmRvd19taW51dGVzO1xuICBjb25zdCByZXNldHMgPSBzb3VyY2UucmVzZXRzQXQgPz8gc291cmNlLnJlc2V0X2F0O1xuICByZXR1cm4ge1xuICAgIHVzZWRQZXJjZW50LFxuICAgIHdpbmRvd0R1cmF0aW9uTWluczogZHVyYXRpb24gPT09IG51bGwgfHwgZHVyYXRpb24gPT09IHVuZGVmaW5lZCA/IG51bGwgOiBOdW1iZXIoZHVyYXRpb24pLFxuICAgIHJlc2V0c0F0OiByZXNldHMgPT09IG51bGwgfHwgcmVzZXRzID09PSB1bmRlZmluZWQgPyBudWxsIDogTnVtYmVyKHJlc2V0cyksXG4gIH07XG59XG5cbmZ1bmN0aW9uIHNuYXBzaG90RnJvbSh2YWx1ZTogdW5rbm93bik6IFF1b3RhUmF0ZUxpbWl0U25hcHNob3Qge1xuICBjb25zdCBzb3VyY2UgPSAodmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiID8gdmFsdWUgOiB7fSkgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIGNvbnN0IGxpbWl0SWQgPSBzb3VyY2UubGltaXRJZCA/PyBzb3VyY2UubGltaXRfaWQ7XG4gIGNvbnN0IGxpbWl0TmFtZSA9IHNvdXJjZS5saW1pdE5hbWUgPz8gc291cmNlLmxpbWl0X25hbWU7XG4gIHJldHVybiB7XG4gICAgbGltaXRJZDogdHlwZW9mIGxpbWl0SWQgPT09IFwic3RyaW5nXCIgPyBsaW1pdElkIDogbnVsbCxcbiAgICBsaW1pdE5hbWU6IHR5cGVvZiBsaW1pdE5hbWUgPT09IFwic3RyaW5nXCIgPyBsaW1pdE5hbWUgOiBudWxsLFxuICAgIHByaW1hcnk6IHdpbmRvd0Zyb20oc291cmNlLnByaW1hcnkgPz8gc291cmNlLnByaW1hcnlfd2luZG93KSxcbiAgICBzZWNvbmRhcnk6IHdpbmRvd0Zyb20oc291cmNlLnNlY29uZGFyeSA/PyBzb3VyY2Uuc2Vjb25kYXJ5X3dpbmRvdyksXG4gICAgY3JlZGl0czogKHNvdXJjZS5jcmVkaXRzID8/IG51bGwpIGFzIFF1b3RhUmF0ZUxpbWl0U25hcHNob3RbXCJjcmVkaXRzXCJdLFxuICAgIHBsYW5UeXBlOlxuICAgICAgdHlwZW9mIChzb3VyY2UucGxhblR5cGUgPz8gc291cmNlLnBsYW5fdHlwZSkgPT09IFwic3RyaW5nXCJcbiAgICAgICAgPyBTdHJpbmcoc291cmNlLnBsYW5UeXBlID8/IHNvdXJjZS5wbGFuX3R5cGUpXG4gICAgICAgIDogbnVsbCxcbiAgICByYXRlTGltaXRSZWFjaGVkVHlwZTpcbiAgICAgIHR5cGVvZiAoc291cmNlLnJhdGVMaW1pdFJlYWNoZWRUeXBlID8/IHNvdXJjZS5yYXRlX2xpbWl0X3JlYWNoZWQpID09PSBcInN0cmluZ1wiXG4gICAgICAgID8gU3RyaW5nKHNvdXJjZS5yYXRlTGltaXRSZWFjaGVkVHlwZSA/PyBzb3VyY2UucmF0ZV9saW1pdF9yZWFjaGVkKVxuICAgICAgICA6IG51bGwsXG4gIH07XG59XG5cbmZ1bmN0aW9uIG5vcm1hbGl6ZVdoYW1Vc2FnZShib2R5OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IFF1b3RhUmF0ZUxpbWl0cyB7XG4gIGlmIChib2R5LnJhdGVMaW1pdHMgJiYgdHlwZW9mIGJvZHkucmF0ZUxpbWl0cyA9PT0gXCJvYmplY3RcIikge1xuICAgIHJldHVybiBib2R5IGFzIFF1b3RhUmF0ZUxpbWl0cztcbiAgfVxuICBjb25zdCBjb250YWluZXIgPVxuICAgIGJvZHkucmF0ZV9saW1pdHMgJiYgdHlwZW9mIGJvZHkucmF0ZV9saW1pdHMgPT09IFwib2JqZWN0XCJcbiAgICAgID8gKGJvZHkucmF0ZV9saW1pdHMgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pXG4gICAgICA6IGJvZHk7XG4gIGNvbnN0IHNoYXJlZCA9IHtcbiAgICBwbGFuX3R5cGU6IGJvZHkucGxhbl90eXBlID8/IGNvbnRhaW5lci5wbGFuX3R5cGUsXG4gICAgY3JlZGl0czogYm9keS5jcmVkaXRzID8/IGNvbnRhaW5lci5jcmVkaXRzLFxuICAgIHJhdGVfbGltaXRfcmVhY2hlZDogYm9keS5yYXRlX2xpbWl0X3JlYWNoZWQgPz8gY29udGFpbmVyLnJhdGVfbGltaXRfcmVhY2hlZCxcbiAgfTtcbiAgY29uc3QgcHJpbWFyeSA9IHNuYXBzaG90RnJvbSh7XG4gICAgLi4uc2hhcmVkLFxuICAgIC4uLigoY29udGFpbmVyLnJhdGVfbGltaXQgPz8gY29udGFpbmVyKSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiksXG4gIH0pO1xuICBjb25zdCBhZGRpdGlvbmFsID0gQXJyYXkuaXNBcnJheShjb250YWluZXIuYWRkaXRpb25hbF9yYXRlX2xpbWl0cylcbiAgICA/IGNvbnRhaW5lci5hZGRpdGlvbmFsX3JhdGVfbGltaXRzXG4gICAgOiBBcnJheS5pc0FycmF5KGJvZHkuYWRkaXRpb25hbF9yYXRlX2xpbWl0cylcbiAgICAgID8gYm9keS5hZGRpdGlvbmFsX3JhdGVfbGltaXRzXG4gICAgICA6IFtdO1xuICBjb25zdCBieUlkOiBSZWNvcmQ8c3RyaW5nLCBRdW90YVJhdGVMaW1pdFNuYXBzaG90PiA9IHt9O1xuICBmb3IgKGNvbnN0IGVudHJ5IG9mIGFkZGl0aW9uYWwpIHtcbiAgICBpZiAoIWVudHJ5IHx8IHR5cGVvZiBlbnRyeSAhPT0gXCJvYmplY3RcIikgY29udGludWU7XG4gICAgY29uc3Qgd3JhcHBlciA9IGVudHJ5IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgIGNvbnN0IHNuYXBzaG90ID0gc25hcHNob3RGcm9tKHtcbiAgICAgIC4uLnNoYXJlZCxcbiAgICAgIC4uLigod3JhcHBlci5yYXRlX2xpbWl0ID8/IHdyYXBwZXIpIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KSxcbiAgICB9KTtcbiAgICBpZiAoc25hcHNob3QubGltaXRJZCkgYnlJZFtzbmFwc2hvdC5saW1pdElkXSA9IHNuYXBzaG90O1xuICB9XG4gIHJldHVybiB7XG4gICAgcmF0ZUxpbWl0czogcHJpbWFyeSxcbiAgICByYXRlTGltaXRzQnlMaW1pdElkOiBPYmplY3Qua2V5cyhieUlkKS5sZW5ndGggPyBieUlkIDogbnVsbCxcbiAgfTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlYWRPcGVuQUlRdW90YVVzYWdlKFxuICBzb3VyY2U6ICgoKSA9PiBQcm9taXNlPE9wZW5BSVJhdGVMaW1pdHNXaXRoTWV0YT4pIHwgT3BlbkFJUXVvdGFIdHRwT3B0aW9ucyxcbik6IFByb21pc2U8T3BlbkFJUXVvdGFVc2FnZVJlc3VsdD4ge1xuICB0cnkge1xuICAgIGNvbnN0IGRpcmVjdCA9IHR5cGVvZiBzb3VyY2UgIT09IFwiZnVuY3Rpb25cIjtcbiAgICBjb25zdCB7IGRhdGEsIGNhY2hlZEF0IH0gPSBhd2FpdCAodHlwZW9mIHNvdXJjZSA9PT0gXCJmdW5jdGlvblwiID8gc291cmNlKCkgOiByZWFkRGlyZWN0KHNvdXJjZSkpO1xuICAgIGNvbnN0IHJhdGVMaW1pdHMgPSBkYXRhLnJhdGVMaW1pdHM7XG4gICAgY29uc3QgcHJpbWFyeSA9IHJhdGVMaW1pdHM/LnByaW1hcnk7XG5cbiAgICBpZiAoXG4gICAgICAhcHJpbWFyeSB8fFxuICAgICAgdHlwZW9mIHByaW1hcnkudXNlZFBlcmNlbnQgIT09IFwibnVtYmVyXCIgfHxcbiAgICAgICFOdW1iZXIuaXNGaW5pdGUocHJpbWFyeS51c2VkUGVyY2VudClcbiAgICApIHtcbiAgICAgIHJldHVybiB7IGtpbmQ6IFwibG9va3VwX2ZhaWxlZFwiLCByZWFzb246IFwicHJpbWFyeSB1c2VkUGVyY2VudCB1bmF2YWlsYWJsZVwiIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGtpbmQ6IFwib2tcIixcbiAgICAgIHV0aWxpemF0aW9uUGN0OiBwcmltYXJ5LnVzZWRQZXJjZW50LFxuICAgICAgY2FjaGVBZ2VNczogTWF0aC5tYXgoRGF0ZS5ub3coKSAtIGNhY2hlZEF0LCAwKSxcbiAgICAgIHdpbmRvd0R1cmF0aW9uTWluczogcHJpbWFyeS53aW5kb3dEdXJhdGlvbk1pbnMsXG4gICAgICByZXNldHNBdDogcHJpbWFyeS5yZXNldHNBdCxcbiAgICAgIGxpbWl0SWQ6IHJhdGVMaW1pdHMubGltaXRJZCxcbiAgICAgIC4uLihkaXJlY3QgPyB7IHJhdzogZGF0YSB9IDoge30pLFxuICAgIH07XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4geyBraW5kOiBcImxvb2t1cF9mYWlsZWRcIiwgcmVhc29uOiAoZSBhcyBFcnJvcikubWVzc2FnZSB9O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7O0FBSUEsTUFBYSx5QkFBeUI7QUF5QnRDLGVBQWUsV0FBVyxTQUFvRTtDQUM1RixNQUFNLFdBQVcsT0FBTyxRQUFRLFNBQVMsTUFBQSxDQUFPLHdCQUF3QjtFQUN0RSxRQUFRO0VBQ1IsU0FBUywwQkFDUCxRQUFRLFlBQVksYUFDcEIsUUFBUSxZQUFZLFNBQ3RCO0VBQ0EsR0FBSSxRQUFRLFNBQVMsRUFBRSxRQUFRLFFBQVEsT0FBTyxJQUFJLENBQUM7Q0FDckQsQ0FBQztDQUNELElBQUksQ0FBQyxTQUFTLElBQUksTUFBTSxJQUFJLE1BQU0sb0NBQW9DLFNBQVMsUUFBUTtDQUd2RixPQUFPO0VBQUUsTUFESSxtQkFBbUIsTUFEWixTQUFTLEtBQUssQ0FFekI7RUFBTSxVQUFVLEtBQUssSUFBSTtDQUFFO0FBQ3RDO0FBRUEsU0FBUyxXQUFXLE9BQWdCO0NBQ2xDLElBQUksQ0FBQyxTQUFTLE9BQU8sVUFBVSxVQUFVLE9BQU87Q0FDaEQsTUFBTSxTQUFTO0NBQ2YsTUFBTSxjQUFjLE9BQU8sT0FBTyxlQUFlLE9BQU8sWUFBWTtD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
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { TokenModel } from "../../../application/token/token.model.js";
|
|
2
|
-
import { deactivateAuthDeadToken } from "../../../application/qgrid/token-death.js";
|
|
3
2
|
import { OPENAI_CLIENT_ID, OPENAI_TOKEN_URL } from "./openai-constants.js";
|
|
3
|
+
import { deactivateAuthDeadToken } from "../../../application/qgrid/token-death.js";
|
|
4
4
|
import { getLogger } from "@logtape/logtape";
|
|
5
5
|
//#region src/utils/providers/openai/openai-refresh.ts
|
|
6
6
|
/**
|
|
7
7
|
* OpenAI chatgptAuthTokens refresh handler.
|
|
8
8
|
*
|
|
9
|
-
* -
|
|
9
|
+
* - direct HTTPS/WS transport가 401 refresh를 소유하고 저장된 refresh token으로 갱신함
|
|
10
10
|
* - qgrid 가 DB 의 refresh_token 으로 새 access_token 을 발급받아 응답
|
|
11
11
|
* - per-token inflight promise 로 concurrent refresh dedup
|
|
12
12
|
* - rotation 감지: 새 refresh_token 있으면 DB 즉시 업데이트
|
|
@@ -112,4 +112,4 @@ async function doRefresh(tokenId) {
|
|
|
112
112
|
//#endregion
|
|
113
113
|
export { handleChatgptAuthTokensRefresh };
|
|
114
114
|
|
|
115
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbmFpLXJlZnJlc2guanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3V0aWxzL3Byb3ZpZGVycy9vcGVuYWkvb3BlbmFpLXJlZnJlc2gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBPcGVuQUkgY2hhdGdwdEF1dGhUb2tlbnMgcmVmcmVzaCBoYW5kbGVyLlxuICpcbiAqIC0gY29kZXggYXBwLXNlcnZlciDqsIAgNDAxIOuwm+ycvOuptCBgYWNjb3VudC9jaGF0Z3B0QXV0aFRva2Vucy9yZWZyZXNoYCBzZXJ2ZXItcmVxdWVzdCDrpbwg67O064OEXG4gKiAtIHFncmlkIOqwgCBEQiDsnZggcmVmcmVzaF90b2tlbiDsnLzroZwg7IOIIGFjY2Vzc190b2tlbiDsnYQg67Cc6riJ67Cb7JWEIOydkeuLtVxuICogLSBwZXItdG9rZW4gaW5mbGlnaHQgcHJvbWlzZSDroZwgY29uY3VycmVudCByZWZyZXNoIGRlZHVwXG4gKiAtIHJvdGF0aW9uIOqwkOyngDog7IOIIHJlZnJlc2hfdG9rZW4g7J6I7Jy866m0IERCIOymieyLnCDsl4XrjbDsnbTtirhcbiAqL1xuaW1wb3J0IHsgZ2V0TG9nZ2VyIH0gZnJvbSBcIkBsb2d0YXBlL2xvZ3RhcGVcIjtcblxuaW1wb3J0IHsgZGVhY3RpdmF0ZUF1dGhEZWFkVG9rZW4gfSBmcm9tIFwiLi4vLi4vLi4vYXBwbGljYXRpb24vcWdyaWQvdG9rZW4tZGVhdGhcIjtcbmltcG9ydCB7IFRva2VuTW9kZWwgfSBmcm9tIFwiLi4vLi4vLi4vYXBwbGljYXRpb24vdG9rZW4vdG9rZW4ubW9kZWxcIjtcbmltcG9ydCB7IHR5cGUgT3BlbkFJQ3JlZGVudGlhbHMgfSBmcm9tIFwiLi4vLi4vLi4vYXBwbGljYXRpb24vdG9rZW4vdG9rZW4udHlwZXNcIjtcblxuY29uc3QgbG9nZ2VyID0gZ2V0TG9nZ2VyKFtcInFncmlkXCIsIFwib3BlbmFpLXJlZnJlc2hcIl0pO1xuXG5pbXBvcnQgeyBPUEVOQUlfQ0xJRU5UX0lELCBPUEVOQUlfVE9LRU5fVVJMIH0gZnJvbSBcIi4vb3BlbmFpLWNvbnN0YW50c1wiO1xuXG4vLyDsnqzroZzqt7jsnbgg7Jm4IOuzteq1rCDrtojqsIDtlZwgcmVmcmVzaCDsi6TtjKgg7L2U65OcLiDslrTripAg6rKD7J2065OgIO2GoO2BsOydtCDso73sl4jri6TripQg7ZmV7KCVIOyLoO2YuOuLpC5cbmNvbnN0IFBFUk1BTkVOVF9GQUlMVVJFX0NPREVTID0gbmV3IFNldChbXG4gIFwicmVmcmVzaF90b2tlbl9leHBpcmVkXCIsXG4gIFwicmVmcmVzaF90b2tlbl9yZXVzZWRcIixcbiAgXCJyZWZyZXNoX3Rva2VuX2ludmFsaWRhdGVkXCIsXG5dKTtcblxuLy8gcGVyLXRva2VuIGluZmxpZ2h0IHByb21pc2UgZGVkdXAgKyBtaW5pbXVtIGludGVydmFsXG5jb25zdCBpbmZsaWdodFJlZnJlc2ggPSBuZXcgTWFwPG51bWJlciwgUHJvbWlzZTxSZWZyZXNoUmVzdWx0Pj4oKTtcbmNvbnN0IGxhc3RSZWZyZXNoVGltZSA9IG5ldyBNYXA8bnVtYmVyLCBudW1iZXI+KCk7XG5jb25zdCBSRUZSRVNIX01JTl9JTlRFUlZBTF9NUyA9IDVfMDAwO1xuXG5pbnRlcmZhY2UgUmVmcmVzaFJlc3VsdCB7XG4gIGFjY2Vzc1Rva2VuOiBzdHJpbmc7XG4gIGNoYXRncHRBY2NvdW50SWQ6IHN0cmluZztcbiAgY2hhdGdwdFBsYW5UeXBlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaGFuZGxlQ2hhdGdwdEF1dGhUb2tlbnNSZWZyZXNoKHRva2VuSWQ6IG51bWJlcik6IFByb21pc2U8UmVmcmVzaFJlc3VsdD4ge1xuICBsb2dnZXIuaW5mbyhgcmVmcmVzaCByZXF1ZXN0ZWQgZm9yIHRva2VuICR7dG9rZW5JZH0gKHBpZD0ke3Byb2Nlc3MucGlkfSlgKTtcbiAgY29uc3QgZXhpc3RpbmcgPSBpbmZsaWdodFJlZnJlc2guZ2V0KHRva2VuSWQpO1xuICBpZiAoZXhpc3RpbmcpIHtcbiAgICBsb2dnZXIuaW5mbyhgcmVmcmVzaCBkZWR1cCBmb3IgdG9rZW4gJHt0b2tlbklkfWApO1xuICAgIHJldHVybiBleGlzdGluZztcbiAgfVxuXG4gIGNvbnN0IGxhc3RBdCA9IGxhc3RSZWZyZXNoVGltZS5nZXQodG9rZW5JZCkgPz8gMDtcbiAgaWYgKERhdGUubm93KCkgLSBsYXN0QXQgPCBSRUZSRVNIX01JTl9JTlRFUlZBTF9NUykge1xuICAgIGxvZ2dlci5pbmZvKGByZWZyZXNoIHRvbyBzb29uIGZvciB0b2tlbiAke3Rva2VuSWR9LCByZWFkaW5nIGN1cnJlbnQgY3JlZHMgZnJvbSBEQmApO1xuICAgIHJldHVybiByZWFkQ3VycmVudENyZWRzKHRva2VuSWQpO1xuICB9XG5cbiAgbGFzdFJlZnJlc2hUaW1lLnNldCh0b2tlbklkLCBEYXRlLm5vdygpKTtcbiAgY29uc3QgcHJvbWlzZSA9IGRvUmVmcmVzaCh0b2tlbklkKTtcbiAgaW5mbGlnaHRSZWZyZXNoLnNldCh0b2tlbklkLCBwcm9taXNlKTtcblxuICB0cnkge1xuICAgIHJldHVybiBhd2FpdCBwcm9taXNlO1xuICB9IGZpbmFsbHkge1xuICAgIGluZmxpZ2h0UmVmcmVzaC5kZWxldGUodG9rZW5JZCk7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gcmVhZEN1cnJlbnRDcmVkcyh0b2tlbklkOiBudW1iZXIpOiBQcm9taXNlPFJlZnJlc2hSZXN1bHQ+IHtcbiAgY29uc3QgdG9rZW4gPSBhd2FpdCBUb2tlbk1vZGVsLmZpbmRPbmUoXCJBXCIsIHsgaWQ6IHRva2VuSWQgfSk7XG4gIGlmICghdG9rZW4gfHwgdG9rZW4ucHJvdmlkZXIgIT09IFwib3BlbmFpXCIpIHRocm93IG5ldyBFcnJvcihgdG9rZW4gJHt0b2tlbklkfSBub3QgZm91bmRgKTtcbiAgY29uc3QgY3JlZHMgPSB0b2tlbi5jcmVkZW50aWFscyBhcyBPcGVuQUlDcmVkZW50aWFscztcbiAgcmV0dXJuIHtcbiAgICBhY2Nlc3NUb2tlbjogY3JlZHMuYWNjZXNzVG9rZW4sXG4gICAgY2hhdGdwdEFjY291bnRJZDogY3JlZHMuYWNjb3VudElkLFxuICAgIGNoYXRncHRQbGFuVHlwZTogY3JlZHMucGxhblR5cGUsXG4gIH07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGRvUmVmcmVzaCh0b2tlbklkOiBudW1iZXIpOiBQcm9taXNlPFJlZnJlc2hSZXN1bHQ+IHtcbiAgY29uc3QgdG9rZW4gPSBhd2FpdCBUb2tlbk1vZGVsLmZpbmRPbmUoXCJBXCIsIHsgaWQ6IHRva2VuSWQgfSk7XG4gIGlmICghdG9rZW4gfHwgdG9rZW4ucHJvdmlkZXIgIT09IFwib3BlbmFpXCIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYHRva2VuICR7dG9rZW5JZH0gbm90IGZvdW5kIG9yIG5vdCBvcGVuYWlgKTtcbiAgfVxuXG4gIGNvbnN0IGNyZWRzID0gdG9rZW4uY3JlZGVudGlhbHMgYXMgT3BlbkFJQ3JlZGVudGlhbHM7XG4gIGlmICghY3JlZHMucmVmcmVzaFRva2VuKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGB0b2tlbiAke3Rva2VuSWR9IGhhcyBubyByZWZyZXNoVG9rZW5gKTtcbiAgfVxuXG4gIGxvZ2dlci5pbmZvKGByZWZyZXNoaW5nIHRva2VuICR7dG9rZW4ubmFtZX0gKGlkPSR7dG9rZW5JZH0pYCk7XG5cbiAgY29uc3QgcmVzcCA9IGF3YWl0IGZldGNoKE9QRU5BSV9UT0tFTl9VUkwsIHtcbiAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRcIiB9LFxuICAgIGJvZHk6IG5ldyBVUkxTZWFyY2hQYXJhbXMoe1xuICAgICAgZ3JhbnRfdHlwZTogXCJyZWZyZXNoX3Rva2VuXCIsXG4gICAgICBjbGllbnRfaWQ6IE9QRU5BSV9DTElFTlRfSUQsXG4gICAgICByZWZyZXNoX3Rva2VuOiBjcmVkcy5yZWZyZXNoVG9rZW4sXG4gICAgfSksXG4gIH0pO1xuXG4gIGlmICghcmVzcC5vaykge1xuICAgIGNvbnN0IGJvZHkgPSBhd2FpdCByZXNwLnRleHQoKS5jYXRjaCgoKSA9PiBcIlwiKTtcbiAgICAvLyA0MDEg67O466y47J2YIGVycm9yIOy9lOuTnOqwgCDthqDtgbAg7IKs66ed7J2YIOqysOygleyggSDsgqzsnbjsnbTri6QuXG4gICAgLy8gICByZWZyZXNoX3Rva2VuX2V4cGlyZWQgICAgIOKGkiByZWZyZXNoX3Rva2VuIOyekOyytCDrp4zro4xcbiAgICAvLyAgIHJlZnJlc2hfdG9rZW5fcmV1c2VkICAgICAg4oaSIOydtOuvuCDsgqzsmqnrkJwo7ZqM7KCEIO2PkOq4sOuQnCkgcmVmcmVzaF90b2tlbiDsnqzsgqzsmqkg4oaSIO2MqOuwgOumrCDrrLTtmqjtmZRcbiAgICAvLyAgIHJlZnJlc2hfdG9rZW5faW52YWxpZGF0ZWQg4oaSIOyEnOuyhOy4oSByZXZva2VcbiAgICAvLyDsnIQgM+qwnOuKlCDrqqjrkZAg7JiB6rWsIOyLpO2MqC4g7J6s65Ox66GdIOyZuCDrs7Xqtawg67aI6rCALlxuICAgIGxldCBlcnJvckNvZGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICB0cnkge1xuICAgICAgZXJyb3JDb2RlID0gKEpTT04ucGFyc2UoYm9keSkgYXMgeyBlcnJvcj86IHN0cmluZyB9KS5lcnJvcjtcbiAgICB9IGNhdGNoIHt9XG4gICAgbG9nZ2VyLmVycm9yKFxuICAgICAgYE9wZW5BSSByZWZyZXNoIEZBSUxFRCB0b2tlbj0ke3Rva2VuLm5hbWV9KGlkPSR7dG9rZW5JZH0pIHN0YXR1cz0ke3Jlc3Auc3RhdHVzfSBgICtcbiAgICAgICAgYGNvZGU9JHtlcnJvckNvZGUgPz8gXCI/XCJ9IGJvZHk9JHtib2R5fWAsXG4gICAgKTtcbiAgICAvLyDsmIHqtawg7Iuk7Yyo64qUIGVycm9yQ29kZSDroZzrp4wg7YyQ7KCV7ZWc64ukIOKAlCBzdGF0dXMg66W8IO2VqOq7mCDsmpTqtaztlZjrqbQgcHJvdmlkZXIg6rCAXG4gICAgLy8g7IOB7YOc7L2U65Oc66W8IOuwlOq/gCDrlYwg7YyQ7KCV7J20IOyhsOyaqe2eiCDrqY7ripTri6QuXG4gICAgaWYgKGVycm9yQ29kZSAmJiBQRVJNQU5FTlRfRkFJTFVSRV9DT0RFUy5oYXMoZXJyb3JDb2RlKSkge1xuICAgICAgYXdhaXQgZGVhY3RpdmF0ZUF1dGhEZWFkVG9rZW4oXG4gICAgICAgIHsgaWQ6IHRva2VuSWQsIG5hbWU6IHRva2VuLm5hbWUsIHByb3ZpZGVyOiBcIm9wZW5haVwiIH0sXG4gICAgICAgIGNyZWRzLnJlZnJlc2hUb2tlbixcbiAgICAgICAgYG9wZW5haToke2Vycm9yQ29kZX1gLFxuICAgICAgKTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKGBPcGVuQUkgcmVmcmVzaCBmYWlsZWQ6ICR7cmVzcC5zdGF0dXN9ICR7Ym9keX1gKTtcbiAgfVxuXG4gIGNvbnN0IGRhdGEgPSAoYXdhaXQgcmVzcC5qc29uKCkpIGFzIHtcbiAgICBhY2Nlc3NfdG9rZW46IHN0cmluZztcbiAgICByZWZyZXNoX3Rva2VuPzogc3RyaW5nO1xuICAgIGV4cGlyZXNfaW4/OiBudW1iZXI7XG4gICAgaWRfdG9rZW4/OiBzdHJpbmc7XG4gIH07XG5cbiAgY29uc3QgbmV3UmVmcmVzaFRva2VuID0gZGF0YS5yZWZyZXNoX3Rva2VuID8/IGNyZWRzLnJlZnJlc2hUb2tlbjtcbiAgY29uc3Qgcm90YXRlZCA9XG4gICAgZGF0YS5yZWZyZXNoX3Rva2VuICE9PSBudWxsICYmXG4gICAgZGF0YS5yZWZyZXNoX3Rva2VuICE9PSB1bmRlZmluZWQgJiZcbiAgICBkYXRhLnJlZnJlc2hfdG9rZW4gIT09IGNyZWRzLnJlZnJlc2hUb2tlbjtcbiAgaWYgKHJvdGF0ZWQpIHtcbiAgICBsb2dnZXIuaW5mbyhgcmVmcmVzaF90b2tlbiByb3RhdGVkIGZvciB0b2tlbiAke3Rva2VuLm5hbWV9YCk7XG4gIH1cblxuICBjb25zdCB1cGRhdGVkQ3JlZHM6IE9wZW5BSUNyZWRlbnRpYWxzID0ge1xuICAgIC4uLmNyZWRzLFxuICAgIGFjY2Vzc1Rva2VuOiBkYXRhLmFjY2Vzc190b2tlbixcbiAgICByZWZyZXNoVG9rZW46IG5ld1JlZnJlc2hUb2tlbixcbiAgICBhY2Nlc3NUb2tlbkV4cGlyZXNBdDogZGF0YS5leHBpcmVzX2luXG4gICAgICA/IERhdGUubm93KCkgKyBkYXRhLmV4cGlyZXNfaW4gKiAxMDAwXG4gICAgICA6IGNyZWRzLmFjY2Vzc1Rva2VuRXhwaXJlc0F0LFxuICAgIC4uLihkYXRhLmlkX3Rva2VuID8geyBpZFRva2VuOiBkYXRhLmlkX3Rva2VuIH0gOiB7fSksXG4gIH07XG5cbiAgLy8g7ZqM7KCEKHJvdGF0ZWQp7J20IOydvOyWtOuCrOuKlOuNsCDsnbQgc2F2ZSDqsIAg7Iuk7Yyo7ZWY66m0LCBPcGVuQUkg7Kq9IOyYmyByZWZyZXNoX3Rva2VuIOydgCDsnbTrr7hcbiAgLy8g7Y+Q6riw65CcIOyDge2DnOyXkOyEnCBEQiDsl5DripQg7JibIO2GoO2BsOydtCDrgqjripTri6Qg4oaSIOuLpOydjCByZWZyZXNoIOqwgCByZWZyZXNoX3Rva2VuX3JldXNlZCDroZxcbiAgLy8g7JiB6rWsIOyCrOunnS4g7J20IOq1rOqwhCDsi6TtjKjripQg7Yag7YGwIOyCrOunneydmCDsp4HsoJEg7JuQ7J247J2066+A66GcIOuwmOuTnOyLnCDtgazqsowg64Ko6ri064ukLlxuICB0cnkge1xuICAgIGF3YWl0IFRva2VuTW9kZWwuc2F2ZShbXG4gICAgICB7XG4gICAgICAgIGlkOiB0b2tlbklkLFxuICAgICAgICBwcm92aWRlcjogXCJvcGVuYWlcIixcbiAgICAgICAgY3JlZGVudGlhbHM6IHVwZGF0ZWRDcmVkcyxcbiAgICAgICAgbmFtZTogdG9rZW4ubmFtZSxcbiAgICAgIH0sXG4gICAgXSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBsb2dnZXIuZXJyb3IoXG4gICAgICBgT3BlbkFJIHJlZnJlc2g6IERCIHNhdmUgRkFJTEVEIGFmdGVyIHJvdGF0aW9uKHJvdGF0ZWQ9JHtyb3RhdGVkfSkgYCArXG4gICAgICAgIGB0b2tlbj0ke3Rva2VuLm5hbWV9KGlkPSR7dG9rZW5JZH0pIOKAlCDsmJsgcmVmcmVzaF90b2tlbiDtj5DquLDrkKgsIERCIOuvuOuwmOyYgSDihpIg7Yag7YGwIOyCrOunnSDsnITtl5guIGVycj0ke1N0cmluZyhlKX1gLFxuICAgICk7XG4gICAgdGhyb3cgZTtcbiAgfVxuXG4gIGxvZ2dlci5pbmZvKGB0b2tlbiAke3Rva2VuLm5hbWV9IHJlZnJlc2hlZCBzdWNjZXNzZnVsbHkgKHJvdGF0ZWQ9JHtyb3RhdGVkfSlgKTtcblxuICByZXR1cm4ge1xuICAgIGFjY2Vzc1Rva2VuOiBkYXRhLmFjY2Vzc190b2tlbixcbiAgICBjaGF0Z3B0QWNjb3VudElkOiBjcmVkcy5hY2NvdW50SWQsXG4gICAgY2hhdGdwdFBsYW5UeXBlOiBjcmVkcy5wbGFuVHlwZSxcbiAgfTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQWNBLE1BQU0sU0FBUyxVQUFVLENBQUMsU0FBUyxnQkFBZ0IsQ0FBQztBQUtwRCxNQUFNLDBDQUEwQixJQUFJLElBQUk7Q0FDdEM7Q0FDQTtDQUNBO0FBQ0YsQ0FBQztBQUdELE1BQU0sa0NBQWtCLElBQUksSUFBb0M7QUFDaEUsTUFBTSxrQ0FBa0IsSUFBSSxJQUFvQjtBQUNoRCxNQUFNLDBCQUEwQjtBQVFoQyxlQUFzQiwrQkFBK0IsU0FBeUM7Q0FDNUYsT0FBTyxLQUFLLCtCQUErQixRQUFRLFFBQVEsUUFBUSxJQUFJLEVBQUU7Q0FDekUsTUFBTSxXQUFXLGdCQUFnQixJQUFJLE9BQU87Q0FDNUMsSUFBSSxVQUFVO0VBQ1osT0FBTyxLQUFLLDJCQUEyQixTQUFTO0VBQ2hELE9BQU87Q0FDVDtDQUVBLE1BQU0sU0FBUyxnQkFBZ0IsSUFBSSxPQUFPLEtBQUs7Q0FDL0MsSUFBSSxLQUFLLElBQUksSUFBSSxTQUFTLHlCQUF5QjtFQUNqRCxPQUFPLEtBQUssOEJBQThCLFFBQVEsZ0NBQWdDO0VBQ2xGLE9BQU8saUJBQWlCLE9BQU87Q0FDakM7Q0FFQSxnQkFBZ0IsSUFBSSxTQUFTLEtBQUssSUFBSSxDQUFDO0NBQ3ZDLE1BQU0s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
|
|
115
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbmFpLXJlZnJlc2guanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3V0aWxzL3Byb3ZpZGVycy9vcGVuYWkvb3BlbmFpLXJlZnJlc2gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBPcGVuQUkgY2hhdGdwdEF1dGhUb2tlbnMgcmVmcmVzaCBoYW5kbGVyLlxuICpcbiAqIC0gZGlyZWN0IEhUVFBTL1dTIHRyYW5zcG9ydOqwgCA0MDEgcmVmcmVzaOulvCDshozsnKDtlZjqs6Ag7KCA7J6l65CcIHJlZnJlc2ggdG9rZW7snLzroZwg6rCx7Iug7ZWoXG4gKiAtIHFncmlkIOqwgCBEQiDsnZggcmVmcmVzaF90b2tlbiDsnLzroZwg7IOIIGFjY2Vzc190b2tlbiDsnYQg67Cc6riJ67Cb7JWEIOydkeuLtVxuICogLSBwZXItdG9rZW4gaW5mbGlnaHQgcHJvbWlzZSDroZwgY29uY3VycmVudCByZWZyZXNoIGRlZHVwXG4gKiAtIHJvdGF0aW9uIOqwkOyngDog7IOIIHJlZnJlc2hfdG9rZW4g7J6I7Jy866m0IERCIOymieyLnCDsl4XrjbDsnbTtirhcbiAqL1xuaW1wb3J0IHsgZ2V0TG9nZ2VyIH0gZnJvbSBcIkBsb2d0YXBlL2xvZ3RhcGVcIjtcblxuaW1wb3J0IHsgZGVhY3RpdmF0ZUF1dGhEZWFkVG9rZW4gfSBmcm9tIFwiLi4vLi4vLi4vYXBwbGljYXRpb24vcWdyaWQvdG9rZW4tZGVhdGhcIjtcbmltcG9ydCB7IFRva2VuTW9kZWwgfSBmcm9tIFwiLi4vLi4vLi4vYXBwbGljYXRpb24vdG9rZW4vdG9rZW4ubW9kZWxcIjtcbmltcG9ydCB7IHR5cGUgT3BlbkFJQ3JlZGVudGlhbHMgfSBmcm9tIFwiLi4vLi4vLi4vYXBwbGljYXRpb24vdG9rZW4vdG9rZW4udHlwZXNcIjtcblxuY29uc3QgbG9nZ2VyID0gZ2V0TG9nZ2VyKFtcInFncmlkXCIsIFwib3BlbmFpLXJlZnJlc2hcIl0pO1xuXG5pbXBvcnQgeyBPUEVOQUlfQ0xJRU5UX0lELCBPUEVOQUlfVE9LRU5fVVJMIH0gZnJvbSBcIi4vb3BlbmFpLWNvbnN0YW50c1wiO1xuXG4vLyDsnqzroZzqt7jsnbgg7Jm4IOuzteq1rCDrtojqsIDtlZwgcmVmcmVzaCDsi6TtjKgg7L2U65OcLiDslrTripAg6rKD7J2065OgIO2GoO2BsOydtCDso73sl4jri6TripQg7ZmV7KCVIOyLoO2YuOuLpC5cbmNvbnN0IFBFUk1BTkVOVF9GQUlMVVJFX0NPREVTID0gbmV3IFNldChbXG4gIFwicmVmcmVzaF90b2tlbl9leHBpcmVkXCIsXG4gIFwicmVmcmVzaF90b2tlbl9yZXVzZWRcIixcbiAgXCJyZWZyZXNoX3Rva2VuX2ludmFsaWRhdGVkXCIsXG5dKTtcblxuLy8gcGVyLXRva2VuIGluZmxpZ2h0IHByb21pc2UgZGVkdXAgKyBtaW5pbXVtIGludGVydmFsXG5jb25zdCBpbmZsaWdodFJlZnJlc2ggPSBuZXcgTWFwPG51bWJlciwgUHJvbWlzZTxSZWZyZXNoUmVzdWx0Pj4oKTtcbmNvbnN0IGxhc3RSZWZyZXNoVGltZSA9IG5ldyBNYXA8bnVtYmVyLCBudW1iZXI+KCk7XG5jb25zdCBSRUZSRVNIX01JTl9JTlRFUlZBTF9NUyA9IDVfMDAwO1xuXG5pbnRlcmZhY2UgUmVmcmVzaFJlc3VsdCB7XG4gIGFjY2Vzc1Rva2VuOiBzdHJpbmc7XG4gIGNoYXRncHRBY2NvdW50SWQ6IHN0cmluZztcbiAgY2hhdGdwdFBsYW5UeXBlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaGFuZGxlQ2hhdGdwdEF1dGhUb2tlbnNSZWZyZXNoKHRva2VuSWQ6IG51bWJlcik6IFByb21pc2U8UmVmcmVzaFJlc3VsdD4ge1xuICBsb2dnZXIuaW5mbyhgcmVmcmVzaCByZXF1ZXN0ZWQgZm9yIHRva2VuICR7dG9rZW5JZH0gKHBpZD0ke3Byb2Nlc3MucGlkfSlgKTtcbiAgY29uc3QgZXhpc3RpbmcgPSBpbmZsaWdodFJlZnJlc2guZ2V0KHRva2VuSWQpO1xuICBpZiAoZXhpc3RpbmcpIHtcbiAgICBsb2dnZXIuaW5mbyhgcmVmcmVzaCBkZWR1cCBmb3IgdG9rZW4gJHt0b2tlbklkfWApO1xuICAgIHJldHVybiBleGlzdGluZztcbiAgfVxuXG4gIGNvbnN0IGxhc3RBdCA9IGxhc3RSZWZyZXNoVGltZS5nZXQodG9rZW5JZCkgPz8gMDtcbiAgaWYgKERhdGUubm93KCkgLSBsYXN0QXQgPCBSRUZSRVNIX01JTl9JTlRFUlZBTF9NUykge1xuICAgIGxvZ2dlci5pbmZvKGByZWZyZXNoIHRvbyBzb29uIGZvciB0b2tlbiAke3Rva2VuSWR9LCByZWFkaW5nIGN1cnJlbnQgY3JlZHMgZnJvbSBEQmApO1xuICAgIHJldHVybiByZWFkQ3VycmVudENyZWRzKHRva2VuSWQpO1xuICB9XG5cbiAgbGFzdFJlZnJlc2hUaW1lLnNldCh0b2tlbklkLCBEYXRlLm5vdygpKTtcbiAgY29uc3QgcHJvbWlzZSA9IGRvUmVmcmVzaCh0b2tlbklkKTtcbiAgaW5mbGlnaHRSZWZyZXNoLnNldCh0b2tlbklkLCBwcm9taXNlKTtcblxuICB0cnkge1xuICAgIHJldHVybiBhd2FpdCBwcm9taXNlO1xuICB9IGZpbmFsbHkge1xuICAgIGluZmxpZ2h0UmVmcmVzaC5kZWxldGUodG9rZW5JZCk7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gcmVhZEN1cnJlbnRDcmVkcyh0b2tlbklkOiBudW1iZXIpOiBQcm9taXNlPFJlZnJlc2hSZXN1bHQ+IHtcbiAgY29uc3QgdG9rZW4gPSBhd2FpdCBUb2tlbk1vZGVsLmZpbmRPbmUoXCJBXCIsIHsgaWQ6IHRva2VuSWQgfSk7XG4gIGlmICghdG9rZW4gfHwgdG9rZW4ucHJvdmlkZXIgIT09IFwib3BlbmFpXCIpIHRocm93IG5ldyBFcnJvcihgdG9rZW4gJHt0b2tlbklkfSBub3QgZm91bmRgKTtcbiAgY29uc3QgY3JlZHMgPSB0b2tlbi5jcmVkZW50aWFscyBhcyBPcGVuQUlDcmVkZW50aWFscztcbiAgcmV0dXJuIHtcbiAgICBhY2Nlc3NUb2tlbjogY3JlZHMuYWNjZXNzVG9rZW4sXG4gICAgY2hhdGdwdEFjY291bnRJZDogY3JlZHMuYWNjb3VudElkLFxuICAgIGNoYXRncHRQbGFuVHlwZTogY3JlZHMucGxhblR5cGUsXG4gIH07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGRvUmVmcmVzaCh0b2tlbklkOiBudW1iZXIpOiBQcm9taXNlPFJlZnJlc2hSZXN1bHQ+IHtcbiAgY29uc3QgdG9rZW4gPSBhd2FpdCBUb2tlbk1vZGVsLmZpbmRPbmUoXCJBXCIsIHsgaWQ6IHRva2VuSWQgfSk7XG4gIGlmICghdG9rZW4gfHwgdG9rZW4ucHJvdmlkZXIgIT09IFwib3BlbmFpXCIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYHRva2VuICR7dG9rZW5JZH0gbm90IGZvdW5kIG9yIG5vdCBvcGVuYWlgKTtcbiAgfVxuXG4gIGNvbnN0IGNyZWRzID0gdG9rZW4uY3JlZGVudGlhbHMgYXMgT3BlbkFJQ3JlZGVudGlhbHM7XG4gIGlmICghY3JlZHMucmVmcmVzaFRva2VuKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGB0b2tlbiAke3Rva2VuSWR9IGhhcyBubyByZWZyZXNoVG9rZW5gKTtcbiAgfVxuXG4gIGxvZ2dlci5pbmZvKGByZWZyZXNoaW5nIHRva2VuICR7dG9rZW4ubmFtZX0gKGlkPSR7dG9rZW5JZH0pYCk7XG5cbiAgY29uc3QgcmVzcCA9IGF3YWl0IGZldGNoKE9QRU5BSV9UT0tFTl9VUkwsIHtcbiAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgIC8vIO2GoO2BsCDsl5Trk5ztj6zsnbjtirjripQgT0F1dGgg7ZGc7KSAIGZvcm0g7J247L2U65SpIOqzhOyVveydhCDqsJXsoJztlZzri6QuIEpTT04g7Jy866GcIOuztOuCtOuptFxuICAgIC8vIGFjY2VzcyB0b2tlbiDrp4zro4wg7ZuE7J2YIOuqqOuToCByZWZyZXNoIOqwgCDqsbDrtoDrkJjslrQg7Yag7YGw7J20IO2GteynuOuhnCDso73ripTri6QuXG4gICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFwiIH0sXG4gICAgYm9keTogbmV3IFVSTFNlYXJjaFBhcmFtcyh7XG4gICAgICBncmFudF90eXBlOiBcInJlZnJlc2hfdG9rZW5cIixcbiAgICAgIGNsaWVudF9pZDogT1BFTkFJX0NMSUVOVF9JRCxcbiAgICAgIHJlZnJlc2hfdG9rZW46IGNyZWRzLnJlZnJlc2hUb2tlbixcbiAgICB9KSxcbiAgfSk7XG5cbiAgaWYgKCFyZXNwLm9rKSB7XG4gICAgY29uc3QgYm9keSA9IGF3YWl0IHJlc3AudGV4dCgpLmNhdGNoKCgpID0+IFwiXCIpO1xuICAgIC8vIDQwMSDrs7jrrLjsnZggZXJyb3Ig7L2U65Oc6rCAIO2GoO2BsCDsgqzrp53snZgg6rKw7KCV7KCBIOyCrOyduOydtOuLpC5cbiAgICAvLyAgIHJlZnJlc2hfdG9rZW5fZXhwaXJlZCAgICAg4oaSIHJlZnJlc2hfdG9rZW4g7J6Q7LK0IOunjOujjFxuICAgIC8vICAgcmVmcmVzaF90b2tlbl9yZXVzZWQgICAgICDihpIg7J2066+4IOyCrOyaqeuQnCjtmozsoIQg7Y+Q6riw65CcKSByZWZyZXNoX3Rva2VuIOyerOyCrOyaqSDihpIg7Yyo67CA66asIOustO2aqO2ZlFxuICAgIC8vICAgcmVmcmVzaF90b2tlbl9pbnZhbGlkYXRlZCDihpIg7ISc67KE7LihIHJldm9rZVxuICAgIC8vIOychCAz6rCc64qUIOuqqOuRkCDsmIHqtawg7Iuk7YyoLiDsnqzrk7HroZ0g7Jm4IOuzteq1rCDrtojqsIAuXG4gICAgbGV0IGVycm9yQ29kZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIHRyeSB7XG4gICAgICBlcnJvckNvZGUgPSAoSlNPTi5wYXJzZShib2R5KSBhcyB7IGVycm9yPzogc3RyaW5nIH0pLmVycm9yO1xuICAgIH0gY2F0Y2gge31cbiAgICBsb2dnZXIuZXJyb3IoXG4gICAgICBgT3BlbkFJIHJlZnJlc2ggRkFJTEVEIHRva2VuPSR7dG9rZW4ubmFtZX0oaWQ9JHt0b2tlbklkfSkgc3RhdHVzPSR7cmVzcC5zdGF0dXN9IGAgK1xuICAgICAgICBgY29kZT0ke2Vycm9yQ29kZSA/PyBcIj9cIn0gYm9keT0ke2JvZHl9YCxcbiAgICApO1xuICAgIC8vIOyYgeq1rCDsi6TtjKjripQgZXJyb3JDb2RlIOuhnOunjCDtjJDsoJXtlZzri6Qg4oCUIHN0YXR1cyDrpbwg7ZWo6ruYIOyalOq1rO2VmOuptCBwcm92aWRlciDqsIBcbiAgICAvLyDsg4Htg5zsvZTrk5zrpbwg67CU6r+AIOuVjCDtjJDsoJXsnbQg7KGw7Jqp7Z6IIOupjuuKlOuLpC5cbiAgICBpZiAoZXJyb3JDb2RlICYmIFBFUk1BTkVOVF9GQUlMVVJFX0NPREVTLmhhcyhlcnJvckNvZGUpKSB7XG4gICAgICBhd2FpdCBkZWFjdGl2YXRlQXV0aERlYWRUb2tlbihcbiAgICAgICAgeyBpZDogdG9rZW5JZCwgbmFtZTogdG9rZW4ubmFtZSwgcHJvdmlkZXI6IFwib3BlbmFpXCIgfSxcbiAgICAgICAgY3JlZHMucmVmcmVzaFRva2VuLFxuICAgICAgICBgb3BlbmFpOiR7ZXJyb3JDb2RlfWAsXG4gICAgICApO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoYE9wZW5BSSByZWZyZXNoIGZhaWxlZDogJHtyZXNwLnN0YXR1c30gJHtib2R5fWApO1xuICB9XG5cbiAgY29uc3QgZGF0YSA9IChhd2FpdCByZXNwLmpzb24oKSkgYXMge1xuICAgIGFjY2Vzc190b2tlbjogc3RyaW5nO1xuICAgIHJlZnJlc2hfdG9rZW4/OiBzdHJpbmc7XG4gICAgZXhwaXJlc19pbj86IG51bWJlcjtcbiAgICBpZF90b2tlbj86IHN0cmluZztcbiAgfTtcblxuICBjb25zdCBuZXdSZWZyZXNoVG9rZW4gPSBkYXRhLnJlZnJlc2hfdG9rZW4gPz8gY3JlZHMucmVmcmVzaFRva2VuO1xuICBjb25zdCByb3RhdGVkID1cbiAgICBkYXRhLnJlZnJlc2hfdG9rZW4gIT09IG51bGwgJiZcbiAgICBkYXRhLnJlZnJlc2hfdG9rZW4gIT09IHVuZGVmaW5lZCAmJlxuICAgIGRhdGEucmVmcmVzaF90b2tlbiAhPT0gY3JlZHMucmVmcmVzaFRva2VuO1xuICBpZiAocm90YXRlZCkge1xuICAgIGxvZ2dlci5pbmZvKGByZWZyZXNoX3Rva2VuIHJvdGF0ZWQgZm9yIHRva2VuICR7dG9rZW4ubmFtZX1gKTtcbiAgfVxuXG4gIGNvbnN0IHVwZGF0ZWRDcmVkczogT3BlbkFJQ3JlZGVudGlhbHMgPSB7XG4gICAgLi4uY3JlZHMsXG4gICAgYWNjZXNzVG9rZW46IGRhdGEuYWNjZXNzX3Rva2VuLFxuICAgIHJlZnJlc2hUb2tlbjogbmV3UmVmcmVzaFRva2VuLFxuICAgIGFjY2Vzc1Rva2VuRXhwaXJlc0F0OiBkYXRhLmV4cGlyZXNfaW5cbiAgICAgID8gRGF0ZS5ub3coKSArIGRhdGEuZXhwaXJlc19pbiAqIDEwMDBcbiAgICAgIDogY3JlZHMuYWNjZXNzVG9rZW5FeHBpcmVzQXQsXG4gICAgLi4uKGRhdGEuaWRfdG9rZW4gPyB7IGlkVG9rZW46IGRhdGEuaWRfdG9rZW4gfSA6IHt9KSxcbiAgfTtcblxuICAvLyDtmozsoIQocm90YXRlZCnsnbQg7J287Ja064Ks64qU642wIOydtCBzYXZlIOqwgCDsi6TtjKjtlZjrqbQsIE9wZW5BSSDsqr0g7JibIHJlZnJlc2hfdG9rZW4g7J2AIOydtOuvuFxuICAvLyDtj5DquLDrkJwg7IOB7YOc7JeQ7IScIERCIOyXkOuKlCDsmJsg7Yag7YGw7J20IOuCqOuKlOuLpCDihpIg64uk7J2MIHJlZnJlc2gg6rCAIHJlZnJlc2hfdG9rZW5fcmV1c2VkIOuhnFxuICAvLyDsmIHqtawg7IKs66edLiDsnbQg6rWs6rCEIOyLpO2MqOuKlCDthqDtgbAg7IKs66ed7J2YIOyngeygkSDsm5DsnbjsnbTrr4DroZwg67CY65Oc7IucIO2BrOqyjCDrgqjquLTri6QuXG4gIHRyeSB7XG4gICAgYXdhaXQgVG9rZW5Nb2RlbC5zYXZlKFtcbiAgICAgIHtcbiAgICAgICAgaWQ6IHRva2VuSWQsXG4gICAgICAgIHByb3ZpZGVyOiBcIm9wZW5haVwiLFxuICAgICAgICBjcmVkZW50aWFsczogdXBkYXRlZENyZWRzLFxuICAgICAgICBuYW1lOiB0b2tlbi5uYW1lLFxuICAgICAgfSxcbiAgICBdKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGxvZ2dlci5lcnJvcihcbiAgICAgIGBPcGVuQUkgcmVmcmVzaDogREIgc2F2ZSBGQUlMRUQgYWZ0ZXIgcm90YXRpb24ocm90YXRlZD0ke3JvdGF0ZWR9KSBgICtcbiAgICAgICAgYHRva2VuPSR7dG9rZW4ubmFtZX0oaWQ9JHt0b2tlbklkfSkg4oCUIOyYmyByZWZyZXNoX3Rva2VuIO2PkOq4sOuQqCwgREIg66+467CY7JiBIOKGkiDthqDtgbAg7IKs66edIOychO2XmC4gZXJyPSR7U3RyaW5nKGUpfWAsXG4gICAgKTtcbiAgICB0aHJvdyBlO1xuICB9XG5cbiAgbG9nZ2VyLmluZm8oYHRva2VuICR7dG9rZW4ubmFtZX0gcmVmcmVzaGVkIHN1Y2Nlc3NmdWxseSAocm90YXRlZD0ke3JvdGF0ZWR9KWApO1xuXG4gIHJldHVybiB7XG4gICAgYWNjZXNzVG9rZW46IGRhdGEuYWNjZXNzX3Rva2VuLFxuICAgIGNoYXRncHRBY2NvdW50SWQ6IGNyZWRzLmFjY291bnRJZCxcbiAgICBjaGF0Z3B0UGxhblR5cGU6IGNyZWRzLnBsYW5UeXBlLFxuICB9O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBY0EsTUFBTSxTQUFTLFVBQVUsQ0FBQyxTQUFTLGdCQUFnQixDQUFDO0FBS3BELE1BQU0sMENBQTBCLElBQUksSUFBSTtDQUN0QztDQUNBO0NBQ0E7QUFDRixDQUFDO0FBR0QsTUFBTSxrQ0FBa0IsSUFBSSxJQUFvQztBQUNoRSxNQUFNLGtDQUFrQixJQUFJLElBQW9CO0FBQ2hELE1BQU0sMEJBQTBCO0FBUWhDLGVBQXNCLCtCQUErQixTQUF5QztDQUM1RixPQUFPLEtBQUssK0JBQStCLFFBQVEsUUFBUSxRQUFRLElBQUksRUFBRTtDQUN6RSxNQUFNLFdBQVcsZ0JBQWdCLElBQUksT0FBTztDQUM1QyxJQUFJLFVBQVU7RUFDWixPQUFPLEtBQUssMkJBQTJCLFNB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
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { OpenAIProtocolError, normalizeOpenAIEvent } from "./openai-backend-protocol.js";
|
|
2
|
+
//#region src/utils/providers/openai/openai-sse.ts
|
|
3
|
+
function parseBlock(block) {
|
|
4
|
+
const data = [];
|
|
5
|
+
for (const line of block.replaceAll("\r\n", "\n").replaceAll("\r", "\n").split("\n")) {
|
|
6
|
+
if (line.startsWith(":")) continue;
|
|
7
|
+
const separator = line.indexOf(":");
|
|
8
|
+
const field = separator < 0 ? line : line.slice(0, separator);
|
|
9
|
+
let value = separator < 0 ? "" : line.slice(separator + 1);
|
|
10
|
+
if (value.startsWith(" ")) value = value.slice(1);
|
|
11
|
+
if (field === "data") data.push(value);
|
|
12
|
+
}
|
|
13
|
+
if (!data.length) return void 0;
|
|
14
|
+
const payload = data.join("\n");
|
|
15
|
+
if (payload === "[DONE]") return payload;
|
|
16
|
+
try {
|
|
17
|
+
return JSON.parse(payload);
|
|
18
|
+
} catch (error) {
|
|
19
|
+
throw new OpenAIProtocolError(`Invalid OpenAI SSE JSON: ${String(error)}`);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
/** Parses arbitrary UTF-8/chunk boundaries and all complete SSE event blocks. */
|
|
23
|
+
async function* parseOpenAISSE(body) {
|
|
24
|
+
const reader = body.getReader();
|
|
25
|
+
const decoder = new TextDecoder();
|
|
26
|
+
let buffer = "";
|
|
27
|
+
try {
|
|
28
|
+
while (true) {
|
|
29
|
+
const { done, value } = await reader.read();
|
|
30
|
+
buffer += decoder.decode(value, { stream: !done });
|
|
31
|
+
let match;
|
|
32
|
+
while (match = /\r\n\r\n|\n\n|\r\r/.exec(buffer)) {
|
|
33
|
+
const block = buffer.slice(0, match.index);
|
|
34
|
+
buffer = buffer.slice(match.index + match[0].length);
|
|
35
|
+
const parsed = parseBlock(block);
|
|
36
|
+
if (parsed !== void 0) yield parsed;
|
|
37
|
+
}
|
|
38
|
+
if (done) break;
|
|
39
|
+
}
|
|
40
|
+
if (buffer.trim()) {
|
|
41
|
+
const parsed = parseBlock(buffer);
|
|
42
|
+
if (parsed !== void 0) yield parsed;
|
|
43
|
+
}
|
|
44
|
+
} finally {
|
|
45
|
+
reader.releaseLock();
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/** Converts wire events and enforces exactly one successful terminal response. */
|
|
49
|
+
async function* normalizeOpenAISSE(body) {
|
|
50
|
+
let terminal = false;
|
|
51
|
+
for await (const raw of parseOpenAISSE(body)) {
|
|
52
|
+
if (raw === "[DONE]") {
|
|
53
|
+
if (!terminal) throw new OpenAIProtocolError("OpenAI stream ended before response.completed");
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
if (terminal) throw new OpenAIProtocolError("OpenAI stream emitted an event after termination");
|
|
57
|
+
const event = normalizeOpenAIEvent(raw);
|
|
58
|
+
if (!event) continue;
|
|
59
|
+
if (event.type === "error") {
|
|
60
|
+
terminal = true;
|
|
61
|
+
yield event;
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
if (event.type === "completed") terminal = true;
|
|
65
|
+
yield event;
|
|
66
|
+
}
|
|
67
|
+
if (!terminal) throw new OpenAIProtocolError("OpenAI SSE connection closed before a terminal event");
|
|
68
|
+
}
|
|
69
|
+
//#endregion
|
|
70
|
+
export { normalizeOpenAISSE, parseOpenAISSE };
|
|
71
|
+
|
|
72
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbmFpLXNzZS5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdXRpbHMvcHJvdmlkZXJzL29wZW5haS9vcGVuYWktc3NlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIG5vcm1hbGl6ZU9wZW5BSUV2ZW50LFxuICBPcGVuQUlQcm90b2NvbEVycm9yLFxuICB0eXBlIE9wZW5BSU5vcm1hbGl6ZWRFdmVudCxcbn0gZnJvbSBcIi4vb3BlbmFpLWJhY2tlbmQtcHJvdG9jb2xcIjtcblxuZXhwb3J0IGludGVyZmFjZSBPcGVuQUlFdmVudFN0cmVhbSBleHRlbmRzIEFzeW5jSXRlcmFibGU8T3BlbkFJTm9ybWFsaXplZEV2ZW50PiB7fVxuXG5mdW5jdGlvbiBwYXJzZUJsb2NrKGJsb2NrOiBzdHJpbmcpOiB1bmtub3duIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgZGF0YTogc3RyaW5nW10gPSBbXTtcbiAgZm9yIChjb25zdCBsaW5lIG9mIGJsb2NrLnJlcGxhY2VBbGwoXCJcXHJcXG5cIiwgXCJcXG5cIikucmVwbGFjZUFsbChcIlxcclwiLCBcIlxcblwiKS5zcGxpdChcIlxcblwiKSkge1xuICAgIGlmIChsaW5lLnN0YXJ0c1dpdGgoXCI6XCIpKSBjb250aW51ZTtcbiAgICBjb25zdCBzZXBhcmF0b3IgPSBsaW5lLmluZGV4T2YoXCI6XCIpO1xuICAgIGNvbnN0IGZpZWxkID0gc2VwYXJhdG9yIDwgMCA/IGxpbmUgOiBsaW5lLnNsaWNlKDAsIHNlcGFyYXRvcik7XG4gICAgbGV0IHZhbHVlID0gc2VwYXJhdG9yIDwgMCA/IFwiXCIgOiBsaW5lLnNsaWNlKHNlcGFyYXRvciArIDEpO1xuICAgIGlmICh2YWx1ZS5zdGFydHNXaXRoKFwiIFwiKSkgdmFsdWUgPSB2YWx1ZS5zbGljZSgxKTtcbiAgICBpZiAoZmllbGQgPT09IFwiZGF0YVwiKSBkYXRhLnB1c2godmFsdWUpO1xuICB9XG4gIGlmICghZGF0YS5sZW5ndGgpIHJldHVybiB1bmRlZmluZWQ7XG4gIGNvbnN0IHBheWxvYWQgPSBkYXRhLmpvaW4oXCJcXG5cIik7XG4gIGlmIChwYXlsb2FkID09PSBcIltET05FXVwiKSByZXR1cm4gcGF5bG9hZDtcbiAgdHJ5IHtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShwYXlsb2FkKSBhcyB1bmtub3duO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHRocm93IG5ldyBPcGVuQUlQcm90b2NvbEVycm9yKGBJbnZhbGlkIE9wZW5BSSBTU0UgSlNPTjogJHtTdHJpbmcoZXJyb3IpfWApO1xuICB9XG59XG5cbi8qKiBQYXJzZXMgYXJiaXRyYXJ5IFVURi04L2NodW5rIGJvdW5kYXJpZXMgYW5kIGFsbCBjb21wbGV0ZSBTU0UgZXZlbnQgYmxvY2tzLiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uKiBwYXJzZU9wZW5BSVNTRShib2R5OiBSZWFkYWJsZVN0cmVhbTxVaW50OEFycmF5Pik6IEFzeW5jR2VuZXJhdG9yPHVua25vd24+IHtcbiAgY29uc3QgcmVhZGVyID0gYm9keS5nZXRSZWFkZXIoKTtcbiAgY29uc3QgZGVjb2RlciA9IG5ldyBUZXh0RGVjb2RlcigpO1xuICBsZXQgYnVmZmVyID0gXCJcIjtcbiAgdHJ5IHtcbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgY29uc3QgeyBkb25lLCB2YWx1ZSB9ID0gYXdhaXQgcmVhZGVyLnJlYWQoKTtcbiAgICAgIGJ1ZmZlciArPSBkZWNvZGVyLmRlY29kZSh2YWx1ZSwgeyBzdHJlYW06ICFkb25lIH0pO1xuICAgICAgbGV0IG1hdGNoOiBSZWdFeHBFeGVjQXJyYXkgfCBudWxsO1xuICAgICAgd2hpbGUgKChtYXRjaCA9IC9cXHJcXG5cXHJcXG58XFxuXFxufFxcclxcci8uZXhlYyhidWZmZXIpKSkge1xuICAgICAgICBjb25zdCBibG9jayA9IGJ1ZmZlci5zbGljZSgwLCBtYXRjaC5pbmRleCk7XG4gICAgICAgIGJ1ZmZlciA9IGJ1ZmZlci5zbGljZShtYXRjaC5pbmRleCArIG1hdGNoWzBdLmxlbmd0aCk7XG4gICAgICAgIGNvbnN0IHBhcnNlZCA9IHBhcnNlQmxvY2soYmxvY2spO1xuICAgICAgICBpZiAocGFyc2VkICE9PSB1bmRlZmluZWQpIHlpZWxkIHBhcnNlZDtcbiAgICAgIH1cbiAgICAgIGlmIChkb25lKSBicmVhaztcbiAgICB9XG4gICAgaWYgKGJ1ZmZlci50cmltKCkpIHtcbiAgICAgIGNvbnN0IHBhcnNlZCA9IHBhcnNlQmxvY2soYnVmZmVyKTtcbiAgICAgIGlmIChwYXJzZWQgIT09IHVuZGVmaW5lZCkgeWllbGQgcGFyc2VkO1xuICAgIH1cbiAgfSBmaW5hbGx5IHtcbiAgICByZWFkZXIucmVsZWFzZUxvY2soKTtcbiAgfVxufVxuXG4vKiogQ29udmVydHMgd2lyZSBldmVudHMgYW5kIGVuZm9yY2VzIGV4YWN0bHkgb25lIHN1Y2Nlc3NmdWwgdGVybWluYWwgcmVzcG9uc2UuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24qIG5vcm1hbGl6ZU9wZW5BSVNTRShcbiAgYm9keTogUmVhZGFibGVTdHJlYW08VWludDhBcnJheT4sXG4pOiBBc3luY0dlbmVyYXRvcjxPcGVuQUlOb3JtYWxpemVkRXZlbnQ+IHtcbiAgbGV0IHRlcm1pbmFsID0gZmFsc2U7XG4gIGZvciBhd2FpdCAoY29uc3QgcmF3IG9mIHBhcnNlT3BlbkFJU1NFKGJvZHkpKSB7XG4gICAgaWYgKHJhdyA9PT0gXCJbRE9ORV1cIikge1xuICAgICAgaWYgKCF0ZXJtaW5hbCkgdGhyb3cgbmV3IE9wZW5BSVByb3RvY29sRXJyb3IoXCJPcGVuQUkgc3RyZWFtIGVuZGVkIGJlZm9yZSByZXNwb25zZS5jb21wbGV0ZWRcIik7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0ZXJtaW5hbCkgdGhyb3cgbmV3IE9wZW5BSVByb3RvY29sRXJyb3IoXCJPcGVuQUkgc3RyZWFtIGVtaXR0ZWQgYW4gZXZlbnQgYWZ0ZXIgdGVybWluYXRpb25cIik7XG4gICAgY29uc3QgZXZlbnQgPSBub3JtYWxpemVPcGVuQUlFdmVudChyYXcpO1xuICAgIGlmICghZXZlbnQpIGNvbnRpbnVlO1xuICAgIGlmIChldmVudC50eXBlID09PSBcImVycm9yXCIpIHtcbiAgICAgIHRlcm1pbmFsID0gdHJ1ZTtcbiAgICAgIHlpZWxkIGV2ZW50O1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoZXZlbnQudHlwZSA9PT0gXCJjb21wbGV0ZWRcIikgdGVybWluYWwgPSB0cnVlO1xuICAgIHlpZWxkIGV2ZW50O1xuICB9XG4gIGlmICghdGVybWluYWwpXG4gICAgdGhyb3cgbmV3IE9wZW5BSVByb3RvY29sRXJyb3IoXCJPcGVuQUkgU1NFIGNvbm5lY3Rpb24gY2xvc2VkIGJlZm9yZSBhIHRlcm1pbmFsIGV2ZW50XCIpO1xufVxuIl0sIm1hcHBpbmdzIjoiOztBQVFBLFNBQVMsV0FBVyxPQUFvQztDQUN0RCxNQUFNLE9BQWlCLENBQUM7Q0FDeEIsS0FBSyxNQUFNLFFBQVEsTUFBTSxXQUFXLFFBQVEsSUFBSSxDQUFDLENBQUMsV0FBVyxNQUFNLElBQUksQ0FBQyxDQUFDLE1BQU0sSUFBSSxHQUFHO0VBQ3BGLElBQUksS0FBSyxXQUFXLEdBQUcsR0FBRztFQUMxQixNQUFNLFlBQVksS0FBSyxRQUFRLEdBQUc7RUFDbEMsTUFBTSxRQUFRLFlBQVksSUFBSSxPQUFPLEtBQUssTUFBTSxHQUFHLFNBQVM7RUFDNUQsSUFBSSxRQUFRLFlBQVksSUFBSSxLQUFLLEtBQUssTUFBTSxZQUFZLENBQUM7RUFDekQsSUFBSSxNQUFNLFdBQVcsR0FBRyxHQUFHLFFBQVEsTUFBTSxNQUFNLENBQUM7RUFDaEQsSUFBSSxVQUFVLFFBQVEsS0FBSyxLQUFLLEtBQUs7Q0FDdkM7Q0FDQSxJQUFJLENBQUMsS0FBSyxRQUFRLE9BQU87Q0FDekIsTUFBTSxVQUFVLEtBQUssS0FBSyxJQUFJO0NBQzlCLElBQUksWUFBWSxVQUFVLE9BQU87Q0FDakMsSUFBSTtFQUNGLE9BQU8sS0FBSyxNQUFNLE9BQU87Q0FDM0IsU0FBUyxPQUFPO0VBQ2QsTUFBTSxJQUFJLG9CQUFvQiw0QkFBNEIsT0FBTyxLQUFLLEdBQUc7Q0FDM0U7QUFDRjs7QUFHQSxnQkFBdUIsZUFBZSxNQUEyRDtDQUMvRixNQUFNLFNBQVMsS0FBSyxVQUFVO0NBQzlCLE1BQU0sVUFBVSxJQUFJLFlBQVk7Q0FDaEMsSUFBSSxTQUFTO0NBQ2IsSUFBSTtFQUNGLE9BQU8sTUFBTTtHQUNYLE1BQU0sRUFBRSxNQUFNLFVBQVUsTUFBTSxPQUFPLEtBQUs7R0FDMUMsVUFBVSxRQUFRLE9BQU8sT0FBTyxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUM7R0FDakQsSUFBSTtHQUNKLE9BQVEsUUFBUSxxQkFBcUIsS0FBSyxNQUFNLEdBQUk7SUFDbEQsTUFBTSxRQUFRLE9BQU8sTUFBTSxHQUFHLE1BQU0sS0FBSztJQUN6QyxTQUFTLE9BQU8sTUFBTSxNQUFNLFFBQVEsTUFBTSxFQUFFLENBQUMsTUFBTTtJQUNuRCxNQUFNLFNBQVMsV0FBVyxLQUFLO0lBQy9CLElBQUksV0FBVyxRQUFXLE1BQU07R0FDbEM7R0FDQSxJQUFJLE1BQU07RUFDWjtFQUNBLElBQUksT0FBTyxLQUFLLEdBQUc7R0FDakIsTUFBTSxTQUFTLFdBQVcsTUFBTTtHQUNoQyxJQUFJLFdBQVcsUUFBVyxNQUFNO0VBQ2xDO0NBQ0YsVUFBVTtFQUNSLE9BQU8sWUFBWTtDQUNyQjtBQUNGOztBQUdBLGdCQUF1QixtQkFDckIsTUFDdUM7Q0FDdkMsSUFBSSxXQUFXO0NBQ2YsV0FBVyxNQUFNLE9BQU8sZUFBZSxJQUFJLEdBQUc7RUFDNUMsSUFBSSxRQUFRLFVBQVU7R0FDcEIsSUFBSSxDQUFDLFVBQVUsTUFBTSxJQUFJLG9CQUFvQiwrQ0FBK0M7R0FDNUY7RUFDRjtFQUNBLElBQUksVUFBVSxNQUFNLElBQUksb0JBQW9CLGtEQUFrRDtFQUM5RixNQUFNLFFBQVEscUJBQXFCLEdBQUc7RUFDdEMsSUFBSSxDQUFDLE9BQU87RUFDWixJQUFJLE1BQU0sU0FBUyxTQUFTO0dBQzFCLFdBQVc7R0FDWCxNQUFNO0dBQ047RUFDRjtFQUNBLElBQUksTUFBTSxTQUFTLGFBQWEsV0FBVztFQUMzQyxNQUFNO0NBQ1I7Q0FDQSxJQUFJLENBQUMsVUFDSCxNQUFNLElBQUksb0JBQW9CLHNEQUFzRDtBQUN4RiJ9
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
//#region src/utils/providers/openai/openai-transport-config.ts
|
|
2
|
+
/**
|
|
3
|
+
* OpenAI 전송 방식 선택. 동시성 knob 은 없다 — direct 전환으로 요청은 Anthropic 과
|
|
4
|
+
* 동일하게 상한 없이 나가며, 상류 제한은 백엔드 응답이 진실이다.
|
|
5
|
+
*/
|
|
6
|
+
function resolveOpenAITransportKind(env = process.env) {
|
|
7
|
+
const transport = env.QGRID_OPENAI_TRANSPORT ?? "websocket";
|
|
8
|
+
if (transport !== "https" && transport !== "websocket") throw new Error(`Invalid QGRID_OPENAI_TRANSPORT value: ${transport}. Expected https or websocket.`);
|
|
9
|
+
return transport;
|
|
10
|
+
}
|
|
11
|
+
//#endregion
|
|
12
|
+
export { resolveOpenAITransportKind };
|
|
13
|
+
|
|
14
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbmFpLXRyYW5zcG9ydC1jb25maWcuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3V0aWxzL3Byb3ZpZGVycy9vcGVuYWkvb3BlbmFpLXRyYW5zcG9ydC1jb25maWcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgT3BlbkFJVHJhbnNwb3J0S2luZCA9IFwiaHR0cHNcIiB8IFwid2Vic29ja2V0XCI7XG5cbi8qKlxuICogT3BlbkFJIOyghOyGoSDrsKnsi50g7ISg7YOdLiDrj5nsi5zshLEga25vYiDsnYAg7JeG64ukIOKAlCBkaXJlY3Qg7KCE7ZmY7Jy866GcIOyalOyyreydgCBBbnRocm9waWMg6rO8XG4gKiDrj5nsnbztlZjqsowg7IOB7ZWcIOyXhuydtCDrgpjqsIDrqbAsIOyDgeulmCDsoJztlZzsnYAg67Cx7JeU65OcIOydkeuLteydtCDsp4Tsi6TsnbTri6QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlT3BlbkFJVHJhbnNwb3J0S2luZChcbiAgZW52OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWQ+ID0gcHJvY2Vzcy5lbnYsXG4pOiBPcGVuQUlUcmFuc3BvcnRLaW5kIHtcbiAgY29uc3QgdHJhbnNwb3J0ID0gZW52LlFHUklEX09QRU5BSV9UUkFOU1BPUlQgPz8gXCJ3ZWJzb2NrZXRcIjtcbiAgaWYgKHRyYW5zcG9ydCAhPT0gXCJodHRwc1wiICYmIHRyYW5zcG9ydCAhPT0gXCJ3ZWJzb2NrZXRcIikge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBJbnZhbGlkIFFHUklEX09QRU5BSV9UUkFOU1BPUlQgdmFsdWU6ICR7dHJhbnNwb3J0fS4gRXhwZWN0ZWQgaHR0cHMgb3Igd2Vic29ja2V0LmAsXG4gICAgKTtcbiAgfVxuICByZXR1cm4gdHJhbnNwb3J0O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7OztBQU1BLFNBQWdCLDJCQUNkLE1BQTBDLFFBQVEsS0FDN0I7Q0FDckIsTUFBTSxZQUFZLElBQUksMEJBQTBCO0NBQ2hELElBQUksY0FBYyxXQUFXLGNBQWMsYUFDekMsTUFBTSxJQUFJLE1BQ1IseUNBQXlDLFVBQVUsK0JBQ3JEO0NBRUYsT0FBTztBQUNUIn0=
|
|
@@ -114,30 +114,28 @@ describe("MonitFrame.monitLogs", () => {
|
|
|
114
114
|
|
|
115
115
|
it("piggybacks live vitals on every chunk, zeroed before dispatchers boot", async () => {
|
|
116
116
|
QgridDispatcher.openaiDispatcher = {
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
{ name: "openai/haze", count: 12 },
|
|
122
|
-
{ name: "openai/nk", count: 13 },
|
|
117
|
+
inFlight: 3,
|
|
118
|
+
quotaByToken: [
|
|
119
|
+
{ name: "openai/haze", usedPercent: 41, threshold: 80, blocked: false, resetsAt: null },
|
|
120
|
+
{ name: "openai/nk", usedPercent: null, threshold: null, blocked: false, resetsAt: null },
|
|
123
121
|
],
|
|
124
122
|
} as never;
|
|
125
123
|
QgridDispatcher.anthropicDispatcher = {
|
|
126
124
|
tokenCount: 8,
|
|
127
125
|
tokenNames: ["anthropic/haze", "anthropic/noa"],
|
|
126
|
+
inFlight: 2,
|
|
128
127
|
} as never;
|
|
129
128
|
try {
|
|
130
129
|
const chunk = await MonitFrame.monitLogs();
|
|
131
130
|
expect(chunk.vitals).toEqual({
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
{ name: "openai/haze", count: 12 },
|
|
137
|
-
{ name: "openai/nk", count: 13 },
|
|
131
|
+
openaiInFlight: 3,
|
|
132
|
+
openaiQuotaByToken: [
|
|
133
|
+
{ name: "openai/haze", usedPercent: 41, threshold: 80, blocked: false, resetsAt: null },
|
|
134
|
+
{ name: "openai/nk", usedPercent: null, threshold: null, blocked: false, resetsAt: null },
|
|
138
135
|
],
|
|
139
136
|
anthropicTokenCount: 8,
|
|
140
137
|
anthropicTokenNames: ["anthropic/haze", "anthropic/noa"],
|
|
138
|
+
anthropicInFlight: 2,
|
|
141
139
|
});
|
|
142
140
|
} finally {
|
|
143
141
|
QgridDispatcher.openaiDispatcher = null;
|
|
@@ -145,15 +143,15 @@ describe("MonitFrame.monitLogs", () => {
|
|
|
145
143
|
}
|
|
146
144
|
|
|
147
145
|
const empty = await MonitFrame.monitLogs();
|
|
148
|
-
expect(empty.vitals.
|
|
149
|
-
expect(empty.vitals.
|
|
146
|
+
expect(empty.vitals.openaiInFlight).toBe(0);
|
|
147
|
+
expect(empty.vitals.openaiQuotaByToken).toEqual([]);
|
|
150
148
|
expect(empty.vitals.anthropicTokenCount).toBe(0);
|
|
151
149
|
expect(empty.vitals.anthropicTokenNames).toEqual([]);
|
|
152
150
|
});
|
|
153
151
|
});
|
|
154
152
|
|
|
155
153
|
describe("MonitFrame.monitInfo", () => {
|
|
156
|
-
it("returns the active DB connection, server url, and
|
|
154
|
+
it("returns the active DB connection, server url, and permit capacity without secrets", async () => {
|
|
157
155
|
vi.stubEnv("HOST", "0.0.0.0");
|
|
158
156
|
vi.stubEnv("PORT", "45000");
|
|
159
157
|
vi.stubEnv("SONAMU_DB_HOST", "db.internal");
|
|
@@ -165,8 +163,7 @@ describe("MonitFrame.monitInfo", () => {
|
|
|
165
163
|
expect(info.serverUrl).toBe("http://0.0.0.0:45000");
|
|
166
164
|
expect(info.dbHost).toBe("db.internal");
|
|
167
165
|
expect(info.dbName).toBe("qgrid_dev");
|
|
168
|
-
expect(info.openai.
|
|
169
|
-
expect(info.openai.maxWorkersPerToken).toBeGreaterThanOrEqual(info.openai.minWorkersPerToken);
|
|
166
|
+
expect(["https", "websocket"]).toContain(info.openai.transport);
|
|
170
167
|
// allowlist — 연결 객체의 password/user 등은 절대 실리지 않는다.
|
|
171
168
|
expect(Object.keys(info).toSorted()).toEqual(["dbHost", "dbName", "openai", "serverUrl"]);
|
|
172
169
|
expect(JSON.stringify(info)).not.toContain("password");
|
|
@@ -6,10 +6,16 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { api, BaseFrameClass, DB } from "sonamu";
|
|
8
8
|
|
|
9
|
-
import {
|
|
9
|
+
import { resolveOpenAITransportKind } from "../../utils/providers/openai/openai-transport-config";
|
|
10
10
|
import { QgridDispatcher } from "../qgrid/qgrid.dispatcher";
|
|
11
|
+
import { RequestLogModel } from "../request-log/request-log.model";
|
|
11
12
|
import { monitLogBuffer } from "./log-buffer";
|
|
12
|
-
import {
|
|
13
|
+
import {
|
|
14
|
+
type MonitLogChunk,
|
|
15
|
+
type MonitServerInfo,
|
|
16
|
+
type MonitStats,
|
|
17
|
+
type MonitVitals,
|
|
18
|
+
} from "./monit.types";
|
|
13
19
|
|
|
14
20
|
// 응답당 엔트리 상한 — 폴링 클라이언트는 다음 폴에서 이어서 따라잡는다.
|
|
15
21
|
const RESPONSE_ENTRY_LIMIT = 1_000;
|
|
@@ -31,7 +37,7 @@ class MonitFrameClass extends BaseFrameClass {
|
|
|
31
37
|
// 프로세스 정적 정보 — 폴링 불필요, 페이지당 1회 조회.
|
|
32
38
|
@api({ httpMethod: "GET", clients: ["axios", "tanstack-query"] })
|
|
33
39
|
async monitInfo(): Promise<MonitServerInfo> {
|
|
34
|
-
const
|
|
40
|
+
const transport = resolveOpenAITransportKind();
|
|
35
41
|
const host = process.env.HOST ?? "localhost";
|
|
36
42
|
const port = process.env.PORT ?? "44900";
|
|
37
43
|
const conn = activeDbConnection();
|
|
@@ -39,24 +45,29 @@ class MonitFrameClass extends BaseFrameClass {
|
|
|
39
45
|
serverUrl: `http://${host}:${port}`,
|
|
40
46
|
dbHost: conn.host ?? "localhost",
|
|
41
47
|
dbName: conn.database ?? "qgrid",
|
|
42
|
-
openai: {
|
|
43
|
-
minWorkersPerToken: pool.minWorkersPerToken,
|
|
44
|
-
maxWorkersPerToken: pool.maxWorkersPerToken,
|
|
45
|
-
autoscale: pool.autoscale,
|
|
46
|
-
},
|
|
48
|
+
openai: { transport },
|
|
47
49
|
};
|
|
48
50
|
}
|
|
51
|
+
|
|
52
|
+
// 최근 1시간 provider 별 요청/오류/캐시 통계. vitals 와 달리 request_logs 를 타므로
|
|
53
|
+
// 분리된 endpoint 로 두고 웹에서 더 느슨한 주기로 폴링한다. 읽기 전용이며 request log 를
|
|
54
|
+
// 남기지 않는 monit 경계는 동일하다.
|
|
55
|
+
@api({ httpMethod: "GET", clients: ["axios", "tanstack-query"] })
|
|
56
|
+
async monitStats(): Promise<MonitStats> {
|
|
57
|
+
const windowMinutes = 60;
|
|
58
|
+
const since = new Date(Date.now() - windowMinutes * 60_000);
|
|
59
|
+
return { windowMinutes, providers: await RequestLogModel.providerStatsSince(since) };
|
|
60
|
+
}
|
|
49
61
|
}
|
|
50
62
|
|
|
51
63
|
// dispatcher 미초기화(부팅 직후) 시 0 으로 응답한다 — 가벼운 스냅샷이라 오류로 만들지 않는다.
|
|
52
64
|
function currentVitals(): MonitVitals {
|
|
53
65
|
return {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
openaiQueueLength: QgridDispatcher.openaiDispatcher?.queueLength ?? 0,
|
|
57
|
-
openaiWorkersByToken: QgridDispatcher.openaiDispatcher?.workerCountsByToken ?? [],
|
|
66
|
+
openaiInFlight: QgridDispatcher.openaiDispatcher?.inFlight ?? 0,
|
|
67
|
+
openaiQuotaByToken: QgridDispatcher.openaiDispatcher?.quotaByToken ?? [],
|
|
58
68
|
anthropicTokenCount: QgridDispatcher.anthropicDispatcher?.tokenCount ?? 0,
|
|
59
69
|
anthropicTokenNames: QgridDispatcher.anthropicDispatcher?.tokenNames ?? [],
|
|
70
|
+
anthropicInFlight: QgridDispatcher.anthropicDispatcher?.inFlight ?? 0,
|
|
60
71
|
};
|
|
61
72
|
}
|
|
62
73
|
|
|
@@ -15,17 +15,30 @@ export const MonitLogEntry = z.object({
|
|
|
15
15
|
});
|
|
16
16
|
export type MonitLogEntry = z.infer<typeof MonitLogEntry>;
|
|
17
17
|
|
|
18
|
-
// 폴링에 편승하는 라이브 카운트 — 깊은
|
|
19
|
-
// 여기는 "지금 몇 개
|
|
18
|
+
// 폴링에 편승하는 라이브 카운트 — 깊은 토큰 진단은 audit 대시보드(별도)의 몫이고,
|
|
19
|
+
// 여기는 "지금 요청이 몇 개 나가 있고 쿼터가 얼마나 찼나"만 가볍게 답한다.
|
|
20
20
|
export const MonitVitals = z.object({
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
21
|
+
// 지금 나가 있는 동시 요청 수 — 상한 없음(Anthropic 과 동일한 stateless 실행 모델).
|
|
22
|
+
// 토큰별 숫자는 노출하지 않는다: Anthropic 칩과 동일하게 이름 나열이 기본이고,
|
|
23
|
+
// 토큰 단위로 의미 있는 상태는 쿼터 스냅샷이 맡는다.
|
|
24
|
+
openaiInFlight: z.number(),
|
|
25
|
+
// 토큰별 쿼터 스냅샷 — dispatcher 의 60초 rate-limits 캐시에서만 읽는다(비신선이면 null).
|
|
26
|
+
// threshold 미설정 토큰은 쿼터 판정을 돌지 않아 usedPercent 가 계속 null 일 수 있다.
|
|
27
|
+
openaiQuotaByToken: z.array(
|
|
28
|
+
z.object({
|
|
29
|
+
name: z.string(),
|
|
30
|
+
usedPercent: z.number().nullable(),
|
|
31
|
+
threshold: z.number().nullable(),
|
|
32
|
+
blocked: z.boolean(),
|
|
33
|
+
// ms epoch — dispatcher 가 wham 의 unix 초를 정규화해서 내려준다
|
|
34
|
+
resetsAt: z.number().nullable(),
|
|
35
|
+
}),
|
|
36
|
+
),
|
|
26
37
|
anthropicTokenCount: z.number(),
|
|
27
|
-
// fresh-spawn 이라
|
|
38
|
+
// fresh-spawn 이라 상주 프로세스가 없다 — 풀에 어떤 토큰이 있는지만 보여준다
|
|
28
39
|
anthropicTokenNames: z.array(z.string()),
|
|
40
|
+
// 지금 실행 중인 Claude Code 프로세스 수
|
|
41
|
+
anthropicInFlight: z.number(),
|
|
29
42
|
});
|
|
30
43
|
export type MonitVitals = z.infer<typeof MonitVitals>;
|
|
31
44
|
|
|
@@ -45,10 +58,26 @@ export const MonitServerInfo = z.object({
|
|
|
45
58
|
serverUrl: z.string(),
|
|
46
59
|
dbHost: z.string(),
|
|
47
60
|
dbName: z.string(),
|
|
61
|
+
// permit/큐 제거 후 남은 정적 설정은 전송 방식뿐이다. 동시성 상한은 없다.
|
|
48
62
|
openai: z.object({
|
|
49
|
-
|
|
50
|
-
maxWorkersPerToken: z.number(),
|
|
51
|
-
autoscale: z.boolean(),
|
|
63
|
+
transport: z.string(),
|
|
52
64
|
}),
|
|
53
65
|
});
|
|
54
66
|
export type MonitServerInfo = z.infer<typeof MonitServerInfo>;
|
|
67
|
+
|
|
68
|
+
// 최근 1시간 provider 별 요청 통계 — request_logs 를 집계한다. vitals 와 달리 DB 를
|
|
69
|
+
// 타므로 별도 endpoint 로 분리해 더 느슨한 주기로 폴링한다.
|
|
70
|
+
export const MonitProviderStats = z.object({
|
|
71
|
+
provider: z.string(), // "openai" | "anthropic" | "unknown"
|
|
72
|
+
requests: z.number(),
|
|
73
|
+
errors: z.number(),
|
|
74
|
+
inputTokens: z.number(),
|
|
75
|
+
cacheReadTokens: z.number(),
|
|
76
|
+
});
|
|
77
|
+
export type MonitProviderStats = z.infer<typeof MonitProviderStats>;
|
|
78
|
+
|
|
79
|
+
export const MonitStats = z.object({
|
|
80
|
+
windowMinutes: z.number(),
|
|
81
|
+
providers: z.array(MonitProviderStats),
|
|
82
|
+
});
|
|
83
|
+
export type MonitStats = z.infer<typeof MonitStats>;
|