@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.
Files changed (1337) hide show
  1. package/README.ko.md +3 -2
  2. package/README.md +3 -2
  3. package/bundle/dist/_virtual/_rolldown/runtime.js +20 -1
  4. package/bundle/dist/application/monit/monit.frame.js +27 -14
  5. package/bundle/dist/application/monit/monit.types.js +22 -13
  6. package/bundle/dist/application/qgrid/conv-routing.js +21 -11
  7. package/bundle/dist/application/qgrid/oauth.js +1 -1
  8. package/bundle/dist/application/qgrid/qgrid-run-lifecycle.js +15 -4
  9. package/bundle/dist/application/qgrid/qgrid.dispatcher.js +34 -14
  10. package/bundle/dist/application/qgrid/qgrid.frame.js +50 -73
  11. package/bundle/dist/application/qgrid/qgrid.types.js +4 -1
  12. package/bundle/dist/application/qgrid/schema-prompt.js +240 -0
  13. package/bundle/dist/application/qgrid/token-subscriber.js +5 -5
  14. package/bundle/dist/application/qgrid/tool-emulation-schema.js +13 -1
  15. package/bundle/dist/application/qgrid/tool-emulation.js +8 -6
  16. package/bundle/dist/application/queries.generated.js +3 -1
  17. package/bundle/dist/application/request-log/json-schema-type-text.js +55 -0
  18. package/bundle/dist/application/request-log/request-log.model.js +85 -3
  19. package/bundle/dist/application/request-log/request-log.types.js +3 -2
  20. package/bundle/dist/application/request-log/zod-code-format.js +71 -0
  21. package/bundle/dist/application/setting/setting.constant.js +2 -62
  22. package/bundle/dist/application/setting/setting.model.js +3 -3
  23. package/bundle/dist/application/setting/setting.store.js +2 -2
  24. package/bundle/dist/application/sonamu.generated.js +11 -4
  25. package/bundle/dist/application/sonamu.generated.sso.js +7 -3
  26. package/bundle/dist/i18n/sd.generated.js +5 -2
  27. package/bundle/dist/migrations/20260814130113_alter_request_logs_add1_alter1.js +15 -0
  28. package/bundle/dist/migrations/20260814131051_alter_request_logs_add1_alter1.js +15 -0
  29. package/bundle/dist/migrations/20260814134846_alter_request_logs_add1_alter1.js +15 -0
  30. package/bundle/dist/migrations/20260814140759_alter_request_logs_alter1.js +13 -0
  31. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/2020.js +112 -0
  32. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/codegen/code.js +140 -0
  33. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/codegen/index.js +676 -0
  34. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/codegen/scope.js +143 -0
  35. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/errors.js +104 -0
  36. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/index.js +225 -0
  37. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/names.js +30 -0
  38. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/ref_error.js +20 -0
  39. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/resolve.js +135 -0
  40. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/rules.js +63 -0
  41. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/util.js +148 -0
  42. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/validate/applicability.js +25 -0
  43. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/validate/boolSchema.js +50 -0
  44. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/validate/dataType.js +174 -0
  45. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/validate/defaults.js +33 -0
  46. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/validate/index.js +435 -0
  47. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/validate/keyword.js +115 -0
  48. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/compile/validate/subschema.js +74 -0
  49. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/core.js +585 -0
  50. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/refs/data.js +20 -0
  51. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/refs/json-schema-2020-12/index.js +44 -0
  52. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/refs/json-schema-2020-12/meta/applicator.js +52 -0
  53. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/refs/json-schema-2020-12/meta/content.js +22 -0
  54. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/refs/json-schema-2020-12/meta/core.js +53 -0
  55. 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
  56. 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
  57. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/refs/json-schema-2020-12/meta/unevaluated.js +21 -0
  58. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/refs/json-schema-2020-12/meta/validation.js +87 -0
  59. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/refs/json-schema-2020-12/schema.js +61 -0
  60. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/runtime/equal.js +14 -0
  61. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/runtime/ucs2length.js +27 -0
  62. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/runtime/uri.js +14 -0
  63. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/runtime/validation_error.js +18 -0
  64. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js +59 -0
  65. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js +98 -0
  66. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/allOf.js +31 -0
  67. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/anyOf.js +18 -0
  68. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/contains.js +91 -0
  69. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/dependencies.js +89 -0
  70. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/dependentSchemas.js +18 -0
  71. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/if.js +64 -0
  72. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/index.js +62 -0
  73. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/items.js +61 -0
  74. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/items2020.js +36 -0
  75. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/not.js +33 -0
  76. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/oneOf.js +53 -0
  77. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js +63 -0
  78. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js +19 -0
  79. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/properties.js +54 -0
  80. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js +43 -0
  81. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/applicator/thenElse.js +19 -0
  82. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/code.js +132 -0
  83. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/core/id.js +16 -0
  84. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/core/index.js +24 -0
  85. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/core/ref.js +114 -0
  86. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/discriminator/index.js +103 -0
  87. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/discriminator/types.js +16 -0
  88. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/draft2020.js +37 -0
  89. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/dynamic/dynamicAnchor.js +48 -0
  90. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/dynamic/dynamicRef.js +47 -0
  91. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/dynamic/index.js +24 -0
  92. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/dynamic/recursiveAnchor.js +22 -0
  93. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/dynamic/recursiveRef.js +17 -0
  94. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/format/format.js +94 -0
  95. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/format/index.js +12 -0
  96. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/metadata.js +25 -0
  97. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/next.js +21 -0
  98. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/unevaluated/index.js +15 -0
  99. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedItems.js +48 -0
  100. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedProperties.js +61 -0
  101. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/const.js +29 -0
  102. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/dependentRequired.js +19 -0
  103. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/enum.js +51 -0
  104. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/index.js +50 -0
  105. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/limitContains.js +20 -0
  106. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/limitItems.js +30 -0
  107. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/limitLength.js +35 -0
  108. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/limitNumber.js +49 -0
  109. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/limitProperties.js +30 -0
  110. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/multipleOf.js +29 -0
  111. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/pattern.js +40 -0
  112. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/required.js +74 -0
  113. package/bundle/dist/node_modules/.pnpm/ajv@8.20.0/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js +72 -0
  114. package/bundle/dist/node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal/index.js +35 -0
  115. package/bundle/dist/node_modules/.pnpm/fast-uri@3.1.0/node_modules/fast-uri/index.js +238 -0
  116. package/bundle/dist/node_modules/.pnpm/fast-uri@3.1.0/node_modules/fast-uri/lib/schemes.js +189 -0
  117. package/bundle/dist/node_modules/.pnpm/fast-uri@3.1.0/node_modules/fast-uri/lib/utils.js +284 -0
  118. package/bundle/dist/node_modules/.pnpm/json-schema-traverse@1.0.0/node_modules/json-schema-traverse/index.js +80 -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_vi_3892b4338df694f79f7d384fad23d930/node_modules/vitest/dist/chunks/_commonjsHelpers.D26ty3Ew.js +9 -0
  120. 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
  121. 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
  122. 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
  123. 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
  124. 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
  125. 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
  126. 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
  127. 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
  128. package/bundle/dist/sonamu.config.js +10 -9
  129. package/bundle/dist/testing/schema-bench.js +0 -0
  130. package/bundle/dist/testing/setup-mocks.js +2 -2
  131. package/bundle/dist/utils/providers/anthropic/anthropic-dispatcher.js +14 -2
  132. package/bundle/dist/utils/providers/anthropic/claude-session.js +1 -1
  133. package/bundle/dist/utils/providers/anthropic/fence-strip.js +83 -0
  134. package/bundle/dist/utils/providers/anthropic/stream-json-adapter.js +3 -5
  135. package/bundle/dist/utils/providers/common/model-cost.js +1 -1
  136. package/bundle/dist/utils/providers/common/schema-validation.js +1 -1
  137. package/bundle/dist/utils/providers/openai/openai-backend-protocol.js +144 -0
  138. package/bundle/dist/utils/providers/openai/openai-constants.js +4 -2
  139. package/bundle/dist/utils/providers/openai/openai-direct-client.js +327 -0
  140. package/bundle/dist/utils/providers/openai/openai-dispatcher.js +358 -781
  141. package/bundle/dist/utils/providers/openai/openai-oauth.js +84 -0
  142. package/bundle/dist/utils/providers/openai/openai-quota.js +76 -5
  143. package/bundle/dist/utils/providers/openai/openai-refresh.js +3 -3
  144. package/bundle/dist/utils/providers/openai/openai-sse.js +72 -0
  145. package/bundle/dist/utils/providers/openai/openai-transport-config.js +14 -0
  146. package/bundle/src/application/monit/monit.frame.test.ts +14 -17
  147. package/bundle/src/application/monit/monit.frame.ts +23 -12
  148. package/bundle/src/application/monit/monit.types.ts +40 -11
  149. package/bundle/src/application/qgrid/conv-routing.test.ts +67 -0
  150. package/bundle/src/application/qgrid/conv-routing.ts +46 -12
  151. package/bundle/src/application/qgrid/qgrid-oauth-redirect.test.ts +92 -2
  152. package/bundle/src/application/qgrid/qgrid-run-lifecycle.test.ts +3 -0
  153. package/bundle/src/application/qgrid/qgrid-run-lifecycle.ts +15 -1
  154. package/bundle/src/application/qgrid/qgrid.dispatcher.test.ts +286 -40
  155. package/bundle/src/application/qgrid/qgrid.dispatcher.ts +58 -14
  156. package/bundle/src/application/qgrid/qgrid.frame.test.ts +120 -153
  157. package/bundle/src/application/qgrid/qgrid.frame.ts +57 -94
  158. package/bundle/src/application/qgrid/qgrid.types.ts +11 -4
  159. package/bundle/src/application/qgrid/schema-prompt.test.ts +166 -0
  160. package/bundle/src/application/qgrid/schema-prompt.ts +293 -0
  161. package/bundle/src/application/qgrid/token-subscriber.ts +4 -4
  162. package/bundle/src/application/qgrid/tool-emulation-schema.ts +1 -1
  163. package/bundle/src/application/qgrid/tool-emulation.test.ts +37 -0
  164. package/bundle/src/application/qgrid/tool-emulation.ts +19 -7
  165. package/bundle/src/application/queries.generated.ts +6 -0
  166. package/bundle/src/application/request-log/json-schema-type-text.test.ts +96 -0
  167. package/bundle/src/application/request-log/json-schema-type-text.ts +83 -0
  168. package/bundle/src/application/request-log/request-log.entity.json +147 -21
  169. package/bundle/src/application/request-log/request-log.model.ts +108 -0
  170. package/bundle/src/application/request-log/request-log.types.ts +2 -0
  171. package/bundle/src/application/request-log/zod-code-format.test.ts +31 -0
  172. package/bundle/src/application/request-log/zod-code-format.ts +73 -0
  173. package/bundle/src/application/setting/setting.constant.test.ts +22 -24
  174. package/bundle/src/application/setting/setting.constant.ts +2 -63
  175. package/bundle/src/application/setting/setting.entity.json +1 -1
  176. package/bundle/src/application/setting/setting.store.ts +1 -1
  177. package/bundle/src/application/sonamu.generated.http +20 -1
  178. package/bundle/src/application/sonamu.generated.sso.ts +4 -0
  179. package/bundle/src/application/sonamu.generated.ts +10 -0
  180. package/bundle/src/i18n/sd.generated.ts +6 -1
  181. package/bundle/src/migrations/20260814130113_alter_request_logs_add1_alter1.ts +15 -0
  182. package/bundle/src/migrations/20260814131051_alter_request_logs_add1_alter1.ts +15 -0
  183. package/bundle/src/migrations/20260814134846_alter_request_logs_add1_alter1.ts +15 -0
  184. package/bundle/src/migrations/20260814140759_alter_request_logs_alter1.ts +13 -0
  185. package/bundle/src/sonamu.config.ts +9 -13
  186. package/bundle/src/testing/schema-bench.test.ts +358 -0
  187. package/bundle/src/testing/schema-bench.ts +352 -0
  188. package/bundle/src/utils/providers/anthropic/anthropic-dispatcher.ts +17 -2
  189. package/bundle/src/utils/providers/anthropic/claude-session.ts +1 -3
  190. package/bundle/src/utils/providers/anthropic/fence-strip.test.ts +122 -0
  191. package/bundle/src/utils/providers/anthropic/fence-strip.ts +105 -0
  192. package/bundle/src/utils/providers/anthropic/stream-json-adapter.test.ts +1 -2
  193. package/bundle/src/utils/providers/anthropic/stream-json-adapter.ts +4 -11
  194. package/bundle/src/utils/providers/common/model-cost.ts +4 -9
  195. package/bundle/src/utils/providers/common/provider-dispatcher.ts +10 -8
  196. package/bundle/src/utils/providers/common/provider-types.ts +48 -0
  197. package/bundle/src/utils/providers/common/schema-validation.ts +1 -1
  198. package/bundle/src/utils/providers/openai/openai-backend-protocol.test.ts +106 -0
  199. package/bundle/src/utils/providers/openai/openai-backend-protocol.ts +255 -0
  200. package/bundle/src/utils/providers/openai/openai-constants.ts +2 -0
  201. package/bundle/src/utils/providers/openai/openai-direct-client.test.ts +610 -0
  202. package/bundle/src/utils/providers/openai/openai-direct-client.ts +478 -0
  203. package/bundle/src/utils/providers/openai/openai-dispatcher.test.ts +336 -1723
  204. package/bundle/src/utils/providers/openai/openai-dispatcher.ts +458 -1175
  205. package/bundle/src/utils/providers/openai/openai-oauth.test.ts +95 -0
  206. package/bundle/src/utils/providers/openai/openai-oauth.ts +141 -0
  207. package/bundle/src/utils/providers/openai/openai-quota.test.ts +80 -7
  208. package/bundle/src/utils/providers/openai/openai-quota.ts +105 -4
  209. package/bundle/src/utils/providers/openai/openai-refresh.test.ts +120 -0
  210. package/bundle/src/utils/providers/openai/openai-refresh.ts +3 -1
  211. package/bundle/src/utils/providers/openai/openai-sse.test.ts +52 -0
  212. package/bundle/src/utils/providers/openai/openai-sse.ts +79 -0
  213. package/bundle/src/utils/providers/openai/openai-transport-config.ts +17 -0
  214. package/bundle/web-dist/client/assets/index-BldeEvAK.css +1 -0
  215. package/bundle/web-dist/client/assets/index-DkAXPF9q.js +106 -0
  216. package/bundle/web-dist/client/assets/logs-DlI6OojL.js +1 -0
  217. package/bundle/web-dist/client/assets/monit-qap66dhi.js +1 -0
  218. package/bundle/web-dist/client/assets/routes-CV07Pzde.js +5 -0
  219. package/bundle/web-dist/client/assets/services.generated-CSW8bhCP.js +51 -0
  220. package/bundle/web-dist/client/assets/settings-CdYub4yo.js +1 -0
  221. package/bundle/web-dist/client/assets/show-DA1L8DVD.js +2 -0
  222. package/bundle/web-dist/client/assets/tokens-Dt3gfkwP.js +1 -0
  223. package/bundle/web-dist/client/assets/use-oauth-login-flow-Cwi0HtJY.js +1 -0
  224. package/bundle/web-dist/client/index.html +3 -3
  225. package/bundle/web-dist/server/assets/lazyRouteComponent-0y-znAfz.js +1856 -0
  226. package/bundle/web-dist/server/assets/logs-CJBbHM3_.js +481 -0
  227. package/bundle/web-dist/server/assets/monit-8WAsPETB.js +1670 -0
  228. package/bundle/web-dist/server/assets/plus-9das21ju.js +19 -0
  229. package/bundle/web-dist/server/assets/react-dom-zmEq8BVp.js +462 -0
  230. package/bundle/web-dist/server/assets/routes-B6bX3o41.js +2924 -0
  231. package/bundle/web-dist/server/assets/services.generated-DyPeBI00.js +23644 -0
  232. package/bundle/web-dist/server/assets/settings-D1u5WdpP.js +597 -0
  233. package/bundle/web-dist/server/assets/show-Cr7vwR0l.js +2861 -0
  234. package/bundle/web-dist/server/assets/tokens-BumM0gnH.js +441 -0
  235. package/bundle/web-dist/server/assets/use-oauth-login-flow-DmsHGOlx.js +160 -0
  236. package/bundle/web-dist/server/entry-server.generated.js +12 -12
  237. package/dist/cli.d.ts +10 -1
  238. package/dist/cli.js +1 -6
  239. package/package.json +3 -2
  240. package/skills/qgrid/SKILL.md +5 -5
  241. package/skills/qgrid/references/ai-sdk-provider-contract.md +36 -25
  242. package/skills/qgrid/references/anthropic-claude-code-runtime.md +31 -14
  243. package/skills/qgrid/references/cli-env-and-server-boot.md +6 -13
  244. package/skills/qgrid/references/decision-rationale.md +28 -26
  245. package/skills/qgrid/references/docs-workflow.md +1 -1
  246. package/skills/qgrid/references/openai-codex-runtime.md +39 -156
  247. package/skills/qgrid/references/prompt-cache-and-usage.md +35 -68
  248. package/skills/qgrid/references/provider-runtime-differences.md +18 -18
  249. package/skills/qgrid/references/repo-map.md +2 -2
  250. package/skills/qgrid/references/request-log-run-lifecycle.md +12 -2
  251. package/skills/qgrid/references/sonamu-api-web-flow.md +4 -0
  252. package/skills/qgrid/references/token-auth-quota-lifecycle.md +14 -24
  253. package/skills/qgrid/references/tool-calling-and-multiturn.md +19 -9
  254. package/skills/qgrid/references/verification-and-debugging.md +17 -15
  255. package/bundle/dist/codex-protocol/AgentPath.js +0 -1
  256. package/bundle/dist/codex-protocol/ApplyPatchApprovalParams.js +0 -1
  257. package/bundle/dist/codex-protocol/ApplyPatchApprovalResponse.js +0 -1
  258. package/bundle/dist/codex-protocol/AuthMode.js +0 -1
  259. package/bundle/dist/codex-protocol/ClientInfo.js +0 -1
  260. package/bundle/dist/codex-protocol/ClientNotification.js +0 -1
  261. package/bundle/dist/codex-protocol/ClientRequest.js +0 -1
  262. package/bundle/dist/codex-protocol/CollaborationMode.js +0 -1
  263. package/bundle/dist/codex-protocol/ContentItem.js +0 -1
  264. package/bundle/dist/codex-protocol/ConversationGitInfo.js +0 -1
  265. package/bundle/dist/codex-protocol/ConversationSummary.js +0 -1
  266. package/bundle/dist/codex-protocol/ExecCommandApprovalParams.js +0 -1
  267. package/bundle/dist/codex-protocol/ExecCommandApprovalResponse.js +0 -1
  268. package/bundle/dist/codex-protocol/ExecPolicyAmendment.js +0 -1
  269. package/bundle/dist/codex-protocol/FileChange.js +0 -1
  270. package/bundle/dist/codex-protocol/ForcedLoginMethod.js +0 -1
  271. package/bundle/dist/codex-protocol/FunctionCallOutputBody.js +0 -1
  272. package/bundle/dist/codex-protocol/FunctionCallOutputContentItem.js +0 -1
  273. package/bundle/dist/codex-protocol/FuzzyFileSearchMatchType.js +0 -1
  274. package/bundle/dist/codex-protocol/FuzzyFileSearchParams.js +0 -1
  275. package/bundle/dist/codex-protocol/FuzzyFileSearchResponse.js +0 -1
  276. package/bundle/dist/codex-protocol/FuzzyFileSearchResult.js +0 -1
  277. package/bundle/dist/codex-protocol/FuzzyFileSearchSessionCompletedNotification.js +0 -1
  278. package/bundle/dist/codex-protocol/FuzzyFileSearchSessionUpdatedNotification.js +0 -1
  279. package/bundle/dist/codex-protocol/GetAuthStatusParams.js +0 -1
  280. package/bundle/dist/codex-protocol/GetAuthStatusResponse.js +0 -1
  281. package/bundle/dist/codex-protocol/GetConversationSummaryParams.js +0 -1
  282. package/bundle/dist/codex-protocol/GetConversationSummaryResponse.js +0 -1
  283. package/bundle/dist/codex-protocol/GitDiffToRemoteParams.js +0 -1
  284. package/bundle/dist/codex-protocol/GitDiffToRemoteResponse.js +0 -1
  285. package/bundle/dist/codex-protocol/GitSha.js +0 -1
  286. package/bundle/dist/codex-protocol/ImageDetail.js +0 -1
  287. package/bundle/dist/codex-protocol/InitializeCapabilities.js +0 -1
  288. package/bundle/dist/codex-protocol/InitializeParams.js +0 -1
  289. package/bundle/dist/codex-protocol/InitializeResponse.js +0 -1
  290. package/bundle/dist/codex-protocol/InputModality.js +0 -1
  291. package/bundle/dist/codex-protocol/InternalSessionSource.js +0 -1
  292. package/bundle/dist/codex-protocol/LocalShellAction.js +0 -1
  293. package/bundle/dist/codex-protocol/LocalShellExecAction.js +0 -1
  294. package/bundle/dist/codex-protocol/LocalShellStatus.js +0 -1
  295. package/bundle/dist/codex-protocol/MessagePhase.js +0 -1
  296. package/bundle/dist/codex-protocol/ModeKind.js +0 -1
  297. package/bundle/dist/codex-protocol/NetworkPolicyAmendment.js +0 -1
  298. package/bundle/dist/codex-protocol/NetworkPolicyRuleAction.js +0 -1
  299. package/bundle/dist/codex-protocol/ParsedCommand.js +0 -1
  300. package/bundle/dist/codex-protocol/Personality.js +0 -1
  301. package/bundle/dist/codex-protocol/PlanType.js +0 -1
  302. package/bundle/dist/codex-protocol/RealtimeConversationVersion.js +0 -1
  303. package/bundle/dist/codex-protocol/RealtimeOutputModality.js +0 -1
  304. package/bundle/dist/codex-protocol/RealtimeVoice.js +0 -1
  305. package/bundle/dist/codex-protocol/RealtimeVoicesList.js +0 -1
  306. package/bundle/dist/codex-protocol/ReasoningEffort.js +0 -1
  307. package/bundle/dist/codex-protocol/ReasoningItemContent.js +0 -1
  308. package/bundle/dist/codex-protocol/ReasoningItemReasoningSummary.js +0 -1
  309. package/bundle/dist/codex-protocol/ReasoningSummary.js +0 -1
  310. package/bundle/dist/codex-protocol/RequestId.js +0 -1
  311. package/bundle/dist/codex-protocol/Resource.js +0 -1
  312. package/bundle/dist/codex-protocol/ResourceContent.js +0 -1
  313. package/bundle/dist/codex-protocol/ResourceTemplate.js +0 -1
  314. package/bundle/dist/codex-protocol/ResponseItem.js +0 -1
  315. package/bundle/dist/codex-protocol/ReviewDecision.js +0 -1
  316. package/bundle/dist/codex-protocol/ServerNotification.js +0 -1
  317. package/bundle/dist/codex-protocol/ServerRequest.js +0 -1
  318. package/bundle/dist/codex-protocol/SessionSource.js +0 -1
  319. package/bundle/dist/codex-protocol/Settings.js +0 -1
  320. package/bundle/dist/codex-protocol/SubAgentSource.js +0 -1
  321. package/bundle/dist/codex-protocol/ThreadId.js +0 -1
  322. package/bundle/dist/codex-protocol/ThreadMemoryMode.js +0 -1
  323. package/bundle/dist/codex-protocol/Tool.js +0 -1
  324. package/bundle/dist/codex-protocol/Verbosity.js +0 -1
  325. package/bundle/dist/codex-protocol/WebSearchAction.js +0 -1
  326. package/bundle/dist/codex-protocol/WebSearchContextSize.js +0 -1
  327. package/bundle/dist/codex-protocol/WebSearchLocation.js +0 -1
  328. package/bundle/dist/codex-protocol/WebSearchMode.js +0 -1
  329. package/bundle/dist/codex-protocol/WebSearchToolConfig.js +0 -1
  330. package/bundle/dist/codex-protocol/index.js +0 -2
  331. package/bundle/dist/codex-protocol/serde_json/JsonValue.js +0 -1
  332. package/bundle/dist/codex-protocol/v2/Account.js +0 -1
  333. package/bundle/dist/codex-protocol/v2/AccountLoginCompletedNotification.js +0 -1
  334. package/bundle/dist/codex-protocol/v2/AccountRateLimitsUpdatedNotification.js +0 -1
  335. package/bundle/dist/codex-protocol/v2/AccountUpdatedNotification.js +0 -1
  336. package/bundle/dist/codex-protocol/v2/ActivePermissionProfile.js +0 -1
  337. package/bundle/dist/codex-protocol/v2/ActivePermissionProfileModification.js +0 -1
  338. package/bundle/dist/codex-protocol/v2/AddCreditsNudgeCreditType.js +0 -1
  339. package/bundle/dist/codex-protocol/v2/AddCreditsNudgeEmailStatus.js +0 -1
  340. package/bundle/dist/codex-protocol/v2/AdditionalFileSystemPermissions.js +0 -1
  341. package/bundle/dist/codex-protocol/v2/AdditionalNetworkPermissions.js +0 -1
  342. package/bundle/dist/codex-protocol/v2/AdditionalPermissionProfile.js +0 -1
  343. package/bundle/dist/codex-protocol/v2/AgentMessageDeltaNotification.js +0 -1
  344. package/bundle/dist/codex-protocol/v2/AnalyticsConfig.js +0 -1
  345. package/bundle/dist/codex-protocol/v2/AppBranding.js +0 -1
  346. package/bundle/dist/codex-protocol/v2/AppInfo.js +0 -1
  347. package/bundle/dist/codex-protocol/v2/AppListUpdatedNotification.js +0 -1
  348. package/bundle/dist/codex-protocol/v2/AppMetadata.js +0 -1
  349. package/bundle/dist/codex-protocol/v2/AppReview.js +0 -1
  350. package/bundle/dist/codex-protocol/v2/AppScreenshot.js +0 -1
  351. package/bundle/dist/codex-protocol/v2/AppSummary.js +0 -1
  352. package/bundle/dist/codex-protocol/v2/AppToolApproval.js +0 -1
  353. package/bundle/dist/codex-protocol/v2/AppToolsConfig.js +0 -1
  354. package/bundle/dist/codex-protocol/v2/ApprovalsReviewer.js +0 -1
  355. package/bundle/dist/codex-protocol/v2/AppsConfig.js +0 -1
  356. package/bundle/dist/codex-protocol/v2/AppsDefaultConfig.js +0 -1
  357. package/bundle/dist/codex-protocol/v2/AppsListParams.js +0 -1
  358. package/bundle/dist/codex-protocol/v2/AppsListResponse.js +0 -1
  359. package/bundle/dist/codex-protocol/v2/AskForApproval.js +0 -1
  360. package/bundle/dist/codex-protocol/v2/AutoReviewDecisionSource.js +0 -1
  361. package/bundle/dist/codex-protocol/v2/ByteRange.js +0 -1
  362. package/bundle/dist/codex-protocol/v2/CancelLoginAccountParams.js +0 -1
  363. package/bundle/dist/codex-protocol/v2/CancelLoginAccountResponse.js +0 -1
  364. package/bundle/dist/codex-protocol/v2/CancelLoginAccountStatus.js +0 -1
  365. package/bundle/dist/codex-protocol/v2/ChatgptAuthTokensRefreshParams.js +0 -1
  366. package/bundle/dist/codex-protocol/v2/ChatgptAuthTokensRefreshReason.js +0 -1
  367. package/bundle/dist/codex-protocol/v2/ChatgptAuthTokensRefreshResponse.js +0 -1
  368. package/bundle/dist/codex-protocol/v2/CodexErrorInfo.js +0 -1
  369. package/bundle/dist/codex-protocol/v2/CollabAgentState.js +0 -1
  370. package/bundle/dist/codex-protocol/v2/CollabAgentStatus.js +0 -1
  371. package/bundle/dist/codex-protocol/v2/CollabAgentTool.js +0 -1
  372. package/bundle/dist/codex-protocol/v2/CollabAgentToolCallStatus.js +0 -1
  373. package/bundle/dist/codex-protocol/v2/CollaborationModeMask.js +0 -1
  374. package/bundle/dist/codex-protocol/v2/CommandAction.js +0 -1
  375. package/bundle/dist/codex-protocol/v2/CommandExecOutputDeltaNotification.js +0 -1
  376. package/bundle/dist/codex-protocol/v2/CommandExecOutputStream.js +0 -1
  377. package/bundle/dist/codex-protocol/v2/CommandExecParams.js +0 -1
  378. package/bundle/dist/codex-protocol/v2/CommandExecResizeParams.js +0 -1
  379. package/bundle/dist/codex-protocol/v2/CommandExecResizeResponse.js +0 -1
  380. package/bundle/dist/codex-protocol/v2/CommandExecResponse.js +0 -1
  381. package/bundle/dist/codex-protocol/v2/CommandExecTerminalSize.js +0 -1
  382. package/bundle/dist/codex-protocol/v2/CommandExecTerminateParams.js +0 -1
  383. package/bundle/dist/codex-protocol/v2/CommandExecTerminateResponse.js +0 -1
  384. package/bundle/dist/codex-protocol/v2/CommandExecWriteParams.js +0 -1
  385. package/bundle/dist/codex-protocol/v2/CommandExecWriteResponse.js +0 -1
  386. package/bundle/dist/codex-protocol/v2/CommandExecutionApprovalDecision.js +0 -1
  387. package/bundle/dist/codex-protocol/v2/CommandExecutionOutputDeltaNotification.js +0 -1
  388. package/bundle/dist/codex-protocol/v2/CommandExecutionRequestApprovalParams.js +0 -1
  389. package/bundle/dist/codex-protocol/v2/CommandExecutionRequestApprovalResponse.js +0 -1
  390. package/bundle/dist/codex-protocol/v2/CommandExecutionSource.js +0 -1
  391. package/bundle/dist/codex-protocol/v2/CommandExecutionStatus.js +0 -1
  392. package/bundle/dist/codex-protocol/v2/CommandMigration.js +0 -1
  393. package/bundle/dist/codex-protocol/v2/Config.js +0 -1
  394. package/bundle/dist/codex-protocol/v2/ConfigBatchWriteParams.js +0 -1
  395. package/bundle/dist/codex-protocol/v2/ConfigEdit.js +0 -1
  396. package/bundle/dist/codex-protocol/v2/ConfigLayer.js +0 -1
  397. package/bundle/dist/codex-protocol/v2/ConfigLayerMetadata.js +0 -1
  398. package/bundle/dist/codex-protocol/v2/ConfigLayerSource.js +0 -1
  399. package/bundle/dist/codex-protocol/v2/ConfigReadParams.js +0 -1
  400. package/bundle/dist/codex-protocol/v2/ConfigReadResponse.js +0 -1
  401. package/bundle/dist/codex-protocol/v2/ConfigRequirements.js +0 -1
  402. package/bundle/dist/codex-protocol/v2/ConfigRequirementsReadResponse.js +0 -1
  403. package/bundle/dist/codex-protocol/v2/ConfigValueWriteParams.js +0 -1
  404. package/bundle/dist/codex-protocol/v2/ConfigWarningNotification.js +0 -1
  405. package/bundle/dist/codex-protocol/v2/ConfigWriteResponse.js +0 -1
  406. package/bundle/dist/codex-protocol/v2/ConfiguredHookHandler.js +0 -1
  407. package/bundle/dist/codex-protocol/v2/ConfiguredHookMatcherGroup.js +0 -1
  408. package/bundle/dist/codex-protocol/v2/ContextCompactedNotification.js +0 -1
  409. package/bundle/dist/codex-protocol/v2/CreditsSnapshot.js +0 -1
  410. package/bundle/dist/codex-protocol/v2/DeprecationNoticeNotification.js +0 -1
  411. package/bundle/dist/codex-protocol/v2/DynamicToolCallOutputContentItem.js +0 -1
  412. package/bundle/dist/codex-protocol/v2/DynamicToolCallParams.js +0 -1
  413. package/bundle/dist/codex-protocol/v2/DynamicToolCallResponse.js +0 -1
  414. package/bundle/dist/codex-protocol/v2/DynamicToolCallStatus.js +0 -1
  415. package/bundle/dist/codex-protocol/v2/DynamicToolSpec.js +0 -1
  416. package/bundle/dist/codex-protocol/v2/ErrorNotification.js +0 -1
  417. package/bundle/dist/codex-protocol/v2/ExecPolicyAmendment.js +0 -1
  418. package/bundle/dist/codex-protocol/v2/ExperimentalFeature.js +0 -1
  419. package/bundle/dist/codex-protocol/v2/ExperimentalFeatureEnablementSetParams.js +0 -1
  420. package/bundle/dist/codex-protocol/v2/ExperimentalFeatureEnablementSetResponse.js +0 -1
  421. package/bundle/dist/codex-protocol/v2/ExperimentalFeatureListParams.js +0 -1
  422. package/bundle/dist/codex-protocol/v2/ExperimentalFeatureListResponse.js +0 -1
  423. package/bundle/dist/codex-protocol/v2/ExperimentalFeatureStage.js +0 -1
  424. package/bundle/dist/codex-protocol/v2/ExternalAgentConfigDetectParams.js +0 -1
  425. package/bundle/dist/codex-protocol/v2/ExternalAgentConfigDetectResponse.js +0 -1
  426. package/bundle/dist/codex-protocol/v2/ExternalAgentConfigImportCompletedNotification.js +0 -1
  427. package/bundle/dist/codex-protocol/v2/ExternalAgentConfigImportParams.js +0 -1
  428. package/bundle/dist/codex-protocol/v2/ExternalAgentConfigImportResponse.js +0 -1
  429. package/bundle/dist/codex-protocol/v2/ExternalAgentConfigMigrationItem.js +0 -1
  430. package/bundle/dist/codex-protocol/v2/ExternalAgentConfigMigrationItemType.js +0 -1
  431. package/bundle/dist/codex-protocol/v2/FeedbackUploadParams.js +0 -1
  432. package/bundle/dist/codex-protocol/v2/FeedbackUploadResponse.js +0 -1
  433. package/bundle/dist/codex-protocol/v2/FileChangeApprovalDecision.js +0 -1
  434. package/bundle/dist/codex-protocol/v2/FileChangeOutputDeltaNotification.js +0 -1
  435. package/bundle/dist/codex-protocol/v2/FileChangePatchUpdatedNotification.js +0 -1
  436. package/bundle/dist/codex-protocol/v2/FileChangeRequestApprovalParams.js +0 -1
  437. package/bundle/dist/codex-protocol/v2/FileChangeRequestApprovalResponse.js +0 -1
  438. package/bundle/dist/codex-protocol/v2/FileSystemAccessMode.js +0 -1
  439. package/bundle/dist/codex-protocol/v2/FileSystemPath.js +0 -1
  440. package/bundle/dist/codex-protocol/v2/FileSystemSandboxEntry.js +0 -1
  441. package/bundle/dist/codex-protocol/v2/FileSystemSpecialPath.js +0 -1
  442. package/bundle/dist/codex-protocol/v2/FileUpdateChange.js +0 -1
  443. package/bundle/dist/codex-protocol/v2/FsChangedNotification.js +0 -1
  444. package/bundle/dist/codex-protocol/v2/FsCopyParams.js +0 -1
  445. package/bundle/dist/codex-protocol/v2/FsCopyResponse.js +0 -1
  446. package/bundle/dist/codex-protocol/v2/FsCreateDirectoryParams.js +0 -1
  447. package/bundle/dist/codex-protocol/v2/FsCreateDirectoryResponse.js +0 -1
  448. package/bundle/dist/codex-protocol/v2/FsGetMetadataParams.js +0 -1
  449. package/bundle/dist/codex-protocol/v2/FsGetMetadataResponse.js +0 -1
  450. package/bundle/dist/codex-protocol/v2/FsReadDirectoryEntry.js +0 -1
  451. package/bundle/dist/codex-protocol/v2/FsReadDirectoryParams.js +0 -1
  452. package/bundle/dist/codex-protocol/v2/FsReadDirectoryResponse.js +0 -1
  453. package/bundle/dist/codex-protocol/v2/FsReadFileParams.js +0 -1
  454. package/bundle/dist/codex-protocol/v2/FsReadFileResponse.js +0 -1
  455. package/bundle/dist/codex-protocol/v2/FsRemoveParams.js +0 -1
  456. package/bundle/dist/codex-protocol/v2/FsRemoveResponse.js +0 -1
  457. package/bundle/dist/codex-protocol/v2/FsUnwatchParams.js +0 -1
  458. package/bundle/dist/codex-protocol/v2/FsUnwatchResponse.js +0 -1
  459. package/bundle/dist/codex-protocol/v2/FsWatchParams.js +0 -1
  460. package/bundle/dist/codex-protocol/v2/FsWatchResponse.js +0 -1
  461. package/bundle/dist/codex-protocol/v2/FsWriteFileParams.js +0 -1
  462. package/bundle/dist/codex-protocol/v2/FsWriteFileResponse.js +0 -1
  463. package/bundle/dist/codex-protocol/v2/GetAccountParams.js +0 -1
  464. package/bundle/dist/codex-protocol/v2/GetAccountRateLimitsResponse.js +0 -1
  465. package/bundle/dist/codex-protocol/v2/GetAccountResponse.js +0 -1
  466. package/bundle/dist/codex-protocol/v2/GitInfo.js +0 -1
  467. package/bundle/dist/codex-protocol/v2/GrantedPermissionProfile.js +0 -1
  468. package/bundle/dist/codex-protocol/v2/GuardianApprovalReview.js +0 -1
  469. package/bundle/dist/codex-protocol/v2/GuardianApprovalReviewAction.js +0 -1
  470. package/bundle/dist/codex-protocol/v2/GuardianApprovalReviewStatus.js +0 -1
  471. package/bundle/dist/codex-protocol/v2/GuardianCommandSource.js +0 -1
  472. package/bundle/dist/codex-protocol/v2/GuardianRiskLevel.js +0 -1
  473. package/bundle/dist/codex-protocol/v2/GuardianUserAuthorization.js +0 -1
  474. package/bundle/dist/codex-protocol/v2/GuardianWarningNotification.js +0 -1
  475. package/bundle/dist/codex-protocol/v2/HookCompletedNotification.js +0 -1
  476. package/bundle/dist/codex-protocol/v2/HookErrorInfo.js +0 -1
  477. package/bundle/dist/codex-protocol/v2/HookEventName.js +0 -1
  478. package/bundle/dist/codex-protocol/v2/HookExecutionMode.js +0 -1
  479. package/bundle/dist/codex-protocol/v2/HookHandlerType.js +0 -1
  480. package/bundle/dist/codex-protocol/v2/HookMetadata.js +0 -1
  481. package/bundle/dist/codex-protocol/v2/HookMigration.js +0 -1
  482. package/bundle/dist/codex-protocol/v2/HookOutputEntry.js +0 -1
  483. package/bundle/dist/codex-protocol/v2/HookOutputEntryKind.js +0 -1
  484. package/bundle/dist/codex-protocol/v2/HookPromptFragment.js +0 -1
  485. package/bundle/dist/codex-protocol/v2/HookRunStatus.js +0 -1
  486. package/bundle/dist/codex-protocol/v2/HookRunSummary.js +0 -1
  487. package/bundle/dist/codex-protocol/v2/HookScope.js +0 -1
  488. package/bundle/dist/codex-protocol/v2/HookSource.js +0 -1
  489. package/bundle/dist/codex-protocol/v2/HookStartedNotification.js +0 -1
  490. package/bundle/dist/codex-protocol/v2/HookTrustStatus.js +0 -1
  491. package/bundle/dist/codex-protocol/v2/HooksListEntry.js +0 -1
  492. package/bundle/dist/codex-protocol/v2/HooksListParams.js +0 -1
  493. package/bundle/dist/codex-protocol/v2/HooksListResponse.js +0 -1
  494. package/bundle/dist/codex-protocol/v2/ItemCompletedNotification.js +0 -1
  495. package/bundle/dist/codex-protocol/v2/ItemGuardianApprovalReviewCompletedNotification.js +0 -1
  496. package/bundle/dist/codex-protocol/v2/ItemGuardianApprovalReviewStartedNotification.js +0 -1
  497. package/bundle/dist/codex-protocol/v2/ItemStartedNotification.js +0 -1
  498. package/bundle/dist/codex-protocol/v2/ListMcpServerStatusParams.js +0 -1
  499. package/bundle/dist/codex-protocol/v2/ListMcpServerStatusResponse.js +0 -1
  500. package/bundle/dist/codex-protocol/v2/LoginAccountParams.js +0 -1
  501. package/bundle/dist/codex-protocol/v2/LoginAccountResponse.js +0 -1
  502. package/bundle/dist/codex-protocol/v2/LogoutAccountResponse.js +0 -1
  503. package/bundle/dist/codex-protocol/v2/ManagedHooksRequirements.js +0 -1
  504. package/bundle/dist/codex-protocol/v2/MarketplaceAddParams.js +0 -1
  505. package/bundle/dist/codex-protocol/v2/MarketplaceAddResponse.js +0 -1
  506. package/bundle/dist/codex-protocol/v2/MarketplaceInterface.js +0 -1
  507. package/bundle/dist/codex-protocol/v2/MarketplaceLoadErrorInfo.js +0 -1
  508. package/bundle/dist/codex-protocol/v2/MarketplaceRemoveParams.js +0 -1
  509. package/bundle/dist/codex-protocol/v2/MarketplaceRemoveResponse.js +0 -1
  510. package/bundle/dist/codex-protocol/v2/MarketplaceUpgradeErrorInfo.js +0 -1
  511. package/bundle/dist/codex-protocol/v2/MarketplaceUpgradeParams.js +0 -1
  512. package/bundle/dist/codex-protocol/v2/MarketplaceUpgradeResponse.js +0 -1
  513. package/bundle/dist/codex-protocol/v2/McpAuthStatus.js +0 -1
  514. package/bundle/dist/codex-protocol/v2/McpElicitationArrayType.js +0 -1
  515. package/bundle/dist/codex-protocol/v2/McpElicitationBooleanSchema.js +0 -1
  516. package/bundle/dist/codex-protocol/v2/McpElicitationBooleanType.js +0 -1
  517. package/bundle/dist/codex-protocol/v2/McpElicitationConstOption.js +0 -1
  518. package/bundle/dist/codex-protocol/v2/McpElicitationEnumSchema.js +0 -1
  519. package/bundle/dist/codex-protocol/v2/McpElicitationLegacyTitledEnumSchema.js +0 -1
  520. package/bundle/dist/codex-protocol/v2/McpElicitationMultiSelectEnumSchema.js +0 -1
  521. package/bundle/dist/codex-protocol/v2/McpElicitationNumberSchema.js +0 -1
  522. package/bundle/dist/codex-protocol/v2/McpElicitationNumberType.js +0 -1
  523. package/bundle/dist/codex-protocol/v2/McpElicitationObjectType.js +0 -1
  524. package/bundle/dist/codex-protocol/v2/McpElicitationPrimitiveSchema.js +0 -1
  525. package/bundle/dist/codex-protocol/v2/McpElicitationSchema.js +0 -1
  526. package/bundle/dist/codex-protocol/v2/McpElicitationSingleSelectEnumSchema.js +0 -1
  527. package/bundle/dist/codex-protocol/v2/McpElicitationStringFormat.js +0 -1
  528. package/bundle/dist/codex-protocol/v2/McpElicitationStringSchema.js +0 -1
  529. package/bundle/dist/codex-protocol/v2/McpElicitationStringType.js +0 -1
  530. package/bundle/dist/codex-protocol/v2/McpElicitationTitledEnumItems.js +0 -1
  531. package/bundle/dist/codex-protocol/v2/McpElicitationTitledMultiSelectEnumSchema.js +0 -1
  532. package/bundle/dist/codex-protocol/v2/McpElicitationTitledSingleSelectEnumSchema.js +0 -1
  533. package/bundle/dist/codex-protocol/v2/McpElicitationUntitledEnumItems.js +0 -1
  534. package/bundle/dist/codex-protocol/v2/McpElicitationUntitledMultiSelectEnumSchema.js +0 -1
  535. package/bundle/dist/codex-protocol/v2/McpElicitationUntitledSingleSelectEnumSchema.js +0 -1
  536. package/bundle/dist/codex-protocol/v2/McpResourceReadParams.js +0 -1
  537. package/bundle/dist/codex-protocol/v2/McpResourceReadResponse.js +0 -1
  538. package/bundle/dist/codex-protocol/v2/McpServerElicitationAction.js +0 -1
  539. package/bundle/dist/codex-protocol/v2/McpServerElicitationRequestParams.js +0 -1
  540. package/bundle/dist/codex-protocol/v2/McpServerElicitationRequestResponse.js +0 -1
  541. package/bundle/dist/codex-protocol/v2/McpServerMigration.js +0 -1
  542. package/bundle/dist/codex-protocol/v2/McpServerOauthLoginCompletedNotification.js +0 -1
  543. package/bundle/dist/codex-protocol/v2/McpServerOauthLoginParams.js +0 -1
  544. package/bundle/dist/codex-protocol/v2/McpServerOauthLoginResponse.js +0 -1
  545. package/bundle/dist/codex-protocol/v2/McpServerRefreshResponse.js +0 -1
  546. package/bundle/dist/codex-protocol/v2/McpServerStartupState.js +0 -1
  547. package/bundle/dist/codex-protocol/v2/McpServerStatus.js +0 -1
  548. package/bundle/dist/codex-protocol/v2/McpServerStatusDetail.js +0 -1
  549. package/bundle/dist/codex-protocol/v2/McpServerStatusUpdatedNotification.js +0 -1
  550. package/bundle/dist/codex-protocol/v2/McpServerToolCallParams.js +0 -1
  551. package/bundle/dist/codex-protocol/v2/McpServerToolCallResponse.js +0 -1
  552. package/bundle/dist/codex-protocol/v2/McpToolCallError.js +0 -1
  553. package/bundle/dist/codex-protocol/v2/McpToolCallProgressNotification.js +0 -1
  554. package/bundle/dist/codex-protocol/v2/McpToolCallResult.js +0 -1
  555. package/bundle/dist/codex-protocol/v2/McpToolCallStatus.js +0 -1
  556. package/bundle/dist/codex-protocol/v2/MemoryCitation.js +0 -1
  557. package/bundle/dist/codex-protocol/v2/MemoryCitationEntry.js +0 -1
  558. package/bundle/dist/codex-protocol/v2/MergeStrategy.js +0 -1
  559. package/bundle/dist/codex-protocol/v2/MigrationDetails.js +0 -1
  560. package/bundle/dist/codex-protocol/v2/Model.js +0 -1
  561. package/bundle/dist/codex-protocol/v2/ModelAvailabilityNux.js +0 -1
  562. package/bundle/dist/codex-protocol/v2/ModelListParams.js +0 -1
  563. package/bundle/dist/codex-protocol/v2/ModelListResponse.js +0 -1
  564. package/bundle/dist/codex-protocol/v2/ModelProviderCapabilitiesReadParams.js +0 -1
  565. package/bundle/dist/codex-protocol/v2/ModelProviderCapabilitiesReadResponse.js +0 -1
  566. package/bundle/dist/codex-protocol/v2/ModelRerouteReason.js +0 -1
  567. package/bundle/dist/codex-protocol/v2/ModelReroutedNotification.js +0 -1
  568. package/bundle/dist/codex-protocol/v2/ModelServiceTier.js +0 -1
  569. package/bundle/dist/codex-protocol/v2/ModelUpgradeInfo.js +0 -1
  570. package/bundle/dist/codex-protocol/v2/ModelVerification.js +0 -1
  571. package/bundle/dist/codex-protocol/v2/ModelVerificationNotification.js +0 -1
  572. package/bundle/dist/codex-protocol/v2/NetworkAccess.js +0 -1
  573. package/bundle/dist/codex-protocol/v2/NetworkApprovalContext.js +0 -1
  574. package/bundle/dist/codex-protocol/v2/NetworkApprovalProtocol.js +0 -1
  575. package/bundle/dist/codex-protocol/v2/NetworkDomainPermission.js +0 -1
  576. package/bundle/dist/codex-protocol/v2/NetworkPolicyAmendment.js +0 -1
  577. package/bundle/dist/codex-protocol/v2/NetworkPolicyRuleAction.js +0 -1
  578. package/bundle/dist/codex-protocol/v2/NetworkRequirements.js +0 -1
  579. package/bundle/dist/codex-protocol/v2/NetworkUnixSocketPermission.js +0 -1
  580. package/bundle/dist/codex-protocol/v2/NonSteerableTurnKind.js +0 -1
  581. package/bundle/dist/codex-protocol/v2/OverriddenMetadata.js +0 -1
  582. package/bundle/dist/codex-protocol/v2/PatchApplyStatus.js +0 -1
  583. package/bundle/dist/codex-protocol/v2/PatchChangeKind.js +0 -1
  584. package/bundle/dist/codex-protocol/v2/PermissionGrantScope.js +0 -1
  585. package/bundle/dist/codex-protocol/v2/PermissionProfile.js +0 -1
  586. package/bundle/dist/codex-protocol/v2/PermissionProfileFileSystemPermissions.js +0 -1
  587. package/bundle/dist/codex-protocol/v2/PermissionProfileModificationParams.js +0 -1
  588. package/bundle/dist/codex-protocol/v2/PermissionProfileNetworkPermissions.js +0 -1
  589. package/bundle/dist/codex-protocol/v2/PermissionProfileSelectionParams.js +0 -1
  590. package/bundle/dist/codex-protocol/v2/PermissionsRequestApprovalParams.js +0 -1
  591. package/bundle/dist/codex-protocol/v2/PermissionsRequestApprovalResponse.js +0 -1
  592. package/bundle/dist/codex-protocol/v2/PlanDeltaNotification.js +0 -1
  593. package/bundle/dist/codex-protocol/v2/PluginAuthPolicy.js +0 -1
  594. package/bundle/dist/codex-protocol/v2/PluginAvailability.js +0 -1
  595. package/bundle/dist/codex-protocol/v2/PluginDetail.js +0 -1
  596. package/bundle/dist/codex-protocol/v2/PluginHookSummary.js +0 -1
  597. package/bundle/dist/codex-protocol/v2/PluginInstallParams.js +0 -1
  598. package/bundle/dist/codex-protocol/v2/PluginInstallPolicy.js +0 -1
  599. package/bundle/dist/codex-protocol/v2/PluginInstallResponse.js +0 -1
  600. package/bundle/dist/codex-protocol/v2/PluginInterface.js +0 -1
  601. package/bundle/dist/codex-protocol/v2/PluginListMarketplaceKind.js +0 -1
  602. package/bundle/dist/codex-protocol/v2/PluginListParams.js +0 -1
  603. package/bundle/dist/codex-protocol/v2/PluginListResponse.js +0 -1
  604. package/bundle/dist/codex-protocol/v2/PluginMarketplaceEntry.js +0 -1
  605. package/bundle/dist/codex-protocol/v2/PluginReadParams.js +0 -1
  606. package/bundle/dist/codex-protocol/v2/PluginReadResponse.js +0 -1
  607. package/bundle/dist/codex-protocol/v2/PluginShareContext.js +0 -1
  608. package/bundle/dist/codex-protocol/v2/PluginShareDeleteParams.js +0 -1
  609. package/bundle/dist/codex-protocol/v2/PluginShareDeleteResponse.js +0 -1
  610. package/bundle/dist/codex-protocol/v2/PluginShareDiscoverability.js +0 -1
  611. package/bundle/dist/codex-protocol/v2/PluginShareListItem.js +0 -1
  612. package/bundle/dist/codex-protocol/v2/PluginShareListParams.js +0 -1
  613. package/bundle/dist/codex-protocol/v2/PluginShareListResponse.js +0 -1
  614. package/bundle/dist/codex-protocol/v2/PluginSharePrincipal.js +0 -1
  615. package/bundle/dist/codex-protocol/v2/PluginSharePrincipalType.js +0 -1
  616. package/bundle/dist/codex-protocol/v2/PluginShareSaveParams.js +0 -1
  617. package/bundle/dist/codex-protocol/v2/PluginShareSaveResponse.js +0 -1
  618. package/bundle/dist/codex-protocol/v2/PluginShareTarget.js +0 -1
  619. package/bundle/dist/codex-protocol/v2/PluginShareUpdateDiscoverability.js +0 -1
  620. package/bundle/dist/codex-protocol/v2/PluginShareUpdateTargetsParams.js +0 -1
  621. package/bundle/dist/codex-protocol/v2/PluginShareUpdateTargetsResponse.js +0 -1
  622. package/bundle/dist/codex-protocol/v2/PluginSkillReadParams.js +0 -1
  623. package/bundle/dist/codex-protocol/v2/PluginSkillReadResponse.js +0 -1
  624. package/bundle/dist/codex-protocol/v2/PluginSource.js +0 -1
  625. package/bundle/dist/codex-protocol/v2/PluginSummary.js +0 -1
  626. package/bundle/dist/codex-protocol/v2/PluginUninstallParams.js +0 -1
  627. package/bundle/dist/codex-protocol/v2/PluginUninstallResponse.js +0 -1
  628. package/bundle/dist/codex-protocol/v2/PluginsMigration.js +0 -1
  629. package/bundle/dist/codex-protocol/v2/ProcessExitedNotification.js +0 -1
  630. package/bundle/dist/codex-protocol/v2/ProcessOutputDeltaNotification.js +0 -1
  631. package/bundle/dist/codex-protocol/v2/ProcessOutputStream.js +0 -1
  632. package/bundle/dist/codex-protocol/v2/ProcessTerminalSize.js +0 -1
  633. package/bundle/dist/codex-protocol/v2/ProfileV2.js +0 -1
  634. package/bundle/dist/codex-protocol/v2/RateLimitReachedType.js +0 -1
  635. package/bundle/dist/codex-protocol/v2/RateLimitSnapshot.js +0 -1
  636. package/bundle/dist/codex-protocol/v2/RateLimitWindow.js +0 -1
  637. package/bundle/dist/codex-protocol/v2/RawResponseItemCompletedNotification.js +0 -1
  638. package/bundle/dist/codex-protocol/v2/ReasoningEffortOption.js +0 -1
  639. package/bundle/dist/codex-protocol/v2/ReasoningSummaryPartAddedNotification.js +0 -1
  640. package/bundle/dist/codex-protocol/v2/ReasoningSummaryTextDeltaNotification.js +0 -1
  641. package/bundle/dist/codex-protocol/v2/ReasoningTextDeltaNotification.js +0 -1
  642. package/bundle/dist/codex-protocol/v2/RemoteControlConnectionStatus.js +0 -1
  643. package/bundle/dist/codex-protocol/v2/RemoteControlStatusChangedNotification.js +0 -1
  644. package/bundle/dist/codex-protocol/v2/RequestPermissionProfile.js +0 -1
  645. package/bundle/dist/codex-protocol/v2/ResidencyRequirement.js +0 -1
  646. package/bundle/dist/codex-protocol/v2/ReviewDelivery.js +0 -1
  647. package/bundle/dist/codex-protocol/v2/ReviewStartParams.js +0 -1
  648. package/bundle/dist/codex-protocol/v2/ReviewStartResponse.js +0 -1
  649. package/bundle/dist/codex-protocol/v2/ReviewTarget.js +0 -1
  650. package/bundle/dist/codex-protocol/v2/SandboxMode.js +0 -1
  651. package/bundle/dist/codex-protocol/v2/SandboxPolicy.js +0 -1
  652. package/bundle/dist/codex-protocol/v2/SandboxWorkspaceWrite.js +0 -1
  653. package/bundle/dist/codex-protocol/v2/SendAddCreditsNudgeEmailParams.js +0 -1
  654. package/bundle/dist/codex-protocol/v2/SendAddCreditsNudgeEmailResponse.js +0 -1
  655. package/bundle/dist/codex-protocol/v2/ServerRequestResolvedNotification.js +0 -1
  656. package/bundle/dist/codex-protocol/v2/SessionMigration.js +0 -1
  657. package/bundle/dist/codex-protocol/v2/SessionSource.js +0 -1
  658. package/bundle/dist/codex-protocol/v2/SkillDependencies.js +0 -1
  659. package/bundle/dist/codex-protocol/v2/SkillErrorInfo.js +0 -1
  660. package/bundle/dist/codex-protocol/v2/SkillInterface.js +0 -1
  661. package/bundle/dist/codex-protocol/v2/SkillMetadata.js +0 -1
  662. package/bundle/dist/codex-protocol/v2/SkillScope.js +0 -1
  663. package/bundle/dist/codex-protocol/v2/SkillSummary.js +0 -1
  664. package/bundle/dist/codex-protocol/v2/SkillToolDependency.js +0 -1
  665. package/bundle/dist/codex-protocol/v2/SkillsChangedNotification.js +0 -1
  666. package/bundle/dist/codex-protocol/v2/SkillsConfigWriteParams.js +0 -1
  667. package/bundle/dist/codex-protocol/v2/SkillsConfigWriteResponse.js +0 -1
  668. package/bundle/dist/codex-protocol/v2/SkillsListEntry.js +0 -1
  669. package/bundle/dist/codex-protocol/v2/SkillsListParams.js +0 -1
  670. package/bundle/dist/codex-protocol/v2/SkillsListResponse.js +0 -1
  671. package/bundle/dist/codex-protocol/v2/SortDirection.js +0 -1
  672. package/bundle/dist/codex-protocol/v2/SubagentMigration.js +0 -1
  673. package/bundle/dist/codex-protocol/v2/TerminalInteractionNotification.js +0 -1
  674. package/bundle/dist/codex-protocol/v2/TextElement.js +0 -1
  675. package/bundle/dist/codex-protocol/v2/TextPosition.js +0 -1
  676. package/bundle/dist/codex-protocol/v2/TextRange.js +0 -1
  677. package/bundle/dist/codex-protocol/v2/Thread.js +0 -1
  678. package/bundle/dist/codex-protocol/v2/ThreadActiveFlag.js +0 -1
  679. package/bundle/dist/codex-protocol/v2/ThreadApproveGuardianDeniedActionParams.js +0 -1
  680. package/bundle/dist/codex-protocol/v2/ThreadApproveGuardianDeniedActionResponse.js +0 -1
  681. package/bundle/dist/codex-protocol/v2/ThreadArchiveParams.js +0 -1
  682. package/bundle/dist/codex-protocol/v2/ThreadArchiveResponse.js +0 -1
  683. package/bundle/dist/codex-protocol/v2/ThreadArchivedNotification.js +0 -1
  684. package/bundle/dist/codex-protocol/v2/ThreadClosedNotification.js +0 -1
  685. package/bundle/dist/codex-protocol/v2/ThreadCompactStartParams.js +0 -1
  686. package/bundle/dist/codex-protocol/v2/ThreadCompactStartResponse.js +0 -1
  687. package/bundle/dist/codex-protocol/v2/ThreadForkParams.js +0 -1
  688. package/bundle/dist/codex-protocol/v2/ThreadForkResponse.js +0 -1
  689. package/bundle/dist/codex-protocol/v2/ThreadGoal.js +0 -1
  690. package/bundle/dist/codex-protocol/v2/ThreadGoalClearedNotification.js +0 -1
  691. package/bundle/dist/codex-protocol/v2/ThreadGoalStatus.js +0 -1
  692. package/bundle/dist/codex-protocol/v2/ThreadGoalUpdatedNotification.js +0 -1
  693. package/bundle/dist/codex-protocol/v2/ThreadInjectItemsParams.js +0 -1
  694. package/bundle/dist/codex-protocol/v2/ThreadInjectItemsResponse.js +0 -1
  695. package/bundle/dist/codex-protocol/v2/ThreadItem.js +0 -1
  696. package/bundle/dist/codex-protocol/v2/ThreadListParams.js +0 -1
  697. package/bundle/dist/codex-protocol/v2/ThreadListResponse.js +0 -1
  698. package/bundle/dist/codex-protocol/v2/ThreadLoadedListParams.js +0 -1
  699. package/bundle/dist/codex-protocol/v2/ThreadLoadedListResponse.js +0 -1
  700. package/bundle/dist/codex-protocol/v2/ThreadMetadataGitInfoUpdateParams.js +0 -1
  701. package/bundle/dist/codex-protocol/v2/ThreadMetadataUpdateParams.js +0 -1
  702. package/bundle/dist/codex-protocol/v2/ThreadMetadataUpdateResponse.js +0 -1
  703. package/bundle/dist/codex-protocol/v2/ThreadNameUpdatedNotification.js +0 -1
  704. package/bundle/dist/codex-protocol/v2/ThreadReadParams.js +0 -1
  705. package/bundle/dist/codex-protocol/v2/ThreadReadResponse.js +0 -1
  706. package/bundle/dist/codex-protocol/v2/ThreadRealtimeAudioChunk.js +0 -1
  707. package/bundle/dist/codex-protocol/v2/ThreadRealtimeClosedNotification.js +0 -1
  708. package/bundle/dist/codex-protocol/v2/ThreadRealtimeErrorNotification.js +0 -1
  709. package/bundle/dist/codex-protocol/v2/ThreadRealtimeItemAddedNotification.js +0 -1
  710. package/bundle/dist/codex-protocol/v2/ThreadRealtimeOutputAudioDeltaNotification.js +0 -1
  711. package/bundle/dist/codex-protocol/v2/ThreadRealtimeSdpNotification.js +0 -1
  712. package/bundle/dist/codex-protocol/v2/ThreadRealtimeStartTransport.js +0 -1
  713. package/bundle/dist/codex-protocol/v2/ThreadRealtimeStartedNotification.js +0 -1
  714. package/bundle/dist/codex-protocol/v2/ThreadRealtimeTranscriptDeltaNotification.js +0 -1
  715. package/bundle/dist/codex-protocol/v2/ThreadRealtimeTranscriptDoneNotification.js +0 -1
  716. package/bundle/dist/codex-protocol/v2/ThreadResumeParams.js +0 -1
  717. package/bundle/dist/codex-protocol/v2/ThreadResumeResponse.js +0 -1
  718. package/bundle/dist/codex-protocol/v2/ThreadRollbackParams.js +0 -1
  719. package/bundle/dist/codex-protocol/v2/ThreadRollbackResponse.js +0 -1
  720. package/bundle/dist/codex-protocol/v2/ThreadSetNameParams.js +0 -1
  721. package/bundle/dist/codex-protocol/v2/ThreadSetNameResponse.js +0 -1
  722. package/bundle/dist/codex-protocol/v2/ThreadShellCommandParams.js +0 -1
  723. package/bundle/dist/codex-protocol/v2/ThreadShellCommandResponse.js +0 -1
  724. package/bundle/dist/codex-protocol/v2/ThreadSortKey.js +0 -1
  725. package/bundle/dist/codex-protocol/v2/ThreadSource.js +0 -1
  726. package/bundle/dist/codex-protocol/v2/ThreadSourceKind.js +0 -1
  727. package/bundle/dist/codex-protocol/v2/ThreadStartParams.js +0 -1
  728. package/bundle/dist/codex-protocol/v2/ThreadStartResponse.js +0 -1
  729. package/bundle/dist/codex-protocol/v2/ThreadStartSource.js +0 -1
  730. package/bundle/dist/codex-protocol/v2/ThreadStartedNotification.js +0 -1
  731. package/bundle/dist/codex-protocol/v2/ThreadStatus.js +0 -1
  732. package/bundle/dist/codex-protocol/v2/ThreadStatusChangedNotification.js +0 -1
  733. package/bundle/dist/codex-protocol/v2/ThreadTokenUsage.js +0 -1
  734. package/bundle/dist/codex-protocol/v2/ThreadTokenUsageUpdatedNotification.js +0 -1
  735. package/bundle/dist/codex-protocol/v2/ThreadUnarchiveParams.js +0 -1
  736. package/bundle/dist/codex-protocol/v2/ThreadUnarchiveResponse.js +0 -1
  737. package/bundle/dist/codex-protocol/v2/ThreadUnarchivedNotification.js +0 -1
  738. package/bundle/dist/codex-protocol/v2/ThreadUnsubscribeParams.js +0 -1
  739. package/bundle/dist/codex-protocol/v2/ThreadUnsubscribeResponse.js +0 -1
  740. package/bundle/dist/codex-protocol/v2/ThreadUnsubscribeStatus.js +0 -1
  741. package/bundle/dist/codex-protocol/v2/TokenUsageBreakdown.js +0 -1
  742. package/bundle/dist/codex-protocol/v2/ToolRequestUserInputAnswer.js +0 -1
  743. package/bundle/dist/codex-protocol/v2/ToolRequestUserInputOption.js +0 -1
  744. package/bundle/dist/codex-protocol/v2/ToolRequestUserInputParams.js +0 -1
  745. package/bundle/dist/codex-protocol/v2/ToolRequestUserInputQuestion.js +0 -1
  746. package/bundle/dist/codex-protocol/v2/ToolRequestUserInputResponse.js +0 -1
  747. package/bundle/dist/codex-protocol/v2/ToolsV2.js +0 -1
  748. package/bundle/dist/codex-protocol/v2/Turn.js +0 -1
  749. package/bundle/dist/codex-protocol/v2/TurnCompletedNotification.js +0 -1
  750. package/bundle/dist/codex-protocol/v2/TurnDiffUpdatedNotification.js +0 -1
  751. package/bundle/dist/codex-protocol/v2/TurnEnvironmentParams.js +0 -1
  752. package/bundle/dist/codex-protocol/v2/TurnError.js +0 -1
  753. package/bundle/dist/codex-protocol/v2/TurnInterruptParams.js +0 -1
  754. package/bundle/dist/codex-protocol/v2/TurnInterruptResponse.js +0 -1
  755. package/bundle/dist/codex-protocol/v2/TurnItemsView.js +0 -1
  756. package/bundle/dist/codex-protocol/v2/TurnPlanStep.js +0 -1
  757. package/bundle/dist/codex-protocol/v2/TurnPlanStepStatus.js +0 -1
  758. package/bundle/dist/codex-protocol/v2/TurnPlanUpdatedNotification.js +0 -1
  759. package/bundle/dist/codex-protocol/v2/TurnStartParams.js +0 -1
  760. package/bundle/dist/codex-protocol/v2/TurnStartResponse.js +0 -1
  761. package/bundle/dist/codex-protocol/v2/TurnStartedNotification.js +0 -1
  762. package/bundle/dist/codex-protocol/v2/TurnStatus.js +0 -1
  763. package/bundle/dist/codex-protocol/v2/TurnSteerParams.js +0 -1
  764. package/bundle/dist/codex-protocol/v2/TurnSteerResponse.js +0 -1
  765. package/bundle/dist/codex-protocol/v2/UserInput.js +0 -1
  766. package/bundle/dist/codex-protocol/v2/WarningNotification.js +0 -1
  767. package/bundle/dist/codex-protocol/v2/WebSearchAction.js +0 -1
  768. package/bundle/dist/codex-protocol/v2/WindowsSandboxReadiness.js +0 -1
  769. package/bundle/dist/codex-protocol/v2/WindowsSandboxReadinessResponse.js +0 -1
  770. package/bundle/dist/codex-protocol/v2/WindowsSandboxSetupCompletedNotification.js +0 -1
  771. package/bundle/dist/codex-protocol/v2/WindowsSandboxSetupMode.js +0 -1
  772. package/bundle/dist/codex-protocol/v2/WindowsSandboxSetupStartParams.js +0 -1
  773. package/bundle/dist/codex-protocol/v2/WindowsSandboxSetupStartResponse.js +0 -1
  774. package/bundle/dist/codex-protocol/v2/WindowsWorldWritableWarningNotification.js +0 -1
  775. package/bundle/dist/codex-protocol/v2/WriteStatus.js +0 -1
  776. package/bundle/dist/codex-protocol/v2/index.js +0 -7
  777. 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
  778. 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
  779. 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
  780. 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
  781. 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
  782. 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
  783. 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
  784. 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
  785. 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
  786. package/bundle/dist/utils/providers/openai/codex-rpc.js +0 -153
  787. package/bundle/dist/utils/providers/openai/codex-worker.js +0 -642
  788. package/bundle/dist/utils/providers/openai/openai-worker-pool-config.js +0 -51
  789. package/bundle/src/codex-protocol/AbsolutePathBuf.ts +0 -14
  790. package/bundle/src/codex-protocol/AgentPath.ts +0 -5
  791. package/bundle/src/codex-protocol/ApplyPatchApprovalParams.ts +0 -24
  792. package/bundle/src/codex-protocol/ApplyPatchApprovalResponse.ts +0 -6
  793. package/bundle/src/codex-protocol/AuthMode.ts +0 -8
  794. package/bundle/src/codex-protocol/ClientInfo.ts +0 -5
  795. package/bundle/src/codex-protocol/ClientNotification.ts +0 -5
  796. package/bundle/src/codex-protocol/ClientRequest.ts +0 -176
  797. package/bundle/src/codex-protocol/CollaborationMode.ts +0 -10
  798. package/bundle/src/codex-protocol/ContentItem.ts +0 -9
  799. package/bundle/src/codex-protocol/ConversationGitInfo.ts +0 -9
  800. package/bundle/src/codex-protocol/ConversationSummary.ts +0 -19
  801. package/bundle/src/codex-protocol/ExecCommandApprovalParams.ts +0 -22
  802. package/bundle/src/codex-protocol/ExecCommandApprovalResponse.ts +0 -6
  803. package/bundle/src/codex-protocol/ExecPolicyAmendment.ts +0 -12
  804. package/bundle/src/codex-protocol/FileChange.ts +0 -8
  805. package/bundle/src/codex-protocol/ForcedLoginMethod.ts +0 -5
  806. package/bundle/src/codex-protocol/FunctionCallOutputBody.ts +0 -6
  807. package/bundle/src/codex-protocol/FunctionCallOutputContentItem.ts +0 -12
  808. package/bundle/src/codex-protocol/FuzzyFileSearchMatchType.ts +0 -5
  809. package/bundle/src/codex-protocol/FuzzyFileSearchParams.ts +0 -9
  810. package/bundle/src/codex-protocol/FuzzyFileSearchResponse.ts +0 -6
  811. package/bundle/src/codex-protocol/FuzzyFileSearchResult.ts +0 -16
  812. package/bundle/src/codex-protocol/FuzzyFileSearchSessionCompletedNotification.ts +0 -5
  813. package/bundle/src/codex-protocol/FuzzyFileSearchSessionUpdatedNotification.ts +0 -10
  814. package/bundle/src/codex-protocol/GetAuthStatusParams.ts +0 -5
  815. package/bundle/src/codex-protocol/GetAuthStatusResponse.ts +0 -10
  816. package/bundle/src/codex-protocol/GetConversationSummaryParams.ts +0 -6
  817. package/bundle/src/codex-protocol/GetConversationSummaryResponse.ts +0 -6
  818. package/bundle/src/codex-protocol/GitDiffToRemoteParams.ts +0 -5
  819. package/bundle/src/codex-protocol/GitDiffToRemoteResponse.ts +0 -6
  820. package/bundle/src/codex-protocol/GitSha.ts +0 -5
  821. package/bundle/src/codex-protocol/ImageDetail.ts +0 -5
  822. package/bundle/src/codex-protocol/InitializeCapabilities.ts +0 -18
  823. package/bundle/src/codex-protocol/InitializeParams.ts +0 -10
  824. package/bundle/src/codex-protocol/InitializeResponse.ts +0 -22
  825. package/bundle/src/codex-protocol/InputModality.ts +0 -8
  826. package/bundle/src/codex-protocol/InternalSessionSource.ts +0 -5
  827. package/bundle/src/codex-protocol/LocalShellAction.ts +0 -6
  828. package/bundle/src/codex-protocol/LocalShellExecAction.ts +0 -11
  829. package/bundle/src/codex-protocol/LocalShellStatus.ts +0 -5
  830. package/bundle/src/codex-protocol/MessagePhase.ts +0 -11
  831. package/bundle/src/codex-protocol/ModeKind.ts +0 -8
  832. package/bundle/src/codex-protocol/NetworkPolicyAmendment.ts +0 -6
  833. package/bundle/src/codex-protocol/NetworkPolicyRuleAction.ts +0 -5
  834. package/bundle/src/codex-protocol/ParsedCommand.ts +0 -20
  835. package/bundle/src/codex-protocol/Personality.ts +0 -5
  836. package/bundle/src/codex-protocol/PlanType.ts +0 -17
  837. package/bundle/src/codex-protocol/RealtimeConversationVersion.ts +0 -5
  838. package/bundle/src/codex-protocol/RealtimeOutputModality.ts +0 -5
  839. package/bundle/src/codex-protocol/RealtimeVoice.ts +0 -24
  840. package/bundle/src/codex-protocol/RealtimeVoicesList.ts +0 -11
  841. package/bundle/src/codex-protocol/ReasoningEffort.ts +0 -8
  842. package/bundle/src/codex-protocol/ReasoningItemContent.ts +0 -7
  843. package/bundle/src/codex-protocol/ReasoningItemReasoningSummary.ts +0 -5
  844. package/bundle/src/codex-protocol/ReasoningSummary.ts +0 -10
  845. package/bundle/src/codex-protocol/RequestId.ts +0 -5
  846. package/bundle/src/codex-protocol/Resource.ts +0 -19
  847. package/bundle/src/codex-protocol/ResourceContent.ts +0 -27
  848. package/bundle/src/codex-protocol/ResourceTemplate.ts +0 -16
  849. package/bundle/src/codex-protocol/ResponseItem.ts +0 -63
  850. package/bundle/src/codex-protocol/ReviewDecision.ts +0 -17
  851. package/bundle/src/codex-protocol/ServerNotification.ts +0 -154
  852. package/bundle/src/codex-protocol/ServerRequest.ts +0 -47
  853. package/bundle/src/codex-protocol/SessionSource.ts +0 -15
  854. package/bundle/src/codex-protocol/Settings.ts +0 -13
  855. package/bundle/src/codex-protocol/SubAgentSource.ts +0 -20
  856. package/bundle/src/codex-protocol/ThreadId.ts +0 -5
  857. package/bundle/src/codex-protocol/ThreadMemoryMode.ts +0 -5
  858. package/bundle/src/codex-protocol/Tool.ts +0 -18
  859. package/bundle/src/codex-protocol/Verbosity.ts +0 -9
  860. package/bundle/src/codex-protocol/WebSearchAction.ts +0 -9
  861. package/bundle/src/codex-protocol/WebSearchContextSize.ts +0 -5
  862. package/bundle/src/codex-protocol/WebSearchLocation.ts +0 -10
  863. package/bundle/src/codex-protocol/WebSearchMode.ts +0 -5
  864. package/bundle/src/codex-protocol/WebSearchToolConfig.ts +0 -11
  865. package/bundle/src/codex-protocol/index.ts +0 -79
  866. package/bundle/src/codex-protocol/serde_json/JsonValue.ts +0 -11
  867. package/bundle/src/codex-protocol/v2/Account.ts +0 -9
  868. package/bundle/src/codex-protocol/v2/AccountLoginCompletedNotification.ts +0 -9
  869. package/bundle/src/codex-protocol/v2/AccountRateLimitsUpdatedNotification.ts +0 -6
  870. package/bundle/src/codex-protocol/v2/AccountUpdatedNotification.ts +0 -7
  871. package/bundle/src/codex-protocol/v2/ActivePermissionProfile.ts +0 -22
  872. package/bundle/src/codex-protocol/v2/ActivePermissionProfileModification.ts +0 -9
  873. package/bundle/src/codex-protocol/v2/AddCreditsNudgeCreditType.ts +0 -5
  874. package/bundle/src/codex-protocol/v2/AddCreditsNudgeEmailStatus.ts +0 -5
  875. package/bundle/src/codex-protocol/v2/AdditionalFileSystemPermissions.ts +0 -18
  876. package/bundle/src/codex-protocol/v2/AdditionalNetworkPermissions.ts +0 -5
  877. package/bundle/src/codex-protocol/v2/AdditionalPermissionProfile.ts +0 -13
  878. package/bundle/src/codex-protocol/v2/AgentMessageDeltaNotification.ts +0 -10
  879. package/bundle/src/codex-protocol/v2/AnalyticsConfig.ts +0 -14
  880. package/bundle/src/codex-protocol/v2/AppBranding.ts +0 -15
  881. package/bundle/src/codex-protocol/v2/AppInfo.ts +0 -32
  882. package/bundle/src/codex-protocol/v2/AppListUpdatedNotification.ts +0 -9
  883. package/bundle/src/codex-protocol/v2/AppMetadata.ts +0 -20
  884. package/bundle/src/codex-protocol/v2/AppReview.ts +0 -5
  885. package/bundle/src/codex-protocol/v2/AppScreenshot.ts +0 -5
  886. package/bundle/src/codex-protocol/v2/AppSummary.ts +0 -14
  887. package/bundle/src/codex-protocol/v2/AppToolApproval.ts +0 -5
  888. package/bundle/src/codex-protocol/v2/AppToolsConfig.ts +0 -8
  889. package/bundle/src/codex-protocol/v2/ApprovalsReviewer.ts +0 -12
  890. package/bundle/src/codex-protocol/v2/AppsConfig.ts +0 -17
  891. package/bundle/src/codex-protocol/v2/AppsDefaultConfig.ts +0 -9
  892. package/bundle/src/codex-protocol/v2/AppsListParams.ts +0 -25
  893. package/bundle/src/codex-protocol/v2/AppsListResponse.ts +0 -16
  894. package/bundle/src/codex-protocol/v2/AskForApproval.ts +0 -18
  895. package/bundle/src/codex-protocol/v2/AutoReviewDecisionSource.ts +0 -8
  896. package/bundle/src/codex-protocol/v2/ByteRange.ts +0 -5
  897. package/bundle/src/codex-protocol/v2/CancelLoginAccountParams.ts +0 -5
  898. package/bundle/src/codex-protocol/v2/CancelLoginAccountResponse.ts +0 -6
  899. package/bundle/src/codex-protocol/v2/CancelLoginAccountStatus.ts +0 -5
  900. package/bundle/src/codex-protocol/v2/ChatgptAuthTokensRefreshParams.ts +0 -18
  901. package/bundle/src/codex-protocol/v2/ChatgptAuthTokensRefreshReason.ts +0 -5
  902. package/bundle/src/codex-protocol/v2/ChatgptAuthTokensRefreshResponse.ts +0 -9
  903. package/bundle/src/codex-protocol/v2/CodexErrorInfo.ts +0 -27
  904. package/bundle/src/codex-protocol/v2/CollabAgentState.ts +0 -6
  905. package/bundle/src/codex-protocol/v2/CollabAgentStatus.ts +0 -12
  906. package/bundle/src/codex-protocol/v2/CollabAgentTool.ts +0 -5
  907. package/bundle/src/codex-protocol/v2/CollabAgentToolCallStatus.ts +0 -5
  908. package/bundle/src/codex-protocol/v2/CollaborationModeMask.ts +0 -15
  909. package/bundle/src/codex-protocol/v2/CommandAction.ts +0 -10
  910. package/bundle/src/codex-protocol/v2/CommandExecOutputDeltaNotification.ts +0 -31
  911. package/bundle/src/codex-protocol/v2/CommandExecOutputStream.ts +0 -8
  912. package/bundle/src/codex-protocol/v2/CommandExecParams.ts +0 -87
  913. package/bundle/src/codex-protocol/v2/CommandExecResizeParams.ts +0 -19
  914. package/bundle/src/codex-protocol/v2/CommandExecResizeResponse.ts +0 -8
  915. package/bundle/src/codex-protocol/v2/CommandExecResponse.ts +0 -25
  916. package/bundle/src/codex-protocol/v2/CommandExecTerminalSize.ts +0 -17
  917. package/bundle/src/codex-protocol/v2/CommandExecTerminateParams.ts +0 -14
  918. package/bundle/src/codex-protocol/v2/CommandExecTerminateResponse.ts +0 -8
  919. package/bundle/src/codex-protocol/v2/CommandExecWriteParams.ts +0 -23
  920. package/bundle/src/codex-protocol/v2/CommandExecWriteResponse.ts +0 -8
  921. package/bundle/src/codex-protocol/v2/CommandExecutionApprovalDecision.ts +0 -13
  922. package/bundle/src/codex-protocol/v2/CommandExecutionOutputDeltaNotification.ts +0 -10
  923. package/bundle/src/codex-protocol/v2/CommandExecutionRequestApprovalParams.ts +0 -47
  924. package/bundle/src/codex-protocol/v2/CommandExecutionRequestApprovalResponse.ts +0 -8
  925. package/bundle/src/codex-protocol/v2/CommandExecutionSource.ts +0 -9
  926. package/bundle/src/codex-protocol/v2/CommandExecutionStatus.ts +0 -5
  927. package/bundle/src/codex-protocol/v2/CommandMigration.ts +0 -5
  928. package/bundle/src/codex-protocol/v2/Config.ts +0 -53
  929. package/bundle/src/codex-protocol/v2/ConfigBatchWriteParams.ts +0 -17
  930. package/bundle/src/codex-protocol/v2/ConfigEdit.ts +0 -7
  931. package/bundle/src/codex-protocol/v2/ConfigLayer.ts +0 -12
  932. package/bundle/src/codex-protocol/v2/ConfigLayerMetadata.ts +0 -6
  933. package/bundle/src/codex-protocol/v2/ConfigLayerSource.ts +0 -27
  934. package/bundle/src/codex-protocol/v2/ConfigReadParams.ts +0 -13
  935. package/bundle/src/codex-protocol/v2/ConfigReadResponse.ts +0 -12
  936. package/bundle/src/codex-protocol/v2/ConfigRequirements.ts +0 -15
  937. package/bundle/src/codex-protocol/v2/ConfigRequirementsReadResponse.ts +0 -11
  938. package/bundle/src/codex-protocol/v2/ConfigValueWriteParams.ts +0 -16
  939. package/bundle/src/codex-protocol/v2/ConfigWarningNotification.ts +0 -23
  940. package/bundle/src/codex-protocol/v2/ConfigWriteResponse.ts +0 -16
  941. package/bundle/src/codex-protocol/v2/ConfiguredHookHandler.ts +0 -14
  942. package/bundle/src/codex-protocol/v2/ConfiguredHookMatcherGroup.ts +0 -9
  943. package/bundle/src/codex-protocol/v2/ContextCompactedNotification.ts +0 -8
  944. package/bundle/src/codex-protocol/v2/CreditsSnapshot.ts +0 -5
  945. package/bundle/src/codex-protocol/v2/DeprecationNoticeNotification.ts +0 -14
  946. package/bundle/src/codex-protocol/v2/DynamicToolCallOutputContentItem.ts +0 -7
  947. package/bundle/src/codex-protocol/v2/DynamicToolCallParams.ts +0 -13
  948. package/bundle/src/codex-protocol/v2/DynamicToolCallResponse.ts +0 -9
  949. package/bundle/src/codex-protocol/v2/DynamicToolCallStatus.ts +0 -5
  950. package/bundle/src/codex-protocol/v2/DynamicToolSpec.ts +0 -12
  951. package/bundle/src/codex-protocol/v2/ErrorNotification.ts +0 -11
  952. package/bundle/src/codex-protocol/v2/ExecPolicyAmendment.ts +0 -5
  953. package/bundle/src/codex-protocol/v2/ExperimentalFeature.ts +0 -38
  954. package/bundle/src/codex-protocol/v2/ExperimentalFeatureEnablementSetParams.ts +0 -13
  955. package/bundle/src/codex-protocol/v2/ExperimentalFeatureEnablementSetResponse.ts +0 -10
  956. package/bundle/src/codex-protocol/v2/ExperimentalFeatureListParams.ts +0 -14
  957. package/bundle/src/codex-protocol/v2/ExperimentalFeatureListResponse.ts +0 -13
  958. package/bundle/src/codex-protocol/v2/ExperimentalFeatureStage.ts +0 -10
  959. package/bundle/src/codex-protocol/v2/ExternalAgentConfigDetectParams.ts +0 -14
  960. package/bundle/src/codex-protocol/v2/ExternalAgentConfigDetectResponse.ts +0 -6
  961. package/bundle/src/codex-protocol/v2/ExternalAgentConfigImportCompletedNotification.ts +0 -5
  962. package/bundle/src/codex-protocol/v2/ExternalAgentConfigImportParams.ts +0 -8
  963. package/bundle/src/codex-protocol/v2/ExternalAgentConfigImportResponse.ts +0 -5
  964. package/bundle/src/codex-protocol/v2/ExternalAgentConfigMigrationItem.ts +0 -15
  965. package/bundle/src/codex-protocol/v2/ExternalAgentConfigMigrationItemType.ts +0 -14
  966. package/bundle/src/codex-protocol/v2/FeedbackUploadParams.ts +0 -12
  967. package/bundle/src/codex-protocol/v2/FeedbackUploadResponse.ts +0 -5
  968. package/bundle/src/codex-protocol/v2/FileChangeApprovalDecision.ts +0 -5
  969. package/bundle/src/codex-protocol/v2/FileChangeOutputDeltaNotification.ts +0 -15
  970. package/bundle/src/codex-protocol/v2/FileChangePatchUpdatedNotification.ts +0 -11
  971. package/bundle/src/codex-protocol/v2/FileChangeRequestApprovalParams.ts +0 -22
  972. package/bundle/src/codex-protocol/v2/FileChangeRequestApprovalResponse.ts +0 -6
  973. package/bundle/src/codex-protocol/v2/FileSystemAccessMode.ts +0 -5
  974. package/bundle/src/codex-protocol/v2/FileSystemPath.ts +0 -10
  975. package/bundle/src/codex-protocol/v2/FileSystemSandboxEntry.ts +0 -7
  976. package/bundle/src/codex-protocol/v2/FileSystemSpecialPath.ts +0 -11
  977. package/bundle/src/codex-protocol/v2/FileUpdateChange.ts +0 -6
  978. package/bundle/src/codex-protocol/v2/FsChangedNotification.ts +0 -18
  979. package/bundle/src/codex-protocol/v2/FsCopyParams.ts +0 -22
  980. package/bundle/src/codex-protocol/v2/FsCopyResponse.ts +0 -8
  981. package/bundle/src/codex-protocol/v2/FsCreateDirectoryParams.ts +0 -18
  982. package/bundle/src/codex-protocol/v2/FsCreateDirectoryResponse.ts +0 -8
  983. package/bundle/src/codex-protocol/v2/FsGetMetadataParams.ts +0 -14
  984. package/bundle/src/codex-protocol/v2/FsGetMetadataResponse.ts +0 -29
  985. package/bundle/src/codex-protocol/v2/FsReadDirectoryEntry.ts +0 -21
  986. package/bundle/src/codex-protocol/v2/FsReadDirectoryParams.ts +0 -14
  987. package/bundle/src/codex-protocol/v2/FsReadDirectoryResponse.ts +0 -14
  988. package/bundle/src/codex-protocol/v2/FsReadFileParams.ts +0 -14
  989. package/bundle/src/codex-protocol/v2/FsReadFileResponse.ts +0 -13
  990. package/bundle/src/codex-protocol/v2/FsRemoveParams.ts +0 -22
  991. package/bundle/src/codex-protocol/v2/FsRemoveResponse.ts +0 -8
  992. package/bundle/src/codex-protocol/v2/FsUnwatchParams.ts +0 -13
  993. package/bundle/src/codex-protocol/v2/FsUnwatchResponse.ts +0 -8
  994. package/bundle/src/codex-protocol/v2/FsWatchParams.ts +0 -18
  995. package/bundle/src/codex-protocol/v2/FsWatchResponse.ts +0 -14
  996. package/bundle/src/codex-protocol/v2/FsWriteFileParams.ts +0 -18
  997. package/bundle/src/codex-protocol/v2/FsWriteFileResponse.ts +0 -8
  998. package/bundle/src/codex-protocol/v2/GetAccountParams.ts +0 -14
  999. package/bundle/src/codex-protocol/v2/GetAccountRateLimitsResponse.ts +0 -15
  1000. package/bundle/src/codex-protocol/v2/GetAccountResponse.ts +0 -6
  1001. package/bundle/src/codex-protocol/v2/GitInfo.ts +0 -5
  1002. package/bundle/src/codex-protocol/v2/GrantedPermissionProfile.ts +0 -10
  1003. package/bundle/src/codex-protocol/v2/GuardianApprovalReview.ts +0 -18
  1004. package/bundle/src/codex-protocol/v2/GuardianApprovalReviewAction.ts +0 -34
  1005. package/bundle/src/codex-protocol/v2/GuardianApprovalReviewStatus.ts +0 -13
  1006. package/bundle/src/codex-protocol/v2/GuardianCommandSource.ts +0 -5
  1007. package/bundle/src/codex-protocol/v2/GuardianRiskLevel.ts +0 -8
  1008. package/bundle/src/codex-protocol/v2/GuardianUserAuthorization.ts +0 -8
  1009. package/bundle/src/codex-protocol/v2/GuardianWarningNotification.ts +0 -14
  1010. package/bundle/src/codex-protocol/v2/HookCompletedNotification.ts +0 -10
  1011. package/bundle/src/codex-protocol/v2/HookErrorInfo.ts +0 -5
  1012. package/bundle/src/codex-protocol/v2/HookEventName.ts +0 -13
  1013. package/bundle/src/codex-protocol/v2/HookExecutionMode.ts +0 -5
  1014. package/bundle/src/codex-protocol/v2/HookHandlerType.ts +0 -5
  1015. package/bundle/src/codex-protocol/v2/HookMetadata.ts +0 -26
  1016. package/bundle/src/codex-protocol/v2/HookMigration.ts +0 -5
  1017. package/bundle/src/codex-protocol/v2/HookOutputEntry.ts +0 -6
  1018. package/bundle/src/codex-protocol/v2/HookOutputEntryKind.ts +0 -5
  1019. package/bundle/src/codex-protocol/v2/HookPromptFragment.ts +0 -5
  1020. package/bundle/src/codex-protocol/v2/HookRunStatus.ts +0 -5
  1021. package/bundle/src/codex-protocol/v2/HookRunSummary.ts +0 -28
  1022. package/bundle/src/codex-protocol/v2/HookScope.ts +0 -5
  1023. package/bundle/src/codex-protocol/v2/HookSource.ts +0 -15
  1024. package/bundle/src/codex-protocol/v2/HookStartedNotification.ts +0 -10
  1025. package/bundle/src/codex-protocol/v2/HookTrustStatus.ts +0 -5
  1026. package/bundle/src/codex-protocol/v2/HooksListEntry.ts +0 -12
  1027. package/bundle/src/codex-protocol/v2/HooksListParams.ts +0 -10
  1028. package/bundle/src/codex-protocol/v2/HooksListResponse.ts +0 -6
  1029. package/bundle/src/codex-protocol/v2/ItemCompletedNotification.ts +0 -14
  1030. package/bundle/src/codex-protocol/v2/ItemGuardianApprovalReviewCompletedNotification.ts +0 -44
  1031. package/bundle/src/codex-protocol/v2/ItemGuardianApprovalReviewStartedNotification.ts +0 -38
  1032. package/bundle/src/codex-protocol/v2/ItemStartedNotification.ts +0 -14
  1033. package/bundle/src/codex-protocol/v2/ListMcpServerStatusParams.ts +0 -20
  1034. package/bundle/src/codex-protocol/v2/ListMcpServerStatusResponse.ts +0 -13
  1035. package/bundle/src/codex-protocol/v2/LoginAccountParams.ts +0 -27
  1036. package/bundle/src/codex-protocol/v2/LoginAccountResponse.ts +0 -27
  1037. package/bundle/src/codex-protocol/v2/LogoutAccountResponse.ts +0 -5
  1038. package/bundle/src/codex-protocol/v2/ManagedHooksRequirements.ts +0 -17
  1039. package/bundle/src/codex-protocol/v2/MarketplaceAddParams.ts +0 -9
  1040. package/bundle/src/codex-protocol/v2/MarketplaceAddResponse.ts +0 -10
  1041. package/bundle/src/codex-protocol/v2/MarketplaceInterface.ts +0 -5
  1042. package/bundle/src/codex-protocol/v2/MarketplaceLoadErrorInfo.ts +0 -6
  1043. package/bundle/src/codex-protocol/v2/MarketplaceRemoveParams.ts +0 -5
  1044. package/bundle/src/codex-protocol/v2/MarketplaceRemoveResponse.ts +0 -9
  1045. package/bundle/src/codex-protocol/v2/MarketplaceUpgradeErrorInfo.ts +0 -5
  1046. package/bundle/src/codex-protocol/v2/MarketplaceUpgradeParams.ts +0 -5
  1047. package/bundle/src/codex-protocol/v2/MarketplaceUpgradeResponse.ts +0 -11
  1048. package/bundle/src/codex-protocol/v2/McpAuthStatus.ts +0 -5
  1049. package/bundle/src/codex-protocol/v2/McpElicitationArrayType.ts +0 -5
  1050. package/bundle/src/codex-protocol/v2/McpElicitationBooleanSchema.ts +0 -11
  1051. package/bundle/src/codex-protocol/v2/McpElicitationBooleanType.ts +0 -5
  1052. package/bundle/src/codex-protocol/v2/McpElicitationConstOption.ts +0 -5
  1053. package/bundle/src/codex-protocol/v2/McpElicitationEnumSchema.ts +0 -11
  1054. package/bundle/src/codex-protocol/v2/McpElicitationLegacyTitledEnumSchema.ts +0 -13
  1055. package/bundle/src/codex-protocol/v2/McpElicitationMultiSelectEnumSchema.ts +0 -9
  1056. package/bundle/src/codex-protocol/v2/McpElicitationNumberSchema.ts +0 -13
  1057. package/bundle/src/codex-protocol/v2/McpElicitationNumberType.ts +0 -5
  1058. package/bundle/src/codex-protocol/v2/McpElicitationObjectType.ts +0 -5
  1059. package/bundle/src/codex-protocol/v2/McpElicitationPrimitiveSchema.ts +0 -13
  1060. package/bundle/src/codex-protocol/v2/McpElicitationSchema.ts +0 -18
  1061. package/bundle/src/codex-protocol/v2/McpElicitationSingleSelectEnumSchema.ts +0 -9
  1062. package/bundle/src/codex-protocol/v2/McpElicitationStringFormat.ts +0 -5
  1063. package/bundle/src/codex-protocol/v2/McpElicitationStringSchema.ts +0 -15
  1064. package/bundle/src/codex-protocol/v2/McpElicitationStringType.ts +0 -5
  1065. package/bundle/src/codex-protocol/v2/McpElicitationTitledEnumItems.ts +0 -6
  1066. package/bundle/src/codex-protocol/v2/McpElicitationTitledMultiSelectEnumSchema.ts +0 -15
  1067. package/bundle/src/codex-protocol/v2/McpElicitationTitledSingleSelectEnumSchema.ts +0 -13
  1068. package/bundle/src/codex-protocol/v2/McpElicitationUntitledEnumItems.ts +0 -9
  1069. package/bundle/src/codex-protocol/v2/McpElicitationUntitledMultiSelectEnumSchema.ts +0 -15
  1070. package/bundle/src/codex-protocol/v2/McpElicitationUntitledSingleSelectEnumSchema.ts +0 -12
  1071. package/bundle/src/codex-protocol/v2/McpResourceReadParams.ts +0 -5
  1072. package/bundle/src/codex-protocol/v2/McpResourceReadResponse.ts +0 -6
  1073. package/bundle/src/codex-protocol/v2/McpServerElicitationAction.ts +0 -5
  1074. package/bundle/src/codex-protocol/v2/McpServerElicitationRequestParams.ts +0 -27
  1075. package/bundle/src/codex-protocol/v2/McpServerElicitationRequestResponse.ts +0 -19
  1076. package/bundle/src/codex-protocol/v2/McpServerMigration.ts +0 -5
  1077. package/bundle/src/codex-protocol/v2/McpServerOauthLoginCompletedNotification.ts +0 -9
  1078. package/bundle/src/codex-protocol/v2/McpServerOauthLoginParams.ts +0 -9
  1079. package/bundle/src/codex-protocol/v2/McpServerOauthLoginResponse.ts +0 -5
  1080. package/bundle/src/codex-protocol/v2/McpServerRefreshResponse.ts +0 -5
  1081. package/bundle/src/codex-protocol/v2/McpServerStartupState.ts +0 -5
  1082. package/bundle/src/codex-protocol/v2/McpServerStatus.ts +0 -15
  1083. package/bundle/src/codex-protocol/v2/McpServerStatusDetail.ts +0 -5
  1084. package/bundle/src/codex-protocol/v2/McpServerStatusUpdatedNotification.ts +0 -10
  1085. package/bundle/src/codex-protocol/v2/McpServerToolCallParams.ts +0 -12
  1086. package/bundle/src/codex-protocol/v2/McpServerToolCallResponse.ts +0 -11
  1087. package/bundle/src/codex-protocol/v2/McpToolCallError.ts +0 -5
  1088. package/bundle/src/codex-protocol/v2/McpToolCallProgressNotification.ts +0 -10
  1089. package/bundle/src/codex-protocol/v2/McpToolCallResult.ts +0 -10
  1090. package/bundle/src/codex-protocol/v2/McpToolCallStatus.ts +0 -5
  1091. package/bundle/src/codex-protocol/v2/MemoryCitation.ts +0 -6
  1092. package/bundle/src/codex-protocol/v2/MemoryCitationEntry.ts +0 -10
  1093. package/bundle/src/codex-protocol/v2/MergeStrategy.ts +0 -5
  1094. package/bundle/src/codex-protocol/v2/MigrationDetails.ts +0 -18
  1095. package/bundle/src/codex-protocol/v2/Model.ts +0 -30
  1096. package/bundle/src/codex-protocol/v2/ModelAvailabilityNux.ts +0 -5
  1097. package/bundle/src/codex-protocol/v2/ModelListParams.ts +0 -18
  1098. package/bundle/src/codex-protocol/v2/ModelListResponse.ts +0 -13
  1099. package/bundle/src/codex-protocol/v2/ModelProviderCapabilitiesReadParams.ts +0 -5
  1100. package/bundle/src/codex-protocol/v2/ModelProviderCapabilitiesReadResponse.ts +0 -9
  1101. package/bundle/src/codex-protocol/v2/ModelRerouteReason.ts +0 -5
  1102. package/bundle/src/codex-protocol/v2/ModelReroutedNotification.ts +0 -12
  1103. package/bundle/src/codex-protocol/v2/ModelServiceTier.ts +0 -5
  1104. package/bundle/src/codex-protocol/v2/ModelUpgradeInfo.ts +0 -10
  1105. package/bundle/src/codex-protocol/v2/ModelVerification.ts +0 -5
  1106. package/bundle/src/codex-protocol/v2/ModelVerificationNotification.ts +0 -10
  1107. package/bundle/src/codex-protocol/v2/NetworkAccess.ts +0 -5
  1108. package/bundle/src/codex-protocol/v2/NetworkApprovalContext.ts +0 -6
  1109. package/bundle/src/codex-protocol/v2/NetworkApprovalProtocol.ts +0 -5
  1110. package/bundle/src/codex-protocol/v2/NetworkDomainPermission.ts +0 -5
  1111. package/bundle/src/codex-protocol/v2/NetworkPolicyAmendment.ts +0 -6
  1112. package/bundle/src/codex-protocol/v2/NetworkPolicyRuleAction.ts +0 -5
  1113. package/bundle/src/codex-protocol/v2/NetworkRequirements.ts +0 -40
  1114. package/bundle/src/codex-protocol/v2/NetworkUnixSocketPermission.ts +0 -5
  1115. package/bundle/src/codex-protocol/v2/NonSteerableTurnKind.ts +0 -5
  1116. package/bundle/src/codex-protocol/v2/OverriddenMetadata.ts +0 -11
  1117. package/bundle/src/codex-protocol/v2/PatchApplyStatus.ts +0 -5
  1118. package/bundle/src/codex-protocol/v2/PatchChangeKind.ts +0 -8
  1119. package/bundle/src/codex-protocol/v2/PermissionGrantScope.ts +0 -5
  1120. package/bundle/src/codex-protocol/v2/PermissionProfile.ts +0 -14
  1121. package/bundle/src/codex-protocol/v2/PermissionProfileFileSystemPermissions.ts +0 -8
  1122. package/bundle/src/codex-protocol/v2/PermissionProfileModificationParams.ts +0 -9
  1123. package/bundle/src/codex-protocol/v2/PermissionProfileNetworkPermissions.ts +0 -5
  1124. package/bundle/src/codex-protocol/v2/PermissionProfileSelectionParams.ts +0 -10
  1125. package/bundle/src/codex-protocol/v2/PermissionsRequestApprovalParams.ts +0 -18
  1126. package/bundle/src/codex-protocol/v2/PermissionsRequestApprovalResponse.ts +0 -14
  1127. package/bundle/src/codex-protocol/v2/PlanDeltaNotification.ts +0 -14
  1128. package/bundle/src/codex-protocol/v2/PluginAuthPolicy.ts +0 -5
  1129. package/bundle/src/codex-protocol/v2/PluginAvailability.ts +0 -5
  1130. package/bundle/src/codex-protocol/v2/PluginDetail.ts +0 -19
  1131. package/bundle/src/codex-protocol/v2/PluginHookSummary.ts +0 -6
  1132. package/bundle/src/codex-protocol/v2/PluginInstallParams.ts +0 -10
  1133. package/bundle/src/codex-protocol/v2/PluginInstallPolicy.ts +0 -5
  1134. package/bundle/src/codex-protocol/v2/PluginInstallResponse.ts +0 -10
  1135. package/bundle/src/codex-protocol/v2/PluginInterface.ts +0 -46
  1136. package/bundle/src/codex-protocol/v2/PluginListMarketplaceKind.ts +0 -5
  1137. package/bundle/src/codex-protocol/v2/PluginListParams.ts +0 -18
  1138. package/bundle/src/codex-protocol/v2/PluginListResponse.ts +0 -11
  1139. package/bundle/src/codex-protocol/v2/PluginMarketplaceEntry.ts +0 -17
  1140. package/bundle/src/codex-protocol/v2/PluginReadParams.ts +0 -10
  1141. package/bundle/src/codex-protocol/v2/PluginReadResponse.ts +0 -6
  1142. package/bundle/src/codex-protocol/v2/PluginShareContext.ts +0 -12
  1143. package/bundle/src/codex-protocol/v2/PluginShareDeleteParams.ts +0 -5
  1144. package/bundle/src/codex-protocol/v2/PluginShareDeleteResponse.ts +0 -5
  1145. package/bundle/src/codex-protocol/v2/PluginShareDiscoverability.ts +0 -5
  1146. package/bundle/src/codex-protocol/v2/PluginShareListItem.ts +0 -11
  1147. package/bundle/src/codex-protocol/v2/PluginShareListParams.ts +0 -5
  1148. package/bundle/src/codex-protocol/v2/PluginShareListResponse.ts +0 -6
  1149. package/bundle/src/codex-protocol/v2/PluginSharePrincipal.ts +0 -10
  1150. package/bundle/src/codex-protocol/v2/PluginSharePrincipalType.ts +0 -5
  1151. package/bundle/src/codex-protocol/v2/PluginShareSaveParams.ts +0 -13
  1152. package/bundle/src/codex-protocol/v2/PluginShareSaveResponse.ts +0 -5
  1153. package/bundle/src/codex-protocol/v2/PluginShareTarget.ts +0 -6
  1154. package/bundle/src/codex-protocol/v2/PluginShareUpdateDiscoverability.ts +0 -5
  1155. package/bundle/src/codex-protocol/v2/PluginShareUpdateTargetsParams.ts +0 -11
  1156. package/bundle/src/codex-protocol/v2/PluginShareUpdateTargetsResponse.ts +0 -10
  1157. package/bundle/src/codex-protocol/v2/PluginSkillReadParams.ts +0 -9
  1158. package/bundle/src/codex-protocol/v2/PluginSkillReadResponse.ts +0 -5
  1159. package/bundle/src/codex-protocol/v2/PluginSource.ts +0 -9
  1160. package/bundle/src/codex-protocol/v2/PluginSummary.ts +0 -29
  1161. package/bundle/src/codex-protocol/v2/PluginUninstallParams.ts +0 -5
  1162. package/bundle/src/codex-protocol/v2/PluginUninstallResponse.ts +0 -5
  1163. package/bundle/src/codex-protocol/v2/PluginsMigration.ts +0 -5
  1164. package/bundle/src/codex-protocol/v2/ProcessExitedNotification.ts +0 -43
  1165. package/bundle/src/codex-protocol/v2/ProcessOutputDeltaNotification.ts +0 -27
  1166. package/bundle/src/codex-protocol/v2/ProcessOutputStream.ts +0 -8
  1167. package/bundle/src/codex-protocol/v2/ProcessTerminalSize.ts +0 -17
  1168. package/bundle/src/codex-protocol/v2/ProfileV2.ts +0 -37
  1169. package/bundle/src/codex-protocol/v2/RateLimitReachedType.ts +0 -10
  1170. package/bundle/src/codex-protocol/v2/RateLimitSnapshot.ts +0 -17
  1171. package/bundle/src/codex-protocol/v2/RateLimitWindow.ts +0 -9
  1172. package/bundle/src/codex-protocol/v2/RawResponseItemCompletedNotification.ts +0 -10
  1173. package/bundle/src/codex-protocol/v2/ReasoningEffortOption.ts +0 -6
  1174. package/bundle/src/codex-protocol/v2/ReasoningSummaryPartAddedNotification.ts +0 -10
  1175. package/bundle/src/codex-protocol/v2/ReasoningSummaryTextDeltaNotification.ts +0 -11
  1176. package/bundle/src/codex-protocol/v2/ReasoningTextDeltaNotification.ts +0 -11
  1177. package/bundle/src/codex-protocol/v2/RemoteControlConnectionStatus.ts +0 -5
  1178. package/bundle/src/codex-protocol/v2/RemoteControlStatusChangedNotification.ts +0 -12
  1179. package/bundle/src/codex-protocol/v2/RequestPermissionProfile.ts +0 -10
  1180. package/bundle/src/codex-protocol/v2/ResidencyRequirement.ts +0 -5
  1181. package/bundle/src/codex-protocol/v2/ReviewDelivery.ts +0 -5
  1182. package/bundle/src/codex-protocol/v2/ReviewStartParams.ts +0 -15
  1183. package/bundle/src/codex-protocol/v2/ReviewStartResponse.ts +0 -15
  1184. package/bundle/src/codex-protocol/v2/ReviewTarget.ts +0 -16
  1185. package/bundle/src/codex-protocol/v2/SandboxMode.ts +0 -5
  1186. package/bundle/src/codex-protocol/v2/SandboxPolicy.ts +0 -17
  1187. package/bundle/src/codex-protocol/v2/SandboxWorkspaceWrite.ts +0 -10
  1188. package/bundle/src/codex-protocol/v2/SendAddCreditsNudgeEmailParams.ts +0 -6
  1189. package/bundle/src/codex-protocol/v2/SendAddCreditsNudgeEmailResponse.ts +0 -6
  1190. package/bundle/src/codex-protocol/v2/ServerRequestResolvedNotification.ts +0 -6
  1191. package/bundle/src/codex-protocol/v2/SessionMigration.ts +0 -5
  1192. package/bundle/src/codex-protocol/v2/SessionSource.ts +0 -13
  1193. package/bundle/src/codex-protocol/v2/SkillDependencies.ts +0 -6
  1194. package/bundle/src/codex-protocol/v2/SkillErrorInfo.ts +0 -5
  1195. package/bundle/src/codex-protocol/v2/SkillInterface.ts +0 -13
  1196. package/bundle/src/codex-protocol/v2/SkillMetadata.ts +0 -21
  1197. package/bundle/src/codex-protocol/v2/SkillScope.ts +0 -5
  1198. package/bundle/src/codex-protocol/v2/SkillSummary.ts +0 -14
  1199. package/bundle/src/codex-protocol/v2/SkillToolDependency.ts +0 -12
  1200. package/bundle/src/codex-protocol/v2/SkillsChangedNotification.ts +0 -11
  1201. package/bundle/src/codex-protocol/v2/SkillsConfigWriteParams.ts +0 -16
  1202. package/bundle/src/codex-protocol/v2/SkillsConfigWriteResponse.ts +0 -5
  1203. package/bundle/src/codex-protocol/v2/SkillsListEntry.ts +0 -11
  1204. package/bundle/src/codex-protocol/v2/SkillsListParams.ts +0 -14
  1205. package/bundle/src/codex-protocol/v2/SkillsListResponse.ts +0 -6
  1206. package/bundle/src/codex-protocol/v2/SortDirection.ts +0 -5
  1207. package/bundle/src/codex-protocol/v2/SubagentMigration.ts +0 -5
  1208. package/bundle/src/codex-protocol/v2/TerminalInteractionNotification.ts +0 -11
  1209. package/bundle/src/codex-protocol/v2/TextElement.ts +0 -15
  1210. package/bundle/src/codex-protocol/v2/TextPosition.ts +0 -14
  1211. package/bundle/src/codex-protocol/v2/TextRange.ts +0 -6
  1212. package/bundle/src/codex-protocol/v2/Thread.ts +0 -88
  1213. package/bundle/src/codex-protocol/v2/ThreadActiveFlag.ts +0 -5
  1214. package/bundle/src/codex-protocol/v2/ThreadApproveGuardianDeniedActionParams.ts +0 -12
  1215. package/bundle/src/codex-protocol/v2/ThreadApproveGuardianDeniedActionResponse.ts +0 -5
  1216. package/bundle/src/codex-protocol/v2/ThreadArchiveParams.ts +0 -5
  1217. package/bundle/src/codex-protocol/v2/ThreadArchiveResponse.ts +0 -5
  1218. package/bundle/src/codex-protocol/v2/ThreadArchivedNotification.ts +0 -5
  1219. package/bundle/src/codex-protocol/v2/ThreadClosedNotification.ts +0 -5
  1220. package/bundle/src/codex-protocol/v2/ThreadCompactStartParams.ts +0 -5
  1221. package/bundle/src/codex-protocol/v2/ThreadCompactStartResponse.ts +0 -5
  1222. package/bundle/src/codex-protocol/v2/ThreadForkParams.ts +0 -40
  1223. package/bundle/src/codex-protocol/v2/ThreadForkResponse.ts +0 -30
  1224. package/bundle/src/codex-protocol/v2/ThreadGoal.ts +0 -15
  1225. package/bundle/src/codex-protocol/v2/ThreadGoalClearedNotification.ts +0 -5
  1226. package/bundle/src/codex-protocol/v2/ThreadGoalStatus.ts +0 -5
  1227. package/bundle/src/codex-protocol/v2/ThreadGoalUpdatedNotification.ts +0 -10
  1228. package/bundle/src/codex-protocol/v2/ThreadInjectItemsParams.ts +0 -12
  1229. package/bundle/src/codex-protocol/v2/ThreadInjectItemsResponse.ts +0 -5
  1230. package/bundle/src/codex-protocol/v2/ThreadItem.ts +0 -156
  1231. package/bundle/src/codex-protocol/v2/ThreadListParams.ts +0 -55
  1232. package/bundle/src/codex-protocol/v2/ThreadListResponse.ts +0 -20
  1233. package/bundle/src/codex-protocol/v2/ThreadLoadedListParams.ts +0 -14
  1234. package/bundle/src/codex-protocol/v2/ThreadLoadedListResponse.ts +0 -15
  1235. package/bundle/src/codex-protocol/v2/ThreadMetadataGitInfoUpdateParams.ts +0 -21
  1236. package/bundle/src/codex-protocol/v2/ThreadMetadataUpdateParams.ts +0 -14
  1237. package/bundle/src/codex-protocol/v2/ThreadMetadataUpdateResponse.ts +0 -6
  1238. package/bundle/src/codex-protocol/v2/ThreadNameUpdatedNotification.ts +0 -5
  1239. package/bundle/src/codex-protocol/v2/ThreadReadParams.ts +0 -11
  1240. package/bundle/src/codex-protocol/v2/ThreadReadResponse.ts +0 -6
  1241. package/bundle/src/codex-protocol/v2/ThreadRealtimeAudioChunk.ts +0 -14
  1242. package/bundle/src/codex-protocol/v2/ThreadRealtimeClosedNotification.ts +0 -8
  1243. package/bundle/src/codex-protocol/v2/ThreadRealtimeErrorNotification.ts +0 -8
  1244. package/bundle/src/codex-protocol/v2/ThreadRealtimeItemAddedNotification.ts +0 -9
  1245. package/bundle/src/codex-protocol/v2/ThreadRealtimeOutputAudioDeltaNotification.ts +0 -12
  1246. package/bundle/src/codex-protocol/v2/ThreadRealtimeSdpNotification.ts +0 -8
  1247. package/bundle/src/codex-protocol/v2/ThreadRealtimeStartTransport.ts +0 -17
  1248. package/bundle/src/codex-protocol/v2/ThreadRealtimeStartedNotification.ts +0 -13
  1249. package/bundle/src/codex-protocol/v2/ThreadRealtimeTranscriptDeltaNotification.ts +0 -16
  1250. package/bundle/src/codex-protocol/v2/ThreadRealtimeTranscriptDoneNotification.ts +0 -16
  1251. package/bundle/src/codex-protocol/v2/ThreadResumeParams.ts +0 -39
  1252. package/bundle/src/codex-protocol/v2/ThreadResumeResponse.ts +0 -30
  1253. package/bundle/src/codex-protocol/v2/ThreadRollbackParams.ts +0 -14
  1254. package/bundle/src/codex-protocol/v2/ThreadRollbackResponse.ts +0 -15
  1255. package/bundle/src/codex-protocol/v2/ThreadSetNameParams.ts +0 -5
  1256. package/bundle/src/codex-protocol/v2/ThreadSetNameResponse.ts +0 -5
  1257. package/bundle/src/codex-protocol/v2/ThreadShellCommandParams.ts +0 -14
  1258. package/bundle/src/codex-protocol/v2/ThreadShellCommandResponse.ts +0 -5
  1259. package/bundle/src/codex-protocol/v2/ThreadSortKey.ts +0 -5
  1260. package/bundle/src/codex-protocol/v2/ThreadSource.ts +0 -5
  1261. package/bundle/src/codex-protocol/v2/ThreadSourceKind.ts +0 -15
  1262. package/bundle/src/codex-protocol/v2/ThreadStartParams.ts +0 -33
  1263. package/bundle/src/codex-protocol/v2/ThreadStartResponse.ts +0 -30
  1264. package/bundle/src/codex-protocol/v2/ThreadStartSource.ts +0 -5
  1265. package/bundle/src/codex-protocol/v2/ThreadStartedNotification.ts +0 -6
  1266. package/bundle/src/codex-protocol/v2/ThreadStatus.ts +0 -10
  1267. package/bundle/src/codex-protocol/v2/ThreadStatusChangedNotification.ts +0 -6
  1268. package/bundle/src/codex-protocol/v2/ThreadTokenUsage.ts +0 -10
  1269. package/bundle/src/codex-protocol/v2/ThreadTokenUsageUpdatedNotification.ts +0 -10
  1270. package/bundle/src/codex-protocol/v2/ThreadUnarchiveParams.ts +0 -5
  1271. package/bundle/src/codex-protocol/v2/ThreadUnarchiveResponse.ts +0 -6
  1272. package/bundle/src/codex-protocol/v2/ThreadUnarchivedNotification.ts +0 -5
  1273. package/bundle/src/codex-protocol/v2/ThreadUnsubscribeParams.ts +0 -5
  1274. package/bundle/src/codex-protocol/v2/ThreadUnsubscribeResponse.ts +0 -6
  1275. package/bundle/src/codex-protocol/v2/ThreadUnsubscribeStatus.ts +0 -5
  1276. package/bundle/src/codex-protocol/v2/TokenUsageBreakdown.ts +0 -11
  1277. package/bundle/src/codex-protocol/v2/ToolRequestUserInputAnswer.ts +0 -8
  1278. package/bundle/src/codex-protocol/v2/ToolRequestUserInputOption.ts +0 -8
  1279. package/bundle/src/codex-protocol/v2/ToolRequestUserInputParams.ts +0 -14
  1280. package/bundle/src/codex-protocol/v2/ToolRequestUserInputQuestion.ts +0 -16
  1281. package/bundle/src/codex-protocol/v2/ToolRequestUserInputResponse.ts +0 -11
  1282. package/bundle/src/codex-protocol/v2/ToolsV2.ts +0 -6
  1283. package/bundle/src/codex-protocol/v2/Turn.ts +0 -36
  1284. package/bundle/src/codex-protocol/v2/TurnCompletedNotification.ts +0 -6
  1285. package/bundle/src/codex-protocol/v2/TurnDiffUpdatedNotification.ts +0 -9
  1286. package/bundle/src/codex-protocol/v2/TurnEnvironmentParams.ts +0 -6
  1287. package/bundle/src/codex-protocol/v2/TurnError.ts +0 -10
  1288. package/bundle/src/codex-protocol/v2/TurnInterruptParams.ts +0 -5
  1289. package/bundle/src/codex-protocol/v2/TurnInterruptResponse.ts +0 -5
  1290. package/bundle/src/codex-protocol/v2/TurnItemsView.ts +0 -5
  1291. package/bundle/src/codex-protocol/v2/TurnPlanStep.ts +0 -6
  1292. package/bundle/src/codex-protocol/v2/TurnPlanStepStatus.ts +0 -5
  1293. package/bundle/src/codex-protocol/v2/TurnPlanUpdatedNotification.ts +0 -11
  1294. package/bundle/src/codex-protocol/v2/TurnStartParams.ts +0 -48
  1295. package/bundle/src/codex-protocol/v2/TurnStartResponse.ts +0 -6
  1296. package/bundle/src/codex-protocol/v2/TurnStartedNotification.ts +0 -6
  1297. package/bundle/src/codex-protocol/v2/TurnStatus.ts +0 -5
  1298. package/bundle/src/codex-protocol/v2/TurnSteerParams.ts +0 -13
  1299. package/bundle/src/codex-protocol/v2/TurnSteerResponse.ts +0 -5
  1300. package/bundle/src/codex-protocol/v2/UserInput.ts +0 -18
  1301. package/bundle/src/codex-protocol/v2/WarningNotification.ts +0 -14
  1302. package/bundle/src/codex-protocol/v2/WebSearchAction.ts +0 -9
  1303. package/bundle/src/codex-protocol/v2/WindowsSandboxReadiness.ts +0 -5
  1304. package/bundle/src/codex-protocol/v2/WindowsSandboxReadinessResponse.ts +0 -6
  1305. package/bundle/src/codex-protocol/v2/WindowsSandboxSetupCompletedNotification.ts +0 -10
  1306. package/bundle/src/codex-protocol/v2/WindowsSandboxSetupMode.ts +0 -5
  1307. package/bundle/src/codex-protocol/v2/WindowsSandboxSetupStartParams.ts +0 -10
  1308. package/bundle/src/codex-protocol/v2/WindowsSandboxSetupStartResponse.ts +0 -5
  1309. package/bundle/src/codex-protocol/v2/WindowsWorldWritableWarningNotification.ts +0 -9
  1310. package/bundle/src/codex-protocol/v2/WriteStatus.ts +0 -5
  1311. package/bundle/src/codex-protocol/v2/index.ts +0 -446
  1312. package/bundle/src/utils/providers/openai/codex-rpc.ts +0 -238
  1313. package/bundle/src/utils/providers/openai/codex-worker.test.ts +0 -1006
  1314. package/bundle/src/utils/providers/openai/codex-worker.ts +0 -927
  1315. package/bundle/src/utils/providers/openai/openai-worker-pool-config.ts +0 -112
  1316. package/bundle/web-dist/client/assets/index-C24D5PiN.js +0 -106
  1317. package/bundle/web-dist/client/assets/index-CcMEpCgt.css +0 -1
  1318. package/bundle/web-dist/client/assets/logs-CIlZG6A3.js +0 -1
  1319. package/bundle/web-dist/client/assets/monit-DZFBMxKl.js +0 -1
  1320. package/bundle/web-dist/client/assets/routes-C3wlSNBL.js +0 -5
  1321. package/bundle/web-dist/client/assets/services.generated-jGypfumC.js +0 -51
  1322. package/bundle/web-dist/client/assets/settings-ClRDWO-8.js +0 -1
  1323. package/bundle/web-dist/client/assets/show-BP7U8yyJ.js +0 -2
  1324. package/bundle/web-dist/client/assets/tokens-DfQeULnJ.js +0 -1
  1325. package/bundle/web-dist/client/assets/use-oauth-login-flow-CY-ASCfL.js +0 -1
  1326. package/bundle/web-dist/server/assets/lazyRouteComponent-DOc8TV-P.js +0 -1856
  1327. package/bundle/web-dist/server/assets/logs-CfF3nmLM.js +0 -451
  1328. package/bundle/web-dist/server/assets/monit-BSaKhh5D.js +0 -1577
  1329. package/bundle/web-dist/server/assets/plus-DLFUHsfx.js +0 -19
  1330. package/bundle/web-dist/server/assets/react-dom-BotjLnTK.js +0 -462
  1331. package/bundle/web-dist/server/assets/routes-CHMxrTT0.js +0 -2924
  1332. package/bundle/web-dist/server/assets/services.generated-D3Q3FYot.js +0 -23570
  1333. package/bundle/web-dist/server/assets/settings-DOQjV28c.js +0 -598
  1334. package/bundle/web-dist/server/assets/show-Cn_C6Qvl.js +0 -2776
  1335. package/bundle/web-dist/server/assets/tokens-c0EN3iCx.js +0 -441
  1336. package/bundle/web-dist/server/assets/use-oauth-login-flow-B68AbMDE.js +0 -160
  1337. /package/bundle/dist/{codex-protocol/AbsolutePathBuf.js → utils/providers/common/provider-types.js} +0 -0
@@ -0,0 +1,144 @@
1
+ import os from "node:os";
2
+ //#region src/utils/providers/openai/openai-backend-protocol.ts
3
+ const CHATGPT_CODEX_RESPONSES_URL = "https://chatgpt.com/backend-api/codex/responses";
4
+ const CODEX_CLI_ORIGINATOR = "codex_cli_rs";
5
+ const CODEX_CLI_VERSION = "0.147.0";
6
+ function codexPlatform() {
7
+ const names = {
8
+ darwin: "Mac OS",
9
+ linux: "Linux",
10
+ win32: "Windows"
11
+ };
12
+ const terminal = process.env.TERM_PROGRAM;
13
+ const terminalVersion = process.env.TERM_PROGRAM_VERSION;
14
+ return {
15
+ osType: names[process.platform] ?? process.platform,
16
+ osVersion: os.release(),
17
+ architecture: process.arch,
18
+ terminal: terminal ? `${terminal}${terminalVersion ? `/${terminalVersion}` : ""}` : "unknown"
19
+ };
20
+ }
21
+ /** Matches the platform/terminal suffix emitted by the pinned Rust Codex CLI. */
22
+ function codexCliUserAgent(platform = codexPlatform()) {
23
+ return `codex_cli_rs/${CODEX_CLI_VERSION} (${platform.osType} ${platform.osVersion}; ${platform.architecture}) ${platform.terminal}`;
24
+ }
25
+ function buildOpenAIResponsesRequest(options) {
26
+ const tools = options.tools ? [...options.tools] : [];
27
+ if (options.imageGeneration) tools.push(options.imageGeneration === true ? { type: "image_generation" } : {
28
+ type: "image_generation",
29
+ ...options.imageGeneration
30
+ });
31
+ const text = options.verbosity || options.outputSchema ? {
32
+ ...options.verbosity ? { verbosity: options.verbosity } : {},
33
+ ...options.outputSchema ? { format: {
34
+ type: "json_schema",
35
+ strict: true,
36
+ schema: options.outputSchema.schema,
37
+ name: options.outputSchema.name ?? "codex_output_schema"
38
+ } } : {}
39
+ } : void 0;
40
+ return {
41
+ model: options.model,
42
+ ...options.instructions ? { instructions: options.instructions } : {},
43
+ input: [...options.history],
44
+ ...tools.length ? { tools } : {},
45
+ tool_choice: options.toolChoice ?? "auto",
46
+ parallel_tool_calls: options.parallelToolCalls ?? true,
47
+ reasoning: options.reasoning ?? null,
48
+ store: false,
49
+ stream: true,
50
+ include: ["reasoning.encrypted_content"],
51
+ ...options.serviceTier ? { service_tier: options.serviceTier } : {},
52
+ ...options.promptCacheKey ? { prompt_cache_key: options.promptCacheKey } : {},
53
+ ...text ? { text } : {}
54
+ };
55
+ }
56
+ function buildCodexIdentityHeaders(accessToken, accountId, correlation) {
57
+ return {
58
+ Accept: "text/event-stream",
59
+ Authorization: `Bearer ${accessToken}`,
60
+ "ChatGPT-Account-ID": accountId,
61
+ "Content-Type": "application/json",
62
+ originator: CODEX_CLI_ORIGINATOR,
63
+ "User-Agent": codexCliUserAgent(),
64
+ ...correlation?.sessionId ? { "session-id": correlation.sessionId } : {},
65
+ ...correlation?.threadId ? { "thread-id": correlation.threadId } : {},
66
+ ...correlation?.clientRequestId ? { "x-client-request-id": correlation.clientRequestId } : {}
67
+ };
68
+ }
69
+ var OpenAIProtocolError = class extends Error {
70
+ code;
71
+ status;
72
+ retryAfterMs;
73
+ constructor(message, code, status, retryAfterMs) {
74
+ super(message);
75
+ this.code = code;
76
+ this.status = status;
77
+ this.retryAfterMs = retryAfterMs;
78
+ this.name = "OpenAIProtocolError";
79
+ }
80
+ };
81
+ function usageFrom(value) {
82
+ if (!value || typeof value !== "object") return void 0;
83
+ const usage = value;
84
+ const inputDetails = usage.input_tokens_details ?? {};
85
+ const outputDetails = usage.output_tokens_details ?? {};
86
+ return {
87
+ inputTokens: Number(usage.input_tokens ?? 0),
88
+ cachedInputTokens: Number(inputDetails.cached_tokens ?? 0),
89
+ outputTokens: Number(usage.output_tokens ?? 0),
90
+ reasoningTokens: Number(outputDetails.reasoning_tokens ?? 0),
91
+ totalTokens: Number(usage.total_tokens ?? 0)
92
+ };
93
+ }
94
+ function normalizeOpenAIEvent(raw) {
95
+ if (!raw || typeof raw !== "object") return void 0;
96
+ const event = raw;
97
+ const type = String(event.type ?? "");
98
+ if (type === "response.created") {
99
+ const response = event.response;
100
+ return {
101
+ type: "created",
102
+ ...response?.id ? { responseId: String(response.id) } : {}
103
+ };
104
+ }
105
+ if (type === "response.output_text.delta" && typeof event.delta === "string") return {
106
+ type: "text-delta",
107
+ text: event.delta
108
+ };
109
+ if ((type === "response.output_item.added" || type === "response.output_item.done") && event.item && typeof event.item === "object") {
110
+ const item = event.item;
111
+ if (item.type === "image_generation_call" && typeof item.result === "string") return {
112
+ type: "image",
113
+ ...typeof item.id === "string" ? { id: item.id } : {},
114
+ base64: item.result,
115
+ mimeType: "image/png",
116
+ ...typeof item.revised_prompt === "string" ? { revisedPrompt: item.revised_prompt } : typeof item.revisedPrompt === "string" ? { revisedPrompt: item.revisedPrompt } : {}
117
+ };
118
+ return {
119
+ type: "output-item",
120
+ item
121
+ };
122
+ }
123
+ if (type === "response.completed") {
124
+ const response = event.response ?? {};
125
+ return {
126
+ type: "completed",
127
+ responseId: String(response.id ?? ""),
128
+ ...response.usage ? { usage: usageFrom(response.usage) } : {},
129
+ ...typeof response.model === "string" ? { model: response.model } : {}
130
+ };
131
+ }
132
+ if (type === "error" || type === "response.failed" || type === "response.incomplete") {
133
+ const source = event.error ?? event.response ?? event;
134
+ const nested = source.error ?? source;
135
+ return {
136
+ type: "error",
137
+ error: new OpenAIProtocolError(String(nested.message ?? `OpenAI stream ended with ${type}`), typeof nested.code === "string" ? nested.code : void 0)
138
+ };
139
+ }
140
+ }
141
+ //#endregion
142
+ export { CHATGPT_CODEX_RESPONSES_URL, CODEX_CLI_ORIGINATOR, CODEX_CLI_VERSION, OpenAIProtocolError, buildCodexIdentityHeaders, buildOpenAIResponsesRequest, codexCliUserAgent, normalizeOpenAIEvent };
143
+
144
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbmFpLWJhY2tlbmQtcHJvdG9jb2wuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3V0aWxzL3Byb3ZpZGVycy9vcGVuYWkvb3BlbmFpLWJhY2tlbmQtcHJvdG9jb2wudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG9zIGZyb20gXCJub2RlOm9zXCI7XG5cbmV4cG9ydCBjb25zdCBDSEFUR1BUX0NPREVYX1JFU1BPTlNFU19VUkwgPVxuICBcImh0dHBzOi8vY2hhdGdwdC5jb20vYmFja2VuZC1hcGkvY29kZXgvcmVzcG9uc2VzXCIgYXMgY29uc3Q7XG5cbmV4cG9ydCBjb25zdCBDT0RFWF9DTElfT1JJR0lOQVRPUiA9IFwiY29kZXhfY2xpX3JzXCIgYXMgY29uc3Q7XG5leHBvcnQgY29uc3QgQ09ERVhfQ0xJX1ZFUlNJT04gPSBcIjAuMTQ3LjBcIiBhcyBjb25zdDtcblxuZXhwb3J0IGludGVyZmFjZSBDb2RleFVzZXJBZ2VudFBsYXRmb3JtIHtcbiAgb3NUeXBlOiBzdHJpbmc7XG4gIG9zVmVyc2lvbjogc3RyaW5nO1xuICBhcmNoaXRlY3R1cmU6IHN0cmluZztcbiAgdGVybWluYWw6IHN0cmluZztcbn1cblxuZnVuY3Rpb24gY29kZXhQbGF0Zm9ybSgpOiBDb2RleFVzZXJBZ2VudFBsYXRmb3JtIHtcbiAgY29uc3QgbmFtZXM6IFBhcnRpYWw8UmVjb3JkPE5vZGVKUy5QbGF0Zm9ybSwgc3RyaW5nPj4gPSB7XG4gICAgZGFyd2luOiBcIk1hYyBPU1wiLFxuICAgIGxpbnV4OiBcIkxpbnV4XCIsXG4gICAgd2luMzI6IFwiV2luZG93c1wiLFxuICB9O1xuICBjb25zdCB0ZXJtaW5hbCA9IHByb2Nlc3MuZW52LlRFUk1fUFJPR1JBTTtcbiAgY29uc3QgdGVybWluYWxWZXJzaW9uID0gcHJvY2Vzcy5lbnYuVEVSTV9QUk9HUkFNX1ZFUlNJT047XG4gIHJldHVybiB7XG4gICAgb3NUeXBlOiBuYW1lc1twcm9jZXNzLnBsYXRmb3JtXSA/PyBwcm9jZXNzLnBsYXRmb3JtLFxuICAgIG9zVmVyc2lvbjogb3MucmVsZWFzZSgpLFxuICAgIGFyY2hpdGVjdHVyZTogcHJvY2Vzcy5hcmNoLFxuICAgIHRlcm1pbmFsOiB0ZXJtaW5hbCA/IGAke3Rlcm1pbmFsfSR7dGVybWluYWxWZXJzaW9uID8gYC8ke3Rlcm1pbmFsVmVyc2lvbn1gIDogXCJcIn1gIDogXCJ1bmtub3duXCIsXG4gIH07XG59XG5cbi8qKiBNYXRjaGVzIHRoZSBwbGF0Zm9ybS90ZXJtaW5hbCBzdWZmaXggZW1pdHRlZCBieSB0aGUgcGlubmVkIFJ1c3QgQ29kZXggQ0xJLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvZGV4Q2xpVXNlckFnZW50KHBsYXRmb3JtOiBDb2RleFVzZXJBZ2VudFBsYXRmb3JtID0gY29kZXhQbGF0Zm9ybSgpKTogc3RyaW5nIHtcbiAgcmV0dXJuIGBjb2RleF9jbGlfcnMvJHtDT0RFWF9DTElfVkVSU0lPTn0gKCR7cGxhdGZvcm0ub3NUeXBlfSAke3BsYXRmb3JtLm9zVmVyc2lvbn07ICR7cGxhdGZvcm0uYXJjaGl0ZWN0dXJlfSkgJHtwbGF0Zm9ybS50ZXJtaW5hbH1gO1xufVxuXG5leHBvcnQgdHlwZSBKc29uVmFsdWUgPVxuICB8IG51bGxcbiAgfCBib29sZWFuXG4gIHwgbnVtYmVyXG4gIHwgc3RyaW5nXG4gIHwgSnNvblZhbHVlW11cbiAgfCB7IFtrZXk6IHN0cmluZ106IEpzb25WYWx1ZSB9O1xuXG4vKiogUmF3IFJlc3BvbnNlcyBBUEkgaXRlbXMuIEtlZXBpbmcgdGhlc2Ugb3BhcXVlIHByZXNlcnZlcyB0aGUgY29tcGxldGUgY29udmVyc2F0aW9uIGhpc3RvcnkuICovXG5leHBvcnQgdHlwZSBPcGVuQUlSZXNwb25zZUl0ZW0gPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxuZXhwb3J0IGludGVyZmFjZSBPcGVuQUlPdXRwdXRTY2hlbWEge1xuICBuYW1lPzogc3RyaW5nO1xuICBzY2hlbWE6IEpzb25WYWx1ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPcGVuQUlSZXNwb25zZXNPcHRpb25zIHtcbiAgbW9kZWw6IHN0cmluZztcbiAgaW5zdHJ1Y3Rpb25zPzogc3RyaW5nO1xuICBoaXN0b3J5OiByZWFkb25seSBPcGVuQUlSZXNwb25zZUl0ZW1bXTtcbiAgdG9vbHM/OiByZWFkb25seSBPcGVuQUlSZXNwb25zZUl0ZW1bXTtcbiAgdG9vbENob2ljZT86IHN0cmluZyB8IE9wZW5BSVJlc3BvbnNlSXRlbTtcbiAgcGFyYWxsZWxUb29sQ2FsbHM/OiBib29sZWFuO1xuICByZWFzb25pbmc/OiB7XG4gICAgZWZmb3J0PzogXCJub25lXCIgfCBcIm1pbmltYWxcIiB8IFwibG93XCIgfCBcIm1lZGl1bVwiIHwgXCJoaWdoXCIgfCBcInhoaWdoXCI7XG4gICAgc3VtbWFyeT86IFwiYXV0b1wiIHwgXCJjb25jaXNlXCIgfCBcImRldGFpbGVkXCI7XG4gIH07XG4gIHZlcmJvc2l0eT86IFwibG93XCIgfCBcIm1lZGl1bVwiIHwgXCJoaWdoXCI7XG4gIHNlcnZpY2VUaWVyPzogc3RyaW5nO1xuICBwcm9tcHRDYWNoZUtleT86IHN0cmluZztcbiAgb3V0cHV0U2NoZW1hPzogT3BlbkFJT3V0cHV0U2NoZW1hO1xuICBpbWFnZUdlbmVyYXRpb24/OiBib29sZWFuIHwgT3BlbkFJUmVzcG9uc2VJdGVtO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9wZW5BSVJlc3BvbnNlc1JlcXVlc3Qge1xuICBtb2RlbDogc3RyaW5nO1xuICBpbnN0cnVjdGlvbnM/OiBzdHJpbmc7XG4gIGlucHV0OiBPcGVuQUlSZXNwb25zZUl0ZW1bXTtcbiAgdG9vbHM/OiBPcGVuQUlSZXNwb25zZUl0ZW1bXTtcbiAgdG9vbF9jaG9pY2U6IHN0cmluZyB8IE9wZW5BSVJlc3BvbnNlSXRlbTtcbiAgcGFyYWxsZWxfdG9vbF9jYWxsczogYm9vbGVhbjtcbiAgcmVhc29uaW5nOiBPcGVuQUlSZXNwb25zZXNPcHRpb25zW1wicmVhc29uaW5nXCJdIHwgbnVsbDtcbiAgc3RvcmU6IGZhbHNlO1xuICBzdHJlYW06IHRydWU7XG4gIGluY2x1ZGU6IHN0cmluZ1tdO1xuICBzZXJ2aWNlX3RpZXI/OiBzdHJpbmc7XG4gIHByb21wdF9jYWNoZV9rZXk/OiBzdHJpbmc7XG4gIHRleHQ/OiB7XG4gICAgdmVyYm9zaXR5PzogXCJsb3dcIiB8IFwibWVkaXVtXCIgfCBcImhpZ2hcIjtcbiAgICBmb3JtYXQ/OiB7XG4gICAgICB0eXBlOiBcImpzb25fc2NoZW1hXCI7XG4gICAgICBzdHJpY3Q6IHRydWU7XG4gICAgICBzY2hlbWE6IEpzb25WYWx1ZTtcbiAgICAgIG5hbWU6IHN0cmluZztcbiAgICB9O1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRPcGVuQUlSZXNwb25zZXNSZXF1ZXN0KFxuICBvcHRpb25zOiBPcGVuQUlSZXNwb25zZXNPcHRpb25zLFxuKTogT3BlbkFJUmVzcG9uc2VzUmVxdWVzdCB7XG4gIGNvbnN0IHRvb2xzID0gb3B0aW9ucy50b29scyA/IFsuLi5vcHRpb25zLnRvb2xzXSA6IFtdO1xuICBpZiAob3B0aW9ucy5pbWFnZUdlbmVyYXRpb24pIHtcbiAgICB0b29scy5wdXNoKFxuICAgICAgb3B0aW9ucy5pbWFnZUdlbmVyYXRpb24gPT09IHRydWVcbiAgICAgICAgPyB7IHR5cGU6IFwiaW1hZ2VfZ2VuZXJhdGlvblwiIH1cbiAgICAgICAgOiB7IHR5cGU6IFwiaW1hZ2VfZ2VuZXJhdGlvblwiLCAuLi5vcHRpb25zLmltYWdlR2VuZXJhdGlvbiB9LFxuICAgICk7XG4gIH1cblxuICBjb25zdCB0ZXh0ID1cbiAgICBvcHRpb25zLnZlcmJvc2l0eSB8fCBvcHRpb25zLm91dHB1dFNjaGVtYVxuICAgICAgPyB7XG4gICAgICAgICAgLi4uKG9wdGlvbnMudmVyYm9zaXR5ID8geyB2ZXJib3NpdHk6IG9wdGlvbnMudmVyYm9zaXR5IH0gOiB7fSksXG4gICAgICAgICAgLi4uKG9wdGlvbnMub3V0cHV0U2NoZW1hXG4gICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICBmb3JtYXQ6IHtcbiAgICAgICAgICAgICAgICAgIHR5cGU6IFwianNvbl9zY2hlbWFcIiBhcyBjb25zdCxcbiAgICAgICAgICAgICAgICAgIHN0cmljdDogdHJ1ZSBhcyBjb25zdCxcbiAgICAgICAgICAgICAgICAgIHNjaGVtYTogb3B0aW9ucy5vdXRwdXRTY2hlbWEuc2NoZW1hLFxuICAgICAgICAgICAgICAgICAgbmFtZTogb3B0aW9ucy5vdXRwdXRTY2hlbWEubmFtZSA/PyBcImNvZGV4X291dHB1dF9zY2hlbWFcIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgfVxuICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgcmV0dXJuIHtcbiAgICBtb2RlbDogb3B0aW9ucy5tb2RlbCxcbiAgICAuLi4ob3B0aW9ucy5pbnN0cnVjdGlvbnMgPyB7IGluc3RydWN0aW9uczogb3B0aW9ucy5pbnN0cnVjdGlvbnMgfSA6IHt9KSxcbiAgICAvLyBDb3B5IHRoZSBhcnJheSwgbm90IGl0cyBpdGVtczogcmF3IGl0ZW1zIG11c3QgYXJyaXZlIGJ5dGUtZm9yLWJ5dGUgZXF1aXZhbGVudC5cbiAgICBpbnB1dDogWy4uLm9wdGlvbnMuaGlzdG9yeV0sXG4gICAgLi4uKHRvb2xzLmxlbmd0aCA/IHsgdG9vbHMgfSA6IHt9KSxcbiAgICB0b29sX2Nob2ljZTogb3B0aW9ucy50b29sQ2hvaWNlID8/IFwiYXV0b1wiLFxuICAgIHBhcmFsbGVsX3Rvb2xfY2FsbHM6IG9wdGlvbnMucGFyYWxsZWxUb29sQ2FsbHMgPz8gdHJ1ZSxcbiAgICByZWFzb25pbmc6IG9wdGlvbnMucmVhc29uaW5nID8/IG51bGwsXG4gICAgc3RvcmU6IGZhbHNlLFxuICAgIHN0cmVhbTogdHJ1ZSxcbiAgICBpbmNsdWRlOiBbXCJyZWFzb25pbmcuZW5jcnlwdGVkX2NvbnRlbnRcIl0sXG4gICAgLi4uKG9wdGlvbnMuc2VydmljZVRpZXIgPyB7IHNlcnZpY2VfdGllcjogb3B0aW9ucy5zZXJ2aWNlVGllciB9IDoge30pLFxuICAgIC4uLihvcHRpb25zLnByb21wdENhY2hlS2V5ID8geyBwcm9tcHRfY2FjaGVfa2V5OiBvcHRpb25zLnByb21wdENhY2hlS2V5IH0gOiB7fSksXG4gICAgLi4uKHRleHQgPyB7IHRleHQgfSA6IHt9KSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkQ29kZXhJZGVudGl0eUhlYWRlcnMoXG4gIGFjY2Vzc1Rva2VuOiBzdHJpbmcsXG4gIGFjY291bnRJZDogc3RyaW5nLFxuICBjb3JyZWxhdGlvbj86IHsgc2Vzc2lvbklkPzogc3RyaW5nOyB0aHJlYWRJZD86IHN0cmluZzsgY2xpZW50UmVxdWVzdElkPzogc3RyaW5nIH0sXG4pOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgcmV0dXJuIHtcbiAgICBBY2NlcHQ6IFwidGV4dC9ldmVudC1zdHJlYW1cIixcbiAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7YWNjZXNzVG9rZW59YCxcbiAgICBcIkNoYXRHUFQtQWNjb3VudC1JRFwiOiBhY2NvdW50SWQsXG4gICAgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIsXG4gICAgb3JpZ2luYXRvcjogQ09ERVhfQ0xJX09SSUdJTkFUT1IsXG4gICAgXCJVc2VyLUFnZW50XCI6IGNvZGV4Q2xpVXNlckFnZW50KCksXG4gICAgLi4uKGNvcnJlbGF0aW9uPy5zZXNzaW9uSWQgPyB7IFwic2Vzc2lvbi1pZFwiOiBjb3JyZWxhdGlvbi5zZXNzaW9uSWQgfSA6IHt9KSxcbiAgICAuLi4oY29ycmVsYXRpb24/LnRocmVhZElkID8geyBcInRocmVhZC1pZFwiOiBjb3JyZWxhdGlvbi50aHJlYWRJZCB9IDoge30pLFxuICAgIC4uLihjb3JyZWxhdGlvbj8uY2xpZW50UmVxdWVzdElkID8geyBcIngtY2xpZW50LXJlcXVlc3QtaWRcIjogY29ycmVsYXRpb24uY2xpZW50UmVxdWVzdElkIH0gOiB7fSksXG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3BlbkFJVXNhZ2Uge1xuICBpbnB1dFRva2VuczogbnVtYmVyO1xuICBjYWNoZWRJbnB1dFRva2VuczogbnVtYmVyO1xuICBvdXRwdXRUb2tlbnM6IG51bWJlcjtcbiAgcmVhc29uaW5nVG9rZW5zOiBudW1iZXI7XG4gIHRvdGFsVG9rZW5zOiBudW1iZXI7XG59XG5cbmV4cG9ydCB0eXBlIE9wZW5BSU5vcm1hbGl6ZWRFdmVudCA9XG4gIHwgeyB0eXBlOiBcImNyZWF0ZWRcIjsgcmVzcG9uc2VJZD86IHN0cmluZyB9XG4gIHwgeyB0eXBlOiBcInRleHQtZGVsdGFcIjsgdGV4dDogc3RyaW5nIH1cbiAgfCB7IHR5cGU6IFwiaW1hZ2VcIjsgaWQ/OiBzdHJpbmc7IGJhc2U2NDogc3RyaW5nOyBtaW1lVHlwZTogXCJpbWFnZS9wbmdcIjsgcmV2aXNlZFByb21wdD86IHN0cmluZyB9XG4gIHwgeyB0eXBlOiBcIm91dHB1dC1pdGVtXCI7IGl0ZW06IE9wZW5BSVJlc3BvbnNlSXRlbSB9XG4gIHwgeyB0eXBlOiBcImNvbXBsZXRlZFwiOyByZXNwb25zZUlkOiBzdHJpbmc7IHVzYWdlPzogT3BlbkFJVXNhZ2U7IG1vZGVsPzogc3RyaW5nIH1cbiAgfCB7IHR5cGU6IFwiZXJyb3JcIjsgZXJyb3I6IE9wZW5BSVByb3RvY29sRXJyb3IgfTtcblxuZXhwb3J0IGNsYXNzIE9wZW5BSVByb3RvY29sRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICBwdWJsaWMgcmVhZG9ubHkgY29kZT86IHN0cmluZyxcbiAgICBwdWJsaWMgcmVhZG9ubHkgc3RhdHVzPzogbnVtYmVyLFxuICAgIHB1YmxpYyByZWFkb25seSByZXRyeUFmdGVyTXM/OiBudW1iZXIsXG4gICkge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgIHRoaXMubmFtZSA9IFwiT3BlbkFJUHJvdG9jb2xFcnJvclwiO1xuICB9XG59XG5cbmZ1bmN0aW9uIHVzYWdlRnJvbSh2YWx1ZTogdW5rbm93bik6IE9wZW5BSVVzYWdlIHwgdW5kZWZpbmVkIHtcbiAgaWYgKCF2YWx1ZSB8fCB0eXBlb2YgdmFsdWUgIT09IFwib2JqZWN0XCIpIHJldHVybiB1bmRlZmluZWQ7XG4gIGNvbnN0IHVzYWdlID0gdmFsdWUgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIGNvbnN0IGlucHV0RGV0YWlscyA9ICh1c2FnZS5pbnB1dF90b2tlbnNfZGV0YWlscyA/PyB7fSkgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIGNvbnN0IG91dHB1dERldGFpbHMgPSAodXNhZ2Uub3V0cHV0X3Rva2Vuc19kZXRhaWxzID8/IHt9KSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgcmV0dXJuIHtcbiAgICBpbnB1dFRva2VuczogTnVtYmVyKHVzYWdlLmlucHV0X3Rva2VucyA/PyAwKSxcbiAgICBjYWNoZWRJbnB1dFRva2VuczogTnVtYmVyKGlucHV0RGV0YWlscy5jYWNoZWRfdG9rZW5zID8/IDApLFxuICAgIG91dHB1dFRva2VuczogTnVtYmVyKHVzYWdlLm91dHB1dF90b2tlbnMgPz8gMCksXG4gICAgcmVhc29uaW5nVG9rZW5zOiBOdW1iZXIob3V0cHV0RGV0YWlscy5yZWFzb25pbmdfdG9rZW5zID8/IDApLFxuICAgIHRvdGFsVG9rZW5zOiBOdW1iZXIodXNhZ2UudG90YWxfdG9rZW5zID8/IDApLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplT3BlbkFJRXZlbnQocmF3OiB1bmtub3duKTogT3BlbkFJTm9ybWFsaXplZEV2ZW50IHwgdW5kZWZpbmVkIHtcbiAgaWYgKCFyYXcgfHwgdHlwZW9mIHJhdyAhPT0gXCJvYmplY3RcIikgcmV0dXJuIHVuZGVmaW5lZDtcbiAgY29uc3QgZXZlbnQgPSByYXcgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIGNvbnN0IHR5cGUgPSBTdHJpbmcoZXZlbnQudHlwZSA/PyBcIlwiKTtcbiAgaWYgKHR5cGUgPT09IFwicmVzcG9uc2UuY3JlYXRlZFwiKSB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBldmVudC5yZXNwb25zZSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IHVuZGVmaW5lZDtcbiAgICByZXR1cm4geyB0eXBlOiBcImNyZWF0ZWRcIiwgLi4uKHJlc3BvbnNlPy5pZCA/IHsgcmVzcG9uc2VJZDogU3RyaW5nKHJlc3BvbnNlLmlkKSB9IDoge30pIH07XG4gIH1cbiAgaWYgKHR5cGUgPT09IFwicmVzcG9uc2Uub3V0cHV0X3RleHQuZGVsdGFcIiAmJiB0eXBlb2YgZXZlbnQuZGVsdGEgPT09IFwic3RyaW5nXCIpIHtcbiAgICByZXR1cm4geyB0eXBlOiBcInRleHQtZGVsdGFcIiwgdGV4dDogZXZlbnQuZGVsdGEgfTtcbiAgfVxuICBpZiAoXG4gICAgKHR5cGUgPT09IFwicmVzcG9uc2Uub3V0cHV0X2l0ZW0uYWRkZWRcIiB8fCB0eXBlID09PSBcInJlc3BvbnNlLm91dHB1dF9pdGVtLmRvbmVcIikgJiZcbiAgICBldmVudC5pdGVtICYmXG4gICAgdHlwZW9mIGV2ZW50Lml0ZW0gPT09IFwib2JqZWN0XCJcbiAgKSB7XG4gICAgY29uc3QgaXRlbSA9IGV2ZW50Lml0ZW0gYXMgT3BlbkFJUmVzcG9uc2VJdGVtO1xuICAgIGlmIChpdGVtLnR5cGUgPT09IFwiaW1hZ2VfZ2VuZXJhdGlvbl9jYWxsXCIgJiYgdHlwZW9mIGl0ZW0ucmVzdWx0ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0eXBlOiBcImltYWdlXCIsXG4gICAgICAgIC4uLih0eXBlb2YgaXRlbS5pZCA9PT0gXCJzdHJpbmdcIiA/IHsgaWQ6IGl0ZW0uaWQgfSA6IHt9KSxcbiAgICAgICAgYmFzZTY0OiBpdGVtLnJlc3VsdCxcbiAgICAgICAgbWltZVR5cGU6IFwiaW1hZ2UvcG5nXCIsXG4gICAgICAgIC4uLih0eXBlb2YgaXRlbS5yZXZpc2VkX3Byb21wdCA9PT0gXCJzdHJpbmdcIlxuICAgICAgICAgID8geyByZXZpc2VkUHJvbXB0OiBpdGVtLnJldmlzZWRfcHJvbXB0IH1cbiAgICAgICAgICA6IHR5cGVvZiBpdGVtLnJldmlzZWRQcm9tcHQgPT09IFwic3RyaW5nXCJcbiAgICAgICAgICAgID8geyByZXZpc2VkUHJvbXB0OiBpdGVtLnJldmlzZWRQcm9tcHQgfVxuICAgICAgICAgICAgOiB7fSksXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4geyB0eXBlOiBcIm91dHB1dC1pdGVtXCIsIGl0ZW0gfTtcbiAgfVxuICBpZiAodHlwZSA9PT0gXCJyZXNwb25zZS5jb21wbGV0ZWRcIikge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gKGV2ZW50LnJlc3BvbnNlID8/IHt9KSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogXCJjb21wbGV0ZWRcIixcbiAgICAgIHJlc3BvbnNlSWQ6IFN0cmluZyhyZXNwb25zZS5pZCA/PyBcIlwiKSxcbiAgICAgIC4uLihyZXNwb25zZS51c2FnZSA/IHsgdXNhZ2U6IHVzYWdlRnJvbShyZXNwb25zZS51c2FnZSkgfSA6IHt9KSxcbiAgICAgIC4uLih0eXBlb2YgcmVzcG9uc2UubW9kZWwgPT09IFwic3RyaW5nXCIgPyB7IG1vZGVsOiByZXNwb25zZS5tb2RlbCB9IDoge30pLFxuICAgIH07XG4gIH1cbiAgaWYgKHR5cGUgPT09IFwiZXJyb3JcIiB8fCB0eXBlID09PSBcInJlc3BvbnNlLmZhaWxlZFwiIHx8IHR5cGUgPT09IFwicmVzcG9uc2UuaW5jb21wbGV0ZVwiKSB7XG4gICAgY29uc3Qgc291cmNlID0gKGV2ZW50LmVycm9yID8/IGV2ZW50LnJlc3BvbnNlID8/IGV2ZW50KSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICBjb25zdCBuZXN0ZWQgPSAoc291cmNlLmVycm9yID8/IHNvdXJjZSkgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IFwiZXJyb3JcIixcbiAgICAgIGVycm9yOiBuZXcgT3BlbkFJUHJvdG9jb2xFcnJvcihcbiAgICAgICAgU3RyaW5nKG5lc3RlZC5tZXNzYWdlID8/IGBPcGVuQUkgc3RyZWFtIGVuZGVkIHdpdGggJHt0eXBlfWApLFxuICAgICAgICB0eXBlb2YgbmVzdGVkLmNvZGUgPT09IFwic3RyaW5nXCIgPyBuZXN0ZWQuY29kZSA6IHVuZGVmaW5lZCxcbiAgICAgICksXG4gICAgfTtcbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuIl0sIm1hcHBpbmdzIjoiOztBQUVBLE1BQWEsOEJBQ1g7QUFFRixNQUFhLHVCQUF1QjtBQUNwQyxNQUFhLG9CQUFvQjtBQVNqQyxTQUFTLGdCQUF3QztDQUMvQyxNQUFNLFFBQWtEO0VBQ3RELFFBQVE7RUFDUixPQUFPO0VBQ1AsT0FBTztDQUNUO0NBQ0EsTUFBTSxXQUFXLFFBQVEsSUFBSTtDQUM3QixNQUFNLGtCQUFrQixRQUFRLElBQUk7Q0FDcEMsT0FBTztFQUNMLFFBQVEsTUFBTSxRQUFRLGFBQWEsUUFBUTtFQUMzQyxXQUFXLEdBQUcsUUFBUTtFQUN0QixjQUFjLFFBQVE7RUFDdEIsVUFBVSxXQUFXLEdBQUcsV0FBVyxrQkFBa0IsSUFBSSxvQkFBb0IsT0FBTztDQUN0RjtBQUNGOztBQUdBLFNBQWdCLGtCQUFrQixXQUFtQyxjQUFjLEdBQVc7Q0FDNUYsT0FBTyxnQkFBZ0Isa0JBQWtCLElBQUksU0FBUyxPQUFPLEdBQUcsU0FBUyxVQUFVLElBQUksU0FBUyxhQUFhLElBQUksU0FBUztBQUM1SDtBQTREQSxTQUFnQiw0QkFDZCxTQUN3QjtDQUN4QixNQUFNLFFBQVEsUUFBUSxRQUFRLENBQUMsR0FBRyxRQUFRLEtBQUssSUFBSSxDQUFDO0NBQ3BELElBQUksUUFBUSxpQkFDVixNQUFNLEtBQ0osUUFBUSxvQkFBb0IsT0FDeEIsRUFBRSxNQUFNLG1CQUFtQixJQUMzQjtFQUFFLE1BQU07RUFBb0IsR0FBRyxRQUFRO0NBQWdCLENBQzdEO0NBR0YsTUFBTSxPQUNKLFFBQVEs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
@@ -1,9 +1,11 @@
1
1
  //#region src/utils/providers/openai/openai-constants.ts
2
2
  const OPENAI_ISSUER = "https://auth.openai.com";
3
3
  const OPENAI_CLIENT_ID = "app_EMoamEEZ73f0CkXaXp7hrann";
4
+ const OPENAI_AUTHORIZE_URL = `${OPENAI_ISSUER}/oauth/authorize`;
4
5
  const OPENAI_TOKEN_URL = `${OPENAI_ISSUER}/oauth/token`;
5
6
  const OPENAI_SCOPES = "openid profile email offline_access api.connectors.read api.connectors.invoke";
7
+ const OPENAI_ORIGINATOR = "codex_cli_rs";
6
8
  //#endregion
7
- export { OPENAI_CLIENT_ID, OPENAI_ISSUER, OPENAI_SCOPES, OPENAI_TOKEN_URL };
9
+ export { OPENAI_AUTHORIZE_URL, OPENAI_CLIENT_ID, OPENAI_ISSUER, OPENAI_ORIGINATOR, OPENAI_SCOPES, OPENAI_TOKEN_URL };
8
10
 
9
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbmFpLWNvbnN0YW50cy5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdXRpbHMvcHJvdmlkZXJzL29wZW5haS9vcGVuYWktY29uc3RhbnRzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBPUEVOQUlfSVNTVUVSID0gXCJodHRwczovL2F1dGgub3BlbmFpLmNvbVwiO1xuZXhwb3J0IGNvbnN0IE9QRU5BSV9DTElFTlRfSUQgPSBcImFwcF9FTW9hbUVFWjczZjBDa1hhWHA3aHJhbm5cIjtcbmV4cG9ydCBjb25zdCBPUEVOQUlfVE9LRU5fVVJMID0gYCR7T1BFTkFJX0lTU1VFUn0vb2F1dGgvdG9rZW5gO1xuZXhwb3J0IGNvbnN0IE9QRU5BSV9TQ09QRVMgPVxuICBcIm9wZW5pZCBwcm9maWxlIGVtYWlsIG9mZmxpbmVfYWNjZXNzIGFwaS5jb25uZWN0b3JzLnJlYWQgYXBpLmNvbm5lY3RvcnMuaW52b2tlXCI7XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxNQUFhLGdCQUFnQjtBQUM3QixNQUFhLG1CQUFtQjtBQUNoQyxNQUFhLG1CQUFtQixHQUFHLGNBQWM7QUFDakQsTUFBYSxnQkFDWCJ9
11
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbmFpLWNvbnN0YW50cy5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdXRpbHMvcHJvdmlkZXJzL29wZW5haS9vcGVuYWktY29uc3RhbnRzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBPUEVOQUlfSVNTVUVSID0gXCJodHRwczovL2F1dGgub3BlbmFpLmNvbVwiO1xuZXhwb3J0IGNvbnN0IE9QRU5BSV9DTElFTlRfSUQgPSBcImFwcF9FTW9hbUVFWjczZjBDa1hhWHA3aHJhbm5cIjtcbmV4cG9ydCBjb25zdCBPUEVOQUlfQVVUSE9SSVpFX1VSTCA9IGAke09QRU5BSV9JU1NVRVJ9L29hdXRoL2F1dGhvcml6ZWA7XG5leHBvcnQgY29uc3QgT1BFTkFJX1RPS0VOX1VSTCA9IGAke09QRU5BSV9JU1NVRVJ9L29hdXRoL3Rva2VuYDtcbmV4cG9ydCBjb25zdCBPUEVOQUlfU0NPUEVTID1cbiAgXCJvcGVuaWQgcHJvZmlsZSBlbWFpbCBvZmZsaW5lX2FjY2VzcyBhcGkuY29ubmVjdG9ycy5yZWFkIGFwaS5jb25uZWN0b3JzLmludm9rZVwiO1xuZXhwb3J0IGNvbnN0IE9QRU5BSV9PUklHSU5BVE9SID0gXCJjb2RleF9jbGlfcnNcIjtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBLE1BQWEsZ0JBQWdCO0FBQzdCLE1BQWEsbUJBQW1CO0FBQ2hDLE1BQWEsdUJBQXVCLEdBQUcsY0FBYztBQUNyRCxNQUFhLG1CQUFtQixHQUFHLGNBQWM7QUFDakQsTUFBYSxnQkFDWDtBQUNGLE1BQWEsb0JBQW9CIn0=
@@ -0,0 +1,327 @@
1
+ import { CHATGPT_CODEX_RESPONSES_URL, OpenAIProtocolError, buildCodexIdentityHeaders, buildOpenAIResponsesRequest, normalizeOpenAIEvent } from "./openai-backend-protocol.js";
2
+ import { normalizeOpenAISSE } from "./openai-sse.js";
3
+ import crypto from "node:crypto";
4
+ import WsClient from "ws";
5
+ //#region src/utils/providers/openai/openai-direct-client.ts
6
+ const MAX_BUFFERED_SOCKET_RECORDS = 1600;
7
+ function websocketUrl(url) {
8
+ let parsed;
9
+ try {
10
+ parsed = new URL(url);
11
+ } catch (error) {
12
+ throw new OpenAIProtocolError(`Invalid OpenAI Responses URL: ${String(error)}`);
13
+ }
14
+ parsed.protocol = parsed.protocol === "https:" ? "wss:" : "ws:";
15
+ return parsed.toString();
16
+ }
17
+ function rawDataText(data) {
18
+ if (Array.isArray(data)) return Buffer.concat(data).toString();
19
+ if (data instanceof ArrayBuffer) return Buffer.from(new Uint8Array(data)).toString();
20
+ return Buffer.from(data).toString();
21
+ }
22
+ function socketEvents(socket, signal) {
23
+ const records = [];
24
+ const waiters = [];
25
+ let active = true;
26
+ const push = (record) => {
27
+ if (!active) return;
28
+ const waiter = waiters.shift();
29
+ if (waiter) waiter(record);
30
+ else if (records.length < MAX_BUFFERED_SOCKET_RECORDS) records.push(record);
31
+ else {
32
+ active = false;
33
+ records.length = 0;
34
+ socket.terminate();
35
+ const overflow = {
36
+ kind: "error",
37
+ error: new OpenAIProtocolError(`OpenAI WebSocket exceeded the ${MAX_BUFFERED_SOCKET_RECORDS}-record receive buffer`, "websocket_backpressure")
38
+ };
39
+ const overflowWaiter = waiters.shift();
40
+ if (overflowWaiter) overflowWaiter(overflow);
41
+ else records.push(overflow);
42
+ }
43
+ };
44
+ const onOpen = () => push({ kind: "open" });
45
+ const onMessage = (data, isBinary) => push({
46
+ kind: "message",
47
+ data,
48
+ isBinary
49
+ });
50
+ const onClose = (code, reason) => push({
51
+ kind: "close",
52
+ code,
53
+ reason: reason.toString()
54
+ });
55
+ const onError = (error) => push({
56
+ kind: "error",
57
+ error
58
+ });
59
+ const onUnexpectedResponse = (_request, response) => push({
60
+ kind: "rejected",
61
+ status: response.statusCode
62
+ });
63
+ socket.on("open", onOpen);
64
+ socket.on("message", onMessage);
65
+ socket.on("close", onClose);
66
+ socket.on("error", onError);
67
+ socket.on("unexpected-response", onUnexpectedResponse);
68
+ const onAbort = () => {
69
+ socket.terminate();
70
+ push({
71
+ kind: "error",
72
+ error: abortError(signal)
73
+ });
74
+ };
75
+ signal?.addEventListener("abort", onAbort, { once: true });
76
+ return {
77
+ next: () => records.length ? Promise.resolve(records.shift()) : new Promise((resolve) => waiters.push(resolve)),
78
+ cleanup: () => {
79
+ active = false;
80
+ signal?.removeEventListener("abort", onAbort);
81
+ socket.off("open", onOpen);
82
+ socket.off("message", onMessage);
83
+ socket.off("close", onClose);
84
+ socket.off("error", onError);
85
+ socket.off("unexpected-response", onUnexpectedResponse);
86
+ records.length = 0;
87
+ const closed = {
88
+ kind: "error",
89
+ error: new OpenAIProtocolError("OpenAI WebSocket event stream was closed")
90
+ };
91
+ for (const waiter of waiters.splice(0)) waiter(closed);
92
+ },
93
+ detachAbort: () => signal?.removeEventListener("abort", onAbort)
94
+ };
95
+ }
96
+ function abortError(signal) {
97
+ return signal?.reason instanceof Error ? signal.reason : new DOMException("Aborted", "AbortError");
98
+ }
99
+ async function nextPooledRecord(events, socket, signal) {
100
+ if (!signal) return events.next();
101
+ if (signal.aborted) throw abortError(signal);
102
+ return new Promise((resolve, reject) => {
103
+ const onAbort = () => {
104
+ socket.terminate();
105
+ reject(abortError(signal));
106
+ };
107
+ signal.addEventListener("abort", onAbort, { once: true });
108
+ events.next().then(resolve, reject).finally(() => {
109
+ signal.removeEventListener("abort", onAbort);
110
+ });
111
+ });
112
+ }
113
+ function cacheAffinityUuid(key) {
114
+ const hex = crypto.createHash("sha256").update(key).digest("hex").slice(0, 32).split("");
115
+ hex[12] = "4";
116
+ hex[16] = (Number.parseInt(hex[16], 16) & 3 | 8).toString(16);
117
+ return `${hex.slice(0, 8).join("")}-${hex.slice(8, 12).join("")}-${hex.slice(12, 16).join("")}-${hex.slice(16, 20).join("")}-${hex.slice(20).join("")}`;
118
+ }
119
+ var OpenAIWebSocketTransport = class OpenAIWebSocketTransport {
120
+ static MAX_AFFINITY_CONNECTIONS = 16;
121
+ credentials;
122
+ refreshCredentials;
123
+ webSocketFactory;
124
+ affinityConnections = /* @__PURE__ */ new Map();
125
+ busyAffinities = /* @__PURE__ */ new Set();
126
+ constructor(options) {
127
+ this.credentials = options.credentials;
128
+ this.refreshCredentials = options.refreshCredentials;
129
+ this.webSocketFactory = options.webSocketFactory ?? ((url, wsOptions) => new WsClient(url, wsOptions));
130
+ }
131
+ stream(request) {
132
+ return this.run(request);
133
+ }
134
+ close() {
135
+ for (const { socket, events } of this.affinityConnections.values()) {
136
+ events.cleanup();
137
+ socket.close(1e3, "transport closed");
138
+ }
139
+ this.affinityConnections.clear();
140
+ this.busyAffinities.clear();
141
+ }
142
+ /**
143
+ * 캐시에 연결을 등록한다. 자리가 없으면 유휴 연결만 축출하고, 전부 사용 중이면
144
+ * 진행 중인 응답을 끊는 대신 등록을 포기한다(false → 이 요청은 일회성 소켓으로 처리).
145
+ */
146
+ rememberAffinityConnection(threadId, connection) {
147
+ if (!this.affinityConnections.has(threadId) && this.affinityConnections.size >= OpenAIWebSocketTransport.MAX_AFFINITY_CONNECTIONS) {
148
+ const idleKey = [...this.affinityConnections.keys()].find((key) => !this.busyAffinities.has(key));
149
+ if (idleKey === void 0) return false;
150
+ const idle = this.affinityConnections.get(idleKey);
151
+ idle.events.cleanup();
152
+ idle.socket.close(1e3, "affinity cache evicted");
153
+ this.affinityConnections.delete(idleKey);
154
+ }
155
+ this.affinityConnections.set(threadId, connection);
156
+ const drop = () => {
157
+ connection.closed = true;
158
+ if (this.busyAffinities.has(threadId)) return;
159
+ if (this.affinityConnections.get(threadId) !== connection) return;
160
+ this.affinityConnections.delete(threadId);
161
+ connection.events.cleanup();
162
+ };
163
+ connection.socket.on("close", drop);
164
+ connection.socket.on("error", drop);
165
+ return true;
166
+ }
167
+ async *run(request) {
168
+ let refreshed = false;
169
+ while (true) {
170
+ if (request.signal?.aborted) throw abortError(request.signal);
171
+ const retainConnection = request.body.prompt_cache_key !== void 0 && !this.busyAffinities.has(request.threadId);
172
+ if (retainConnection) this.busyAffinities.add(request.threadId);
173
+ const entry = retainConnection ? this.affinityConnections.get(request.threadId) : void 0;
174
+ if (entry?.closed) {
175
+ this.affinityConnections.delete(request.threadId);
176
+ entry.events.cleanup();
177
+ }
178
+ const cached = entry?.closed ? void 0 : entry;
179
+ let retained = retainConnection;
180
+ const socket = cached?.socket ?? this.webSocketFactory(websocketUrl("https://chatgpt.com/backend-api/codex/responses"), { headers: {
181
+ ...buildCodexIdentityHeaders(this.credentials.accessToken, this.credentials.accountId, {
182
+ sessionId: request.sessionId,
183
+ threadId: request.threadId,
184
+ clientRequestId: request.clientRequestId
185
+ }),
186
+ "OpenAI-Beta": "responses_websockets=2026-02-06"
187
+ } });
188
+ const events = cached?.events ?? socketEvents(socket, request.signal);
189
+ let completed = false;
190
+ try {
191
+ if (!cached) {
192
+ const handshake = await events.next();
193
+ if (handshake.kind === "rejected" && handshake.status === 401 && !refreshed && this.refreshCredentials) {
194
+ socket.terminate();
195
+ this.credentials = await this.refreshCredentials();
196
+ refreshed = true;
197
+ continue;
198
+ }
199
+ if (handshake.kind === "rejected") throw new OpenAIProtocolError(`OpenAI WebSocket handshake rejected${handshake.status ? ` with HTTP ${handshake.status}` : ""}`, void 0, handshake.status);
200
+ if (handshake.kind === "error") throw handshake.error;
201
+ if (handshake.kind !== "open") throw new OpenAIProtocolError("OpenAI WebSocket closed before the handshake completed");
202
+ if (retainConnection) retained = this.rememberAffinityConnection(request.threadId, {
203
+ socket,
204
+ events
205
+ });
206
+ }
207
+ await new Promise((resolve, reject) => {
208
+ socket.send(JSON.stringify({
209
+ type: "response.create",
210
+ ...request.body
211
+ }), (error) => error ? reject(error) : resolve());
212
+ });
213
+ while (true) {
214
+ const record = cached ? await nextPooledRecord(events, socket, request.signal) : await events.next();
215
+ if (record.kind === "message") {
216
+ if (record.isBinary) throw new OpenAIProtocolError("OpenAI WebSocket sent an unexpected binary message");
217
+ let raw;
218
+ try {
219
+ raw = JSON.parse(rawDataText(record.data));
220
+ } catch {
221
+ throw new OpenAIProtocolError("OpenAI WebSocket sent invalid JSON");
222
+ }
223
+ const event = normalizeOpenAIEvent(raw);
224
+ if (!event) continue;
225
+ if (event.type === "completed") {
226
+ completed = true;
227
+ if (retained) events.detachAbort();
228
+ else socket.close(1e3, "response completed");
229
+ yield event;
230
+ return;
231
+ }
232
+ yield event;
233
+ if (event.type === "error") throw event.error;
234
+ } else if (record.kind === "error") throw record.error;
235
+ else if (record.kind === "close") throw new OpenAIProtocolError(`OpenAI WebSocket closed before a terminal response event (${record.code}${record.reason ? `: ${record.reason}` : ""})`);
236
+ else throw new OpenAIProtocolError("OpenAI WebSocket emitted an unexpected handshake event");
237
+ }
238
+ } finally {
239
+ if (!completed || !retained) {
240
+ if (retained) this.affinityConnections.delete(request.threadId);
241
+ events.cleanup();
242
+ if (!completed) socket.terminate();
243
+ }
244
+ if (retainConnection) this.busyAffinities.delete(request.threadId);
245
+ }
246
+ }
247
+ }
248
+ };
249
+ async function responseError(response) {
250
+ const text = await response.text().catch(() => "");
251
+ let message = text || response.statusText || `HTTP ${response.status}`;
252
+ let code;
253
+ try {
254
+ const parsed = JSON.parse(text);
255
+ const error = parsed.error;
256
+ message = (typeof error === "object" ? error.message : void 0) ?? parsed.message ?? (typeof error === "string" ? error : message);
257
+ code = (typeof error === "object" ? error.code : void 0) ?? parsed.code;
258
+ } catch {
259
+ code = void 0;
260
+ }
261
+ return new OpenAIProtocolError(message, code, response.status);
262
+ }
263
+ var OpenAIHttpsTransport = class {
264
+ credentials;
265
+ fetchImpl;
266
+ refreshCredentials;
267
+ constructor(options) {
268
+ this.credentials = options.credentials;
269
+ this.fetchImpl = options.fetch ?? fetch;
270
+ this.refreshCredentials = options.refreshCredentials;
271
+ }
272
+ stream(request) {
273
+ return this.run(request);
274
+ }
275
+ async *run(request) {
276
+ let refreshed = false;
277
+ while (true) {
278
+ const response = await this.fetchImpl(CHATGPT_CODEX_RESPONSES_URL, {
279
+ method: "POST",
280
+ headers: buildCodexIdentityHeaders(this.credentials.accessToken, this.credentials.accountId, {
281
+ sessionId: request.sessionId,
282
+ threadId: request.threadId,
283
+ clientRequestId: request.clientRequestId
284
+ }),
285
+ body: JSON.stringify(request.body),
286
+ signal: request.signal
287
+ });
288
+ if (response.status === 401 && !refreshed && this.refreshCredentials) {
289
+ await response.body?.cancel();
290
+ this.credentials = await this.refreshCredentials();
291
+ refreshed = true;
292
+ continue;
293
+ }
294
+ if (!response.ok) throw await responseError(response);
295
+ if (!response.body) throw new OpenAIProtocolError("OpenAI response had no body");
296
+ for await (const event of normalizeOpenAISSE(response.body)) yield event;
297
+ return;
298
+ }
299
+ }
300
+ };
301
+ var OpenAIDirectClient = class {
302
+ transport;
303
+ constructor(options) {
304
+ this.transport = options.transport ?? (options.transportKind === "websocket" ? new OpenAIWebSocketTransport(options) : new OpenAIHttpsTransport(options));
305
+ }
306
+ responses(options, signal) {
307
+ const clientRequestId = crypto.randomUUID();
308
+ const affinityId = options.promptCacheKey ? cacheAffinityUuid(options.promptCacheKey) : clientRequestId;
309
+ return this.transport.stream({
310
+ body: buildOpenAIResponsesRequest(options.promptCacheKey ? {
311
+ ...options,
312
+ promptCacheKey: affinityId
313
+ } : options),
314
+ signal,
315
+ sessionId: affinityId,
316
+ threadId: affinityId,
317
+ clientRequestId
318
+ });
319
+ }
320
+ close() {
321
+ this.transport.close?.();
322
+ }
323
+ };
324
+ //#endregion
325
+ export { OpenAIDirectClient, OpenAIHttpsTransport, OpenAIWebSocketTransport };
326
+
327
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlbmFpLWRpcmVjdC1jbGllbnQuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3V0aWxzL3Byb3ZpZGVycy9vcGVuYWkvb3BlbmFpLWRpcmVjdC1jbGllbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyeXB0byBmcm9tIFwibm9kZTpjcnlwdG9cIjtcblxuaW1wb3J0IFdzQ2xpZW50LCB7IHR5cGUgQ2xpZW50T3B0aW9ucywgdHlwZSBSYXdEYXRhIH0gZnJvbSBcIndzXCI7XG5cbmltcG9ydCB7XG4gIGJ1aWxkQ29kZXhJZGVudGl0eUhlYWRlcnMsXG4gIGJ1aWxkT3BlbkFJUmVzcG9uc2VzUmVxdWVzdCxcbiAgQ0hBVEdQVF9DT0RFWF9SRVNQT05TRVNfVVJMLFxuICBub3JtYWxpemVPcGVuQUlFdmVudCxcbiAgT3BlbkFJUHJvdG9jb2xFcnJvcixcbiAgdHlwZSBPcGVuQUlOb3JtYWxpemVkRXZlbnQsXG4gIHR5cGUgT3BlbkFJUmVzcG9uc2VzT3B0aW9ucyxcbiAgdHlwZSBPcGVuQUlSZXNwb25zZXNSZXF1ZXN0LFxufSBmcm9tIFwiLi9vcGVuYWktYmFja2VuZC1wcm90b2NvbFwiO1xuaW1wb3J0IHsgbm9ybWFsaXplT3BlbkFJU1NFLCB0eXBlIE9wZW5BSUV2ZW50U3RyZWFtIH0gZnJvbSBcIi4vb3BlbmFpLXNzZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIE9wZW5BSURpcmVjdENyZWRlbnRpYWxzIHtcbiAgYWNjZXNzVG9rZW46IHN0cmluZztcbiAgYWNjb3VudElkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3BlbkFJVHJhbnNwb3J0UmVxdWVzdCB7XG4gIGJvZHk6IE9wZW5BSVJlc3BvbnNlc1JlcXVlc3Q7XG4gIHNpZ25hbD86IEFib3J0U2lnbmFsO1xuICBzZXNzaW9uSWQ6IHN0cmluZztcbiAgdGhyZWFkSWQ6IHN0cmluZztcbiAgY2xpZW50UmVxdWVzdElkOiBzdHJpbmc7XG59XG5cbi8qKiBUcmFuc3BvcnQtaW5kZXBlbmRlbnQgc3RyZWFtaW5nIGludGVyZmFjZTsgSFRUUFMgaXMgdGhlIGZpcnN0IGltcGxlbWVudGF0aW9uLiAqL1xuZXhwb3J0IGludGVyZmFjZSBPcGVuQUlSZXNwb25zZXNUcmFuc3BvcnQge1xuICBzdHJlYW0ocmVxdWVzdDogT3BlbkFJVHJhbnNwb3J0UmVxdWVzdCk6IE9wZW5BSUV2ZW50U3RyZWFtO1xuICBjbG9zZT8oKTogdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPcGVuQUlIdHRwc1RyYW5zcG9ydE9wdGlvbnMge1xuICBjcmVkZW50aWFsczogT3BlbkFJRGlyZWN0Q3JlZGVudGlhbHM7XG4gIGZldGNoPzogdHlwZW9mIGZldGNoO1xuICByZWZyZXNoQ3JlZGVudGlhbHM/OiAoKSA9PiBQcm9taXNlPE9wZW5BSURpcmVjdENyZWRlbnRpYWxzPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPcGVuQUlXZWJTb2NrZXRMaWtlIHtcbiAgb24oZXZlbnQ6IFwib3BlblwiLCBsaXN0ZW5lcjogKCkgPT4gdm9pZCk6IHRoaXM7XG4gIG9uKGV2ZW50OiBcIm1lc3NhZ2VcIiwgbGlzdGVuZXI6IChkYXRhOiBSYXdEYXRhLCBpc0JpbmFyeTogYm9vbGVhbikgPT4gdm9pZCk6IHRoaXM7XG4gIG9uKGV2ZW50OiBcImNsb3NlXCIsIGxpc3RlbmVyOiAoY29kZTogbnVtYmVyLCByZWFzb246IEJ1ZmZlcikgPT4gdm9pZCk6IHRoaXM7XG4gIG9uKGV2ZW50OiBcImVycm9yXCIsIGxpc3RlbmVyOiAoZXJyb3I6IEVycm9yKSA9PiB2b2lkKTogdGhpcztcbiAgb24oXG4gICAgZXZlbnQ6IFwidW5leHBlY3RlZC1yZXNwb25zZVwiLFxuICAgIGxpc3RlbmVyOiAocmVxdWVzdDogdW5rbm93biwgcmVzcG9uc2U6IHsgc3RhdHVzQ29kZT86IG51bWJlciB9KSA9PiB2b2lkLFxuICApOiB0aGlzO1xuICBvZmYoZXZlbnQ6IHN0cmluZywgbGlzdGVuZXI6ICguLi5hcmdzOiBuZXZlcltdKSA9PiB2b2lkKTogdGhpcztcbiAgc2VuZChkYXRhOiBzdHJpbmcsIGNhbGxiYWNrPzogKGVycm9yPzogRXJyb3IpID0+IHZvaWQpOiB2b2lkO1xuICBjbG9zZShjb2RlPzogbnVtYmVyLCByZWFzb24/OiBzdHJpbmcpOiB2b2lkO1xuICB0ZXJtaW5hdGUoKTogdm9pZDtcbn1cblxuZXhwb3J0IHR5cGUgT3BlbkFJV2ViU29ja2V0RmFjdG9yeSA9ICh1cmw6IHN0cmluZywgb3B0aW9uczogQ2xpZW50T3B0aW9ucykgPT4gT3BlbkFJV2ViU29ja2V0TGlrZTtcblxuZXhwb3J0IGludGVyZmFjZSBPcGVuQUlXZWJTb2NrZXRUcmFuc3BvcnRPcHRpb25zIGV4dGVuZHMgT3BlbkFJSHR0cHNUcmFuc3BvcnRPcHRpb25zIHtcbiAgd2ViU29ja2V0RmFjdG9yeT86IE9wZW5BSVdlYlNvY2tldEZhY3Rvcnk7XG59XG5cbnR5cGUgU29ja2V0UmVjb3JkID1cbiAgfCB7IGtpbmQ6IFwib3BlblwiIH1cbiAgfCB7IGtpbmQ6IFwibWVzc2FnZVwiOyBkYXRhOiBSYXdEYXRhOyBpc0JpbmFyeTogYm9vbGVhbiB9XG4gIHwgeyBraW5kOiBcImNsb3NlXCI7IGNvZGU6IG51bWJlcjsgcmVhc29uOiBzdHJpbmcgfVxuICB8IHsga2luZDogXCJlcnJvclwiOyBlcnJvcjogRXJyb3IgfVxuICB8IHsga2luZDogXCJyZWplY3RlZFwiOyBzdGF0dXM/OiBudW1iZXIgfTtcblxuY29uc3QgTUFYX0JVRkZFUkVEX1NPQ0tFVF9SRUNPUkRTID0gMTYwMDtcblxuZnVuY3Rpb24gd2Vic29ja2V0VXJsKHVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgbGV0IHBhcnNlZDogVVJMO1xuICB0cnkge1xuICAgIHBhcnNlZCA9IG5ldyBVUkwodXJsKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICB0aHJvdyBuZXcgT3BlbkFJUHJvdG9jb2xFcnJvcihgSW52YWxpZCBPcGVuQUkgUmVzcG9uc2VzIFVSTDogJHtTdHJpbmcoZXJyb3IpfWApO1xuICB9XG4gIHBhcnNlZC5wcm90b2NvbCA9IHBhcnNlZC5wcm90b2NvbCA9PT0gXCJodHRwczpcIiA/IFwid3NzOlwiIDogXCJ3czpcIjtcbiAgcmV0dXJuIHBhcnNlZC50b1N0cmluZygpO1xufVxuXG5mdW5jdGlvbiByYXdEYXRhVGV4dChkYXRhOiBSYXdEYXRhKTogc3RyaW5nIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YSkpIHJldHVybiBCdWZmZXIuY29uY2F0KGRhdGEpLnRvU3RyaW5nKCk7XG4gIGlmIChkYXRhIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpIHJldHVybiBCdWZmZXIuZnJvbShuZXcgVWludDhBcnJheShkYXRhKSkudG9TdHJpbmcoKTtcbiAgcmV0dXJuIEJ1ZmZlci5mcm9tKGRhdGEpLnRvU3RyaW5nKCk7XG59XG5cbmZ1bmN0aW9uIHNvY2tldEV2ZW50cyhzb2NrZXQ6IE9wZW5BSVdlYlNvY2tldExpa2UsIHNpZ25hbD86IEFib3J0U2lnbmFsKSB7XG4gIGNvbnN0IHJlY29yZHM6IFNvY2tldFJlY29yZFtdID0gW107XG4gIGNvbnN0IHdhaXRlcnM6IEFycmF5PChyZWNvcmQ6IFNvY2tldFJlY29yZCkgPT4gdm9pZD4gPSBbXTtcbiAgbGV0IGFjdGl2ZSA9IHRydWU7XG4gIGNvbnN0IHB1c2ggPSAocmVjb3JkOiBTb2NrZXRSZWNvcmQpID0+IHtcbiAgICBpZiAoIWFjdGl2ZSkgcmV0dXJuO1xuICAgIGNvbnN0IHdhaXRlciA9IHdhaXRlcnMuc2hpZnQoKTtcbiAgICBpZiAod2FpdGVyKSB3YWl0ZXIocmVjb3JkKTtcbiAgICBlbHNlIGlmIChyZWNvcmRzLmxlbmd0aCA8IE1BWF9CVUZGRVJFRF9TT0NLRVRfUkVDT1JEUykgcmVjb3Jkcy5wdXNoKHJlY29yZCk7XG4gICAgZWxzZSB7XG4gICAgICBhY3RpdmUgPSBmYWxzZTtcbiAgICAgIHJlY29yZHMubGVuZ3RoID0gMDtcbiAgICAgIHNvY2tldC50ZXJtaW5hdGUoKTtcbiAgICAgIGNvbnN0IG92ZXJmbG93ID0ge1xuICAgICAgICBraW5kOiBcImVycm9yXCIgYXMgY29uc3QsXG4gICAgICAgIGVycm9yOiBuZXcgT3BlbkFJUHJvdG9jb2xFcnJvcihcbiAgICAgICAgICBgT3BlbkFJIFdlYlNvY2tldCBleGNlZWRlZCB0aGUgJHtNQVhfQlVGRkVSRURfU09DS0VUX1JFQ09SRFN9LXJlY29yZCByZWNlaXZlIGJ1ZmZlcmAsXG4gICAgICAgICAgXCJ3ZWJzb2NrZXRfYmFja3ByZXNzdXJlXCIsXG4gICAgICAgICksXG4gICAgICB9O1xuICAgICAgY29uc3Qgb3ZlcmZsb3dXYWl0ZXIgPSB3YWl0ZXJzLnNoaWZ0KCk7XG4gICAgICBpZiAob3ZlcmZsb3dXYWl0ZXIpIG92ZXJmbG93V2FpdGVyKG92ZXJmbG93KTtcbiAgICAgIGVsc2UgcmVjb3Jkcy5wdXNoKG92ZXJmbG93KTtcbiAgICB9XG4gIH07XG4gIGNvbnN0IG9uT3BlbiA9ICgpID0+IHB1c2goeyBraW5kOiBcIm9wZW5cIiB9KTtcbiAgY29uc3Qgb25NZXNzYWdlID0gKGRhdGE6IFJhd0RhdGEsIGlzQmluYXJ5OiBib29sZWFuKSA9PiBwdXNoKHsga2luZDogXCJtZXNzYWdlXCIsIGRhdGEsIGlzQmluYXJ5IH0pO1xuICBjb25zdCBvbkNsb3NlID0gKGNvZGU6IG51bWJlciwgcmVhc29uOiBCdWZmZXIpID0+XG4gICAgcHVzaCh7IGtpbmQ6IFwiY2xvc2VcIiwgY29kZSwgcmVhc29uOiByZWFzb24udG9TdHJpbmcoKSB9KTtcbiAgY29uc3Qgb25FcnJvciA9IChlcnJvcjogRXJyb3IpID0+IHB1c2goeyBraW5kOiBcImVycm9yXCIsIGVycm9yIH0pO1xuICBjb25zdCBvblVuZXhwZWN0ZWRSZXNwb25zZSA9IChfcmVxdWVzdDogdW5rbm93biwgcmVzcG9uc2U6IHsgc3RhdHVzQ29kZT86IG51bWJlciB9KSA9PlxuICAgIHB1c2goeyBraW5kOiBcInJlamVjdGVkXCIsIHN0YXR1czogcmVzcG9uc2Uuc3RhdHVzQ29kZSB9KTtcbiAgc29ja2V0Lm9uKFwib3BlblwiLCBvbk9wZW4pO1xuICBzb2NrZXQub24oXCJtZXNzYWdlXCIsIG9uTWVzc2FnZSk7XG4gIHNvY2tldC5vbihcImNsb3NlXCIsIG9uQ2xvc2UpO1xuICBzb2NrZXQub24oXCJlcnJvclwiLCBvbkVycm9yKTtcbiAgc29ja2V0Lm9uKFwidW5leHBlY3RlZC1yZXNwb25zZVwiLCBvblVuZXhwZWN0ZWRSZXNwb25zZSk7XG4gIGNvbnN0IG9uQWJvcnQgPSAoKSA9PiB7XG4gICAgc29ja2V0LnRlcm1pbmF0ZSgpO1xuICAgIHB1c2goeyBraW5kOiBcImVycm9yXCIsIGVycm9yOiBhYm9ydEVycm9yKHNpZ25hbCkgfSk7XG4gIH07XG4gIHNpZ25hbD8uYWRkRXZlbnRMaXN0ZW5lcihcImFib3J0XCIsIG9uQWJvcnQsIHsgb25jZTogdHJ1ZSB9KTtcbiAgcmV0dXJuIHtcbiAgICBuZXh0OiAoKSA9PlxuICAgICAgcmVjb3Jkcy5sZW5ndGhcbiAgICAgICAgPyBQcm9taXNlLnJlc29sdmUocmVjb3Jkcy5zaGlmdCgpISlcbiAgICAgICAgOiBuZXcgUHJvbWlzZTxTb2NrZXRSZWNvcmQ+KChyZXNvbHZlKSA9PiB3YWl0ZXJzLnB1c2gocmVzb2x2ZSkpLFxuICAgIGNsZWFudXA6ICgpID0+IHtcbiAgICAgIGFjdGl2ZSA9IGZhbHNlO1xuICAgICAgc2lnbmFsPy5yZW1vdmVFdmVudExpc3RlbmVyKFwiYWJvcnRcIiwgb25BYm9ydCk7XG4gICAgICBzb2NrZXQub2ZmKFwib3BlblwiLCBvbk9wZW4pO1xuICAgICAgc29ja2V0Lm9mZihcIm1lc3NhZ2VcIiwgb25NZXNzYWdlKTtcbiAgICAgIHNvY2tldC5vZmYoXCJjbG9zZVwiLCBvbkNsb3NlKTtcbiAgICAgIHNvY2tldC5vZmYoXCJlcnJvclwiLCBvbkVycm9yKTtcbiAgICAgIHNvY2tldC5vZmYoXCJ1bmV4cGVjdGVkLXJlc3BvbnNlXCIsIG9uVW5leHBlY3RlZFJlc3BvbnNlKTtcbiAgICAgIHJlY29yZHMubGVuZ3RoID0gMDtcbiAgICAgIGNvbnN0IGNsb3NlZCA9IHtcbiAgICAgICAga2luZDogXCJlcnJvclwiIGFzIGNvbnN0LFxuICAgICAgICBlcnJvcjogbmV3IE9wZW5BSVByb3RvY29sRXJyb3IoXCJPcGVuQUkgV2ViU29ja2V0IGV2ZW50IHN0cmVhbSB3YXMgY2xvc2VkXCIpLFxuICAgICAgfTtcbiAgICAgIGZvciAoY29uc3Qgd2FpdGVyIG9mIHdhaXRlcnMuc3BsaWNlKDApKSB3YWl0ZXIoY2xvc2VkKTtcbiAgICB9LFxuICAgIGRldGFjaEFib3J0OiAoKSA9PiBzaWduYWw/LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJhYm9ydFwiLCBvbkFib3J0KSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gYWJvcnRFcnJvcihzaWduYWw/OiBBYm9ydFNpZ25hbCk6IEVycm9yIHtcbiAgcmV0dXJuIHNpZ25hbD8ucmVhc29uIGluc3RhbmNlb2YgRXJyb3JcbiAgICA/IHNpZ25hbC5yZWFzb25cbiAgICA6IG5ldyBET01FeGNlcHRpb24oXCJBYm9ydGVkXCIsIFwiQWJvcnRFcnJvclwiKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gbmV4dFBvb2xlZFJlY29yZChcbiAgZXZlbnRzOiBSZXR1cm5UeXBlPHR5cGVvZiBzb2NrZXRFdmVudHM+LFxuICBzb2NrZXQ6IE9wZW5BSVdlYlNvY2tldExpa2UsXG4gIHNpZ25hbD86IEFib3J0U2lnbmFsLFxuKTogUHJvbWlzZTxTb2NrZXRSZWNvcmQ+IHtcbiAgaWYgKCFzaWduYWwpIHJldHVybiBldmVudHMubmV4dCgpO1xuICBpZiAoc2lnbmFsLmFib3J0ZWQpIHRocm93IGFib3J0RXJyb3Ioc2lnbmFsKTtcbiAgcmV0dXJuIG5ldyBQcm9taXNlPFNvY2tldFJlY29yZD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IG9uQWJvcnQgPSAoKSA9PiB7XG4gICAgICBzb2NrZXQudGVybWluYXRlKCk7XG4gICAgICByZWplY3QoYWJvcnRFcnJvcihzaWduYWwpKTtcbiAgICB9O1xuICAgIHNpZ25hbC5hZGRFdmVudExpc3RlbmVyKFwiYWJvcnRcIiwgb25BYm9ydCwgeyBvbmNlOiB0cnVlIH0pO1xuICAgIHZvaWQgZXZlbnRzXG4gICAgICAubmV4dCgpXG4gICAgICAudGhlbihyZXNvbHZlLCByZWplY3QpXG4gICAgICAuZmluYWxseSgoKSA9PiB7XG4gICAgICAgIHNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKFwiYWJvcnRcIiwgb25BYm9ydCk7XG4gICAgICB9KTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGNhY2hlQWZmaW5pdHlVdWlkKGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgaGV4ID0gY3J5cHRvLmNyZWF0ZUhhc2goXCJzaGEyNTZcIikudXBkYXRlKGtleSkuZGlnZXN0KFwiaGV4XCIpLnNsaWNlKDAsIDMyKS5zcGxpdChcIlwiKTtcbiAgaGV4WzEyXSA9IFwiNFwiO1xuICBoZXhbMTZdID0gKChOdW1iZXIucGFyc2VJbnQoaGV4WzE2XSEsIDE2KSAmIDB4MykgfCAweDgpLnRvU3RyaW5nKDE2KTtcbiAgcmV0dXJuIGAke2hleC5zbGljZSgwLCA4KS5qb2luKFwiXCIpfS0ke2hleC5zbGljZSg4LCAxMikuam9pbihcIlwiKX0tJHtoZXguc2xpY2UoMTIsIDE2KS5qb2luKFwiXCIpfS0ke2hleC5zbGljZSgxNiwgMjApLmpvaW4oXCJcIil9LSR7aGV4LnNsaWNlKDIwKS5qb2luKFwiXCIpfWA7XG59XG5cbnR5cGUgQWZmaW5pdHlDb25uZWN0aW9uID0ge1xuICBzb2NrZXQ6IE9wZW5BSVdlYlNvY2tldExpa2U7XG4gIGV2ZW50czogUmV0dXJuVHlwZTx0eXBlb2Ygc29ja2V0RXZlbnRzPjtcbiAgY2xvc2VkPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCBjbGFzcyBPcGVuQUlXZWJTb2NrZXRUcmFuc3BvcnQgaW1wbGVtZW50cyBPcGVuQUlSZXNwb25zZXNUcmFuc3BvcnQge1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBNQVhfQUZGSU5JVFlfQ09OTkVDVElPTlMgPSAxNjtcbiAgcHJpdmF0ZSBjcmVkZW50aWFsczogT3BlbkFJRGlyZWN0Q3JlZGVudGlhbHM7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVmcmVzaENyZWRlbnRpYWxzPzogKCkgPT4gUHJvbWlzZTxPcGVuQUlEaXJlY3RDcmVkZW50aWFscz47XG4gIHByaXZhdGUgcmVhZG9ubHkgd2ViU29ja2V0RmFjdG9yeTogT3BlbkFJV2ViU29ja2V0RmFjdG9yeTtcbiAgcHJpdmF0ZSByZWFkb25seSBhZmZpbml0eUNvbm5lY3Rpb25zID0gbmV3IE1hcDxzdHJpbmcsIEFmZmluaXR5Q29ubmVjdGlvbj4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBidXN5QWZmaW5pdGllcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IE9wZW5BSVdlYlNvY2tldFRyYW5zcG9ydE9wdGlvbnMpIHtcbiAgICB0aGlzLmNyZWRlbnRpYWxzID0gb3B0aW9ucy5jcmVkZW50aWFscztcbiAgICB0aGlzLnJlZnJlc2hDcmVkZW50aWFscyA9IG9wdGlvbnMucmVmcmVzaENyZWRlbnRpYWxzO1xuICAgIHRoaXMud2ViU29ja2V0RmFjdG9yeSA9XG4gICAgICBvcHRpb25zLndlYlNvY2tldEZhY3RvcnkgPz8gKCh1cmwsIHdzT3B0aW9ucykgPT4gbmV3IFdzQ2xpZW50KHVybCwgd3NPcHRpb25zKSk7XG4gIH1cblxuICBzdHJlYW0ocmVxdWVzdDogT3BlbkFJVHJhbnNwb3J0UmVxdWVzdCk6IE9wZW5BSUV2ZW50U3RyZWFtIHtcbiAgICByZXR1cm4gdGhpcy5ydW4ocmVxdWVzdCk7XG4gIH1cblxuICBjbG9zZSgpOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IHsgc29ja2V0LCBldmVudHMgfSBvZiB0aGlzLmFmZmluaXR5Q29ubmVjdGlvbnMudmFsdWVzKCkpIHtcbiAgICAgIGV2ZW50cy5jbGVhbnVwKCk7XG4gICAgICBzb2NrZXQuY2xvc2UoMTAwMCwgXCJ0cmFuc3BvcnQgY2xvc2VkXCIpO1xuICAgIH1cbiAgICB0aGlzLmFmZmluaXR5Q29ubmVjdGlvbnMuY2xlYXIoKTtcbiAgICB0aGlzLmJ1c3lBZmZpbml0aWVzLmNsZWFyKCk7XG4gIH1cblxuICAvKipcbiAgICog7LqQ7Iuc7JeQIOyXsOqysOydhCDrk7HroZ3tlZzri6QuIOyekOumrOqwgCDsl4bsnLzrqbQg7Jyg7Zy0IOyXsOqysOunjCDstpXstpztlZjqs6AsIOyghOu2gCDsgqzsmqkg7KSR7J2066m0XG4gICAqIOynhO2WiSDspJHsnbgg7J2R64u17J2EIOuBiuuKlCDrjIDsi6Ag65Ox66Gd7J2EIO2PrOq4sO2VnOuLpChmYWxzZSDihpIg7J20IOyalOyyreydgCDsnbztmozshLEg7IaM7LyT7Jy866GcIOyymOumrCkuXG4gICAqL1xuICBwcml2YXRlIHJlbWVtYmVyQWZmaW5pdHlDb25uZWN0aW9uKHRocmVhZElkOiBzdHJpbmcsIGNvbm5lY3Rpb246IEFmZmluaXR5Q29ubmVjdGlvbik6IGJvb2xlYW4ge1xuICAgIGlmIChcbiAgICAgICF0aGlzLmFmZmluaXR5Q29ubmVjdGlvbnMuaGFzKHRocmVhZElkKSAmJlxuICAgICAgdGhpcy5hZmZpbml0eUNvbm5lY3Rpb25zLnNpemUgPj0gT3BlbkFJV2ViU29ja2V0VHJhbnNwb3J0Lk1BWF9BRkZJTklUWV9DT05ORUNUSU9OU1xuICAgICkge1xuICAgICAgY29uc3QgaWRsZUtleSA9IFsuLi50aGlzLmFmZmluaXR5Q29ubmVjdGlvbnMua2V5cygpXS5maW5kKFxuICAgICAgICAoa2V5KSA9PiAhdGhpcy5idXN5QWZmaW5pdGllcy5oYXMoa2V5KSxcbiAgICAgICk7XG4gICAgICBpZiAoaWRsZUtleSA9PT0gdW5kZWZpbmVkKSByZXR1cm4gZmFsc2U7XG4gICAgICBjb25zdCBpZGxlID0gdGhpcy5hZmZpbml0eUNvbm5lY3Rpb25zLmdldChpZGxlS2V5KSE7XG4gICAgICBpZGxlLmV2ZW50cy5jbGVhbnVwKCk7XG4gICAgICBpZGxlLnNvY2tldC5jbG9zZSgxMDAwLCBcImFmZmluaXR5IGNhY2hlIGV2aWN0ZWRcIik7XG4gICAgICB0aGlzLmFmZmluaXR5Q29ubmVjdGlvbnMuZGVsZXRlKGlkbGVLZXkpO1xuICAgIH1cbiAgICB0aGlzLmFmZmluaXR5Q29ubmVjdGlvbnMuc2V0KHRocmVhZElkLCBjb25uZWN0aW9uKTtcbiAgICAvLyDsnKDtnLQg7IOB7YOc7JeQ7IScIGJhY2tlbmQg6rCAIOuBiuydgCDshozsvJPsnYQg64uk7J2MIOyalOyyreydtCDsp5HslrTrk6Tsp4Ag7JWK64+E66GdIOy6kOyLnOyXkOyEnCDsoJzqsbDtlZzri6QuXG4gICAgY29uc3QgZHJvcCA9ICgpID0+IHtcbiAgICAgIGNvbm5lY3Rpb24uY2xvc2VkID0gdHJ1ZTtcbiAgICAgIGlmICh0aGlzLmJ1c3lBZmZpbml0aWVzLmhhcyh0aHJlYWRJZCkpIHJldHVybjtcbiAgICAgIGlmICh0aGlzLmFmZmluaXR5Q29ubmVjdGlvbnMuZ2V0KHRocmVhZElkKSAhPT0gY29ubmVjdGlvbikgcmV0dXJuO1xuICAgICAgdGhpcy5hZmZpbml0eUNvbm5lY3Rpb25zLmRlbGV0ZSh0aHJlYWRJZCk7XG4gICAgICBjb25uZWN0aW9uLmV2ZW50cy5jbGVhbnVwKCk7XG4gICAgfTtcbiAgICBjb25uZWN0aW9uLnNvY2tldC5vbihcImNsb3NlXCIsIGRyb3ApO1xuICAgIGNvbm5lY3Rpb24uc29ja2V0Lm9uKFwiZXJyb3JcIiwgZHJvcCk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jICpydW4ocmVxdWVzdDogT3BlbkFJVHJhbnNwb3J0UmVxdWVzdCk6IEFzeW5jR2VuZXJhdG9yPE9wZW5BSU5vcm1hbGl6ZWRFdmVudD4ge1xuICAgIGxldCByZWZyZXNoZWQgPSBmYWxzZTtcbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgaWYgKHJlcXVlc3Quc2lnbmFsPy5hYm9ydGVkKSB0aHJvdyBhYm9ydEVycm9yKHJlcXVlc3Quc2lnbmFsKTtcbiAgICAgIGNvbnN0IGhhc0FmZmluaXR5ID0gcmVxdWVzdC5ib2R5LnByb21wdF9jYWNoZV9rZXkgIT09IHVuZGVmaW5lZDtcbiAgICAgIGNvbnN0IHJldGFpbkNvbm5lY3Rpb24gPSBoYXNBZmZpbml0eSAmJiAhdGhpcy5idXN5QWZmaW5pdGllcy5oYXMocmVxdWVzdC50aHJlYWRJZCk7XG4gICAgICBpZiAocmV0YWluQ29ubmVjdGlvbikgdGhpcy5idXN5QWZmaW5pdGllcy5hZGQocmVxdWVzdC50aHJlYWRJZCk7XG4gICAgICBjb25zdCBlbnRyeSA9IHJldGFpbkNvbm5lY3Rpb24gPyB0aGlzLmFmZmluaXR5Q29ubmVjdGlvbnMuZ2V0KHJlcXVlc3QudGhyZWFkSWQpIDogdW5kZWZpbmVkO1xuICAgICAgaWYgKGVudHJ5Py5jbG9zZWQpIHtcbiAgICAgICAgdGhpcy5hZmZpbml0eUNvbm5lY3Rpb25zLmRlbGV0ZShyZXF1ZXN0LnRocmVhZElkKTtcbiAgICAgICAgZW50cnkuZXZlbnRzLmNsZWFudXAoKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGNhY2hlZCA9IGVudHJ5Py5jbG9zZWQgPyB1bmRlZmluZWQgOiBlbnRyeTtcbiAgICAgIC8vIOy6kOyLnCDrk7HroZ3sl5Ag7Iuk7Yyo7ZWY66m0IOydtCDsmpTssq3snYAg7J6s7IKs7JqpIOuMgOyDgeydtCDslYTri4jri6QuXG4gICAgICBsZXQgcmV0YWluZWQgPSByZXRhaW5Db25uZWN0aW9uO1xuICAgICAgY29uc3Qgc29ja2V0ID1cbiAgICAgICAgY2FjaGVkPy5zb2NrZXQgPz9cbiAgICAgICAgdGhpcy53ZWJTb2NrZXRGYWN0b3J5KHdlYnNvY2tldFVybChDSEFUR1BUX0NPREVYX1JFU1BPTlNFU19VUkwpLCB7XG4gICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgLi4uYnVpbGRDb2RleElkZW50aXR5SGVhZGVycyh0aGlzLmNyZWRlbnRpYWxzLmFjY2Vzc1Rva2VuLCB0aGlzLmNyZWRlbnRpYWxzLmFjY291bnRJZCwge1xuICAgICAgICAgICAgICBzZXNzaW9uSWQ6IHJlcXVlc3Quc2Vzc2lvbklkLFxuICAgICAgICAgICAgICB0aHJlYWRJZDogcmVxdWVzdC50aHJlYWRJZCxcbiAgICAgICAgICAgICAgY2xpZW50UmVxdWVzdElkOiByZXF1ZXN0LmNsaWVudFJlcXVlc3RJZCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgXCJPcGVuQUktQmV0YVwiOiBcInJlc3BvbnNlc193ZWJzb2NrZXRzPTIwMjYtMDItMDZcIixcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgIGNvbnN0IGV2ZW50cyA9IGNhY2hlZD8uZXZlbnRzID8/IHNvY2tldEV2ZW50cyhzb2NrZXQsIHJlcXVlc3Quc2lnbmFsKTtcbiAgICAgIGxldCBjb21wbGV0ZWQgPSBmYWxzZTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGlmICghY2FjaGVkKSB7XG4gICAgICAgICAgY29uc3QgaGFuZHNoYWtlID0gYXdhaXQgZXZlbnRzLm5leHQoKTtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBoYW5kc2hha2Uua2luZCA9PT0gXCJyZWplY3RlZFwiICYmXG4gICAgICAgICAgICBoYW5kc2hha2Uuc3RhdHVzID09PSA0MDEgJiZcbiAgICAgICAgICAgICFyZWZyZXNoZWQgJiZcbiAgICAgICAgICAgIHRoaXMucmVmcmVzaENyZWRlbnRpYWxzXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBzb2NrZXQudGVybWluYXRlKCk7XG4gICAgICAgICAgICB0aGlzLmNyZWRlbnRpYWxzID0gYXdhaXQgdGhpcy5yZWZyZXNoQ3JlZGVudGlhbHMoKTtcbiAgICAgICAgICAgIHJlZnJlc2hlZCA9IHRydWU7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGhhbmRzaGFrZS5raW5kID09PSBcInJlamVjdGVkXCIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBPcGVuQUlQcm90b2NvbEVycm9yKFxuICAgICAgICAgICAgICBgT3BlbkFJIFdlYlNvY2tldCBoYW5kc2hha2UgcmVqZWN0ZWQke2hhbmRzaGFrZS5zdGF0dXMgPyBgIHdpdGggSFRUUCAke2hhbmRzaGFrZS5zdGF0dXN9YCA6IFwiXCJ9YCxcbiAgICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgICBoYW5kc2hha2Uuc3RhdHVzLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGhhbmRzaGFrZS5raW5kID09PSBcImVycm9yXCIpIHRocm93IGhhbmRzaGFrZS5lcnJvcjtcbiAgICAgICAgICBpZiAoaGFuZHNoYWtlLmtpbmQgIT09IFwib3BlblwiKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgT3BlbkFJUHJvdG9jb2xFcnJvcihcIk9wZW5BSSBXZWJTb2NrZXQgY2xvc2VkIGJlZm9yZSB0aGUgaGFuZHNoYWtlIGNvbXBsZXRlZFwiKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHJldGFpbkNvbm5lY3Rpb24pIHtcbiAgICAgICAgICAgIHJldGFpbmVkID0gdGhpcy5yZW1lbWJlckFmZmluaXR5Q29ubmVjdGlvbihyZXF1ZXN0LnRocmVhZElkLCB7IHNvY2tldCwgZXZlbnRzIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGF3YWl0IG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICBzb2NrZXQuc2VuZChKU09OLnN0cmluZ2lmeSh7IHR5cGU6IFwicmVzcG9uc2UuY3JlYXRlXCIsIC4uLnJlcXVlc3QuYm9keSB9KSwgKGVycm9yKSA9PlxuICAgICAgICAgICAgZXJyb3IgPyByZWplY3QoZXJyb3IpIDogcmVzb2x2ZSgpLFxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAgICAgY29uc3QgcmVjb3JkID0gY2FjaGVkXG4gICAgICAgICAgICA/IGF3YWl0IG5leHRQb29sZWRSZWNvcmQoZXZlbnRzLCBzb2NrZXQsIHJlcXVlc3Quc2lnbmFsKVxuICAgICAgICAgICAgOiBhd2FpdCBldmVudHMubmV4dCgpO1xuICAgICAgICAgIGlmIChyZWNvcmQua2luZCA9PT0gXCJtZXNzYWdlXCIpIHtcbiAgICAgICAgICAgIGlmIChyZWNvcmQuaXNCaW5hcnkpIHtcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IE9wZW5BSVByb3RvY29sRXJyb3IoXCJPcGVuQUkgV2ViU29ja2V0IHNlbnQgYW4gdW5leHBlY3RlZCBiaW5hcnkgbWVzc2FnZVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCByYXc6IHVua25vd247XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICByYXcgPSBKU09OLnBhcnNlKHJhd0RhdGFUZXh0KHJlY29yZC5kYXRhKSk7XG4gICAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IE9wZW5BSVByb3RvY29sRXJyb3IoXCJPcGVuQUkgV2ViU29ja2V0IHNlbnQgaW52YWxpZCBKU09OXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgZXZlbnQgPSBub3JtYWxpemVPcGVuQUlFdmVudChyYXcpO1xuICAgICAgICAgICAgaWYgKCFldmVudCkgY29udGludWU7XG4gICAgICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gXCJjb21wbGV0ZWRcIikge1xuICAgICAgICAgICAgICBjb21wbGV0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICBpZiAocmV0YWluZWQpIGV2ZW50cy5kZXRhY2hBYm9ydCgpO1xuICAgICAgICAgICAgICBlbHNlIHNvY2tldC5jbG9zZSgxMDAwLCBcInJlc3BvbnNlIGNvbXBsZXRlZFwiKTtcbiAgICAgICAgICAgICAgeWllbGQgZXZlbnQ7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHlpZWxkIGV2ZW50O1xuICAgICAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09IFwiZXJyb3JcIikgdGhyb3cgZXZlbnQuZXJyb3I7XG4gICAgICAgICAgfSBlbHNlIGlmIChyZWNvcmQua2luZCA9PT0gXCJlcnJvclwiKSB7XG4gICAgICAgICAgICB0aHJvdyByZWNvcmQuZXJyb3I7XG4gICAgICAgICAgfSBlbHNlIGlmIChyZWNvcmQua2luZCA9PT0gXCJjbG9zZVwiKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgT3BlbkFJUHJvdG9jb2xFcnJvcihcbiAgICAgICAgICAgICAgYE9wZW5BSSBXZWJTb2NrZXQgY2xvc2VkIGJlZm9yZSBhIHRlcm1pbmFsIHJlc3BvbnNlIGV2ZW50ICgke3JlY29yZC5jb2RlfSR7cmVjb3JkLnJlYXNvbiA/IGA6ICR7cmVjb3JkLnJlYXNvbn1gIDogXCJcIn0pYCxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBPcGVuQUlQcm90b2NvbEVycm9yKFwiT3BlbkFJIFdlYlNvY2tldCBlbWl0dGVkIGFuIHVuZXhwZWN0ZWQgaGFuZHNoYWtlIGV2ZW50XCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgaWYgKCFjb21wbGV0ZWQgfHwgIXJldGFpbmVkKSB7XG4gICAgICAgICAgaWYgKHJldGFpbmVkKSB0aGlzLmFmZmluaXR5Q29ubmVjdGlvbnMuZGVsZXRlKHJlcXVlc3QudGhyZWFkSWQpO1xuICAgICAgICAgIGV2ZW50cy5jbGVhbnVwKCk7XG4gICAgICAgICAgaWYgKCFjb21wbGV0ZWQpIHNvY2tldC50ZXJtaW5hdGUoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocmV0YWluQ29ubmVjdGlvbikgdGhpcy5idXN5QWZmaW5pdGllcy5kZWxldGUocmVxdWVzdC50aHJlYWRJZCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJlc3BvbnNlRXJyb3IocmVzcG9uc2U6IFJlc3BvbnNlKTogUHJvbWlzZTxPcGVuQUlQcm90b2NvbEVycm9yPiB7XG4gIGNvbnN0IHRleHQgPSBhd2FpdCByZXNwb25zZS50ZXh0KCkuY2F0Y2goKCkgPT4gXCJcIik7XG4gIGxldCBtZXNzYWdlID0gdGV4dCB8fCByZXNwb25zZS5zdGF0dXNUZXh0IHx8IGBIVFRQICR7cmVzcG9uc2Uuc3RhdHVzfWA7XG4gIGxldCBjb2RlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHRyeSB7XG4gICAgY29uc3QgcGFyc2VkID0gSlNPTi5wYXJzZSh0ZXh0KSBhcyB7XG4gICAgICBlcnJvcj86IHsgbWVzc2FnZT86IHN0cmluZzsgY29kZT86IHN0cmluZyB9IHwgc3RyaW5nO1xuICAgICAgbWVzc2FnZT86IHN0cmluZztcbiAgICAgIGNvZGU/OiBzdHJpbmc7XG4gICAgfTtcbiAgICBjb25zdCBlcnJvciA9IHBhcnNlZC5lcnJvcjtcbiAgICBtZXNzYWdlID1cbiAgICAgICh0eXBlb2YgZXJyb3IgPT09IFwib2JqZWN0XCIgPyBlcnJvci5tZXNzYWdlIDogdW5kZWZpbmVkKSA/P1xuICAgICAgcGFyc2VkLm1lc3NhZ2UgPz9cbiAgICAgICh0eXBlb2YgZXJyb3IgPT09IFwic3RyaW5nXCIgPyBlcnJvciA6IG1lc3NhZ2UpO1xuICAgIGNvZGUgPSAodHlwZW9mIGVycm9yID09PSBcIm9iamVjdFwiID8gZXJyb3IuY29kZSA6IHVuZGVmaW5lZCkgPz8gcGFyc2VkLmNvZGU7XG4gIH0gY2F0Y2gge1xuICAgIGNvZGUgPSB1bmRlZmluZWQ7XG4gIH1cbiAgcmV0dXJuIG5ldyBPcGVuQUlQcm90b2NvbEVycm9yKG1lc3NhZ2UsIGNvZGUsIHJlc3BvbnNlLnN0YXR1cyk7XG59XG5cbmV4cG9ydCBjbGFzcyBPcGVuQUlIdHRwc1RyYW5zcG9ydCBpbXBsZW1lbnRzIE9wZW5BSVJlc3BvbnNlc1RyYW5zcG9ydCB7XG4gIHByaXZhdGUgY3JlZGVudGlhbHM6IE9wZW5BSURpcmVjdENyZWRlbnRpYWxzO1xuICBwcml2YXRlIHJlYWRvbmx5IGZldGNoSW1wbDogdHlwZW9mIGZldGNoO1xuICBwcml2YXRlIHJlYWRvbmx5IHJlZnJlc2hDcmVkZW50aWFscz86ICgpID0+IFByb21pc2U8T3BlbkFJRGlyZWN0Q3JlZGVudGlhbHM+O1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IE9wZW5BSUh0dHBzVHJhbnNwb3J0T3B0aW9ucykge1xuICAgIHRoaXMuY3JlZGVudGlhbHMgPSBvcHRpb25zLmNyZWRlbnRpYWxzO1xuICAgIHRoaXMuZmV0Y2hJbXBsID0gb3B0aW9ucy5mZXRjaCA/PyBmZXRjaDtcbiAgICB0aGlzLnJlZnJlc2hDcmVkZW50aWFscyA9IG9wdGlvbnMucmVmcmVzaENyZWRlbnRpYWxzO1xuICB9XG5cbiAgc3RyZWFtKHJlcXVlc3Q6IE9wZW5BSVRyYW5zcG9ydFJlcXVlc3QpOiBPcGVuQUlFdmVudFN0cmVhbSB7XG4gICAgcmV0dXJuIHRoaXMucnVuKHJlcXVlc3QpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyAqcnVuKHJlcXVlc3Q6IE9wZW5BSVRyYW5zcG9ydFJlcXVlc3QpOiBBc3luY0dlbmVyYXRvcjxPcGVuQUlOb3JtYWxpemVkRXZlbnQ+IHtcbiAgICBsZXQgcmVmcmVzaGVkID0gZmFsc2U7XG5cbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmZldGNoSW1wbChDSEFUR1BUX0NPREVYX1JFU1BPTlNFU19VUkwsIHtcbiAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgaGVhZGVyczogYnVpbGRDb2RleElkZW50aXR5SGVhZGVycyhcbiAgICAgICAgICB0aGlzLmNyZWRlbnRpYWxzLmFjY2Vzc1Rva2VuLFxuICAgICAgICAgIHRoaXMuY3JlZGVudGlhbHMuYWNjb3VudElkLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHNlc3Npb25JZDogcmVxdWVzdC5zZXNzaW9uSWQsXG4gICAgICAgICAgICB0aHJlYWRJZDogcmVxdWVzdC50aHJlYWRJZCxcbiAgICAgICAgICAgIGNsaWVudFJlcXVlc3RJZDogcmVxdWVzdC5jbGllbnRSZXF1ZXN0SWQsXG4gICAgICAgICAgfSxcbiAgICAgICAgKSxcbiAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkocmVxdWVzdC5ib2R5KSxcbiAgICAgICAgc2lnbmFsOiByZXF1ZXN0LnNpZ25hbCxcbiAgICAgIH0pO1xuXG4gICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSA0MDEgJiYgIXJlZnJlc2hlZCAmJiB0aGlzLnJlZnJlc2hDcmVkZW50aWFscykge1xuICAgICAgICBhd2FpdCByZXNwb25zZS5ib2R5Py5jYW5jZWwoKTtcbiAgICAgICAgdGhpcy5jcmVkZW50aWFscyA9IGF3YWl0IHRoaXMucmVmcmVzaENyZWRlbnRpYWxzKCk7XG4gICAgICAgIHJlZnJlc2hlZCA9IHRydWU7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKCFyZXNwb25zZS5vaykgdGhyb3cgYXdhaXQgcmVzcG9uc2VFcnJvcihyZXNwb25zZSk7XG4gICAgICBpZiAoIXJlc3BvbnNlLmJvZHkpIHRocm93IG5ldyBPcGVuQUlQcm90b2NvbEVycm9yKFwiT3BlbkFJIHJlc3BvbnNlIGhhZCBubyBib2R5XCIpO1xuXG4gICAgICBmb3IgYXdhaXQgKGNvbnN0IGV2ZW50IG9mIG5vcm1hbGl6ZU9wZW5BSVNTRShyZXNwb25zZS5ib2R5KSkge1xuICAgICAgICB5aWVsZCBldmVudDtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBPcGVuQUlEaXJlY3RDbGllbnRPcHRpb25zIGV4dGVuZHMgT3BlbkFJSHR0cHNUcmFuc3BvcnRPcHRpb25zIHtcbiAgdHJhbnNwb3J0PzogT3BlbkFJUmVzcG9uc2VzVHJhbnNwb3J0O1xuICB0cmFuc3BvcnRLaW5kPzogXCJodHRwc1wiIHwgXCJ3ZWJzb2NrZXRcIjtcbiAgd2ViU29ja2V0RmFjdG9yeT86IE9wZW5BSVdlYlNvY2tldEZhY3Rvcnk7XG59XG5cbmV4cG9ydCBjbGFzcyBPcGVuQUlEaXJlY3RDbGllbnQge1xuICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zcG9ydDogT3BlbkFJUmVzcG9uc2VzVHJhbnNwb3J0O1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IE9wZW5BSURpcmVjdENsaWVudE9wdGlvbnMpIHtcbiAgICB0aGlzLnRyYW5zcG9ydCA9XG4gICAgICBvcHRpb25zLnRyYW5zcG9ydCA/P1xuICAgICAgKG9wdGlvbnMudHJhbnNwb3J0S2luZCA9PT0gXCJ3ZWJzb2NrZXRcIlxuICAgICAgICA/IG5ldyBPcGVuQUlXZWJTb2NrZXRUcmFuc3BvcnQob3B0aW9ucylcbiAgICAgICAgOiBuZXcgT3BlbkFJSHR0cHNUcmFuc3BvcnQob3B0aW9ucykpO1xuICB9XG5cbiAgcmVzcG9uc2VzKG9wdGlvbnM6IE9wZW5BSVJlc3BvbnNlc09wdGlvbnMsIHNpZ25hbD86IEFib3J0U2lnbmFsKTogT3BlbkFJRXZlbnRTdHJlYW0ge1xuICAgIGNvbnN0IGNsaWVudFJlcXVlc3RJZCA9IGNyeXB0by5yYW5kb21VVUlEKCk7XG4gICAgY29uc3QgYWZmaW5pdHlJZCA9IG9wdGlvbnMucHJvbXB0Q2FjaGVLZXlcbiAgICAgID8gY2FjaGVBZmZpbml0eVV1aWQob3B0aW9ucy5wcm9tcHRDYWNoZUtleSlcbiAgICAgIDogY2xpZW50UmVxdWVzdElkO1xuICAgIHJldHVybiB0aGlzLnRyYW5zcG9ydC5zdHJlYW0oe1xuICAgICAgYm9keTogYnVpbGRPcGVuQUlSZXNwb25zZXNSZXF1ZXN0KFxuICAgICAgICBvcHRpb25zLnByb21wdENhY2hlS2V5ID8geyAuLi5vcHRpb25zLCBwcm9tcHRDYWNoZUtleTogYWZmaW5pdHlJZCB9IDogb3B0aW9ucyxcbiAgICAgICksXG4gICAgICBzaWduYWwsXG4gICAgICBzZXNzaW9uSWQ6IGFmZmluaXR5SWQsXG4gICAgICAvLyBwcm9tcHRDYWNoZUtleSBpcyBhbHJlYWR5IGEgb25lLXdheSBTREsgYWZmaW5pdHkgdmFsdWUsIG5ldmVyIGEgcmF3IHNlc3Npb25LZXkuXG4gICAgICB0aHJlYWRJZDogYWZmaW5pdHlJZCxcbiAgICAgIGNsaWVudFJlcXVlc3RJZCxcbiAgICB9KTtcbiAgfVxuXG4gIGNsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMudHJhbnNwb3J0LmNsb3NlPy4oKTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7OztBQXFFQSxNQUFNLDhCQUE4QjtBQUVwQyxTQUFTLGFBQWEsS0FBcUI7Q0FDekMsSUFBSTtDQUNKLElBQUk7RUFDRixTQUFTLElBQUksSUFBSSxHQUFHO0NBQ3RCLFNBQVMsT0FBTztFQUNkLE1BQU0sSUFBSSxvQkFBb0IsaUNBQWlDLE9BQU8sS0FBSyxHQUFHO0NBQ2hGO0NBQ0EsT0FBTyxXQUFXLE9BQU8sYUFBYSxXQUFXLFNBQVM7Q0FDMUQsT0FBTyxPQUFPLFNBQVM7QUFDekI7QUFFQSxTQUFTLFlBQVksTUFBdUI7Q0FDMUMsSUFBSSxNQUFNLFFBQVEsSUFBSSxHQUFHLE9BQU8sT0FBTyxPQUFPLElBQUksQ0FBQyxDQUFDLFNBQVM7Q0FDN0QsSUFBSSxnQkFBZ0IsYUFBYSxPQUFPLE9BQU8sS0FBSyxJQUFJLFdBQVcsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTO0NBQ25GLE9BQU8sT0FBTyxLQUFLLElBQUksQ0FBQyxDQUFDLFNBQVM7QUFDcEM7QUFFQSxTQUFTLGFBQWEsUUFBNkIsUUFBc0I7Q0FDdkUsTUFBTSxVQUEwQixDQUFDO0NBQ2pDLE1BQU0sVUFBaUQsQ0FBQztDQUN4RCxJQUFJLFNBQVM7Q0FDYixNQUFNLFFBQVEsV0FBeUI7RUFDckMsSUFBSSxDQUFDLFFBQVE7RUFDYixNQUFNLFNBQVMsUUFBUSxNQUFNO0VBQzdCLElBQUksUUFBUSxPQUFPLE1BQU07T0FDcEIsSUFBSSxRQUFRLFNBQVMsNkJBQTZCLFFBQVEsS0FBSyxNQUFNO09BQ3JFO0dBQ0gsU0FBUztHQUNULFFBQVEsU0FBUztHQUNqQixPQUFPLFVBQVU7R0FDakIsTUFBTSxXQUFXO0lBQ2YsTUFBTTtJQUNOLE9BQU8sSUFBSSxvQkFDVCxpQ0FBaUMsNEJBQTRCLHlCQUM3RCx3QkFDRjtHQUNGO0dB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