@voxgig/sdkgen 4.8.2 → 4.9.0

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 (407) hide show
  1. package/bin/voxgig-sdkgen +1 -1
  2. package/dist/action/doctor.d.ts +1 -0
  3. package/dist/action/doctor.js +50 -2
  4. package/dist/action/doctor.js.map +1 -1
  5. package/dist/helpers/naming.js +4 -2
  6. package/dist/helpers/naming.js.map +1 -1
  7. package/dist/tsconfig.tsbuildinfo +1 -1
  8. package/model/sdkgen.aon +21 -0
  9. package/package.json +1 -1
  10. package/project/.sdk/model/feature/secrets.aon +120 -18
  11. package/project/.sdk/model/target/c.aon +10 -0
  12. package/project/.sdk/model/target/clojure.aon +13 -0
  13. package/project/.sdk/model/target/cpp.aon +10 -0
  14. package/project/.sdk/model/target/csharp.aon +9 -0
  15. package/project/.sdk/model/target/dart.aon +10 -0
  16. package/project/.sdk/model/target/elixir.aon +9 -0
  17. package/project/.sdk/model/target/go.aon +13 -0
  18. package/project/.sdk/model/target/java.aon +9 -0
  19. package/project/.sdk/model/target/js.aon +7 -0
  20. package/project/.sdk/model/target/kotlin.aon +9 -0
  21. package/project/.sdk/model/target/lean.aon +17 -0
  22. package/project/.sdk/model/target/lua.aon +8 -0
  23. package/project/.sdk/model/target/ocaml.aon +9 -0
  24. package/project/.sdk/model/target/perl.aon +8 -0
  25. package/project/.sdk/model/target/php.aon +8 -0
  26. package/project/.sdk/model/target/py.aon +13 -0
  27. package/project/.sdk/model/target/rb.aon +8 -0
  28. package/project/.sdk/model/target/rust.aon +10 -0
  29. package/project/.sdk/model/target/scala.aon +21 -2
  30. package/project/.sdk/model/target/swift.aon +18 -0
  31. package/project/.sdk/model/target/ts.aon +13 -0
  32. package/project/.sdk/model/target/zig.aon +9 -0
  33. package/project/.sdk/src/cmp/clojure/Package_clojure.ts +9 -2
  34. package/project/.sdk/src/cmp/cpp/Gitignore_cpp.ts +3 -0
  35. package/project/.sdk/src/cmp/dart/Test_dart.ts +2 -0
  36. package/project/.sdk/src/cmp/elixir/Package_elixir.ts +4 -1
  37. package/project/.sdk/src/cmp/go/Config_go.ts +59 -2
  38. package/project/.sdk/src/cmp/go/Main_go.ts +8 -2
  39. package/project/.sdk/src/cmp/java/Test_java.ts +6 -5
  40. package/project/.sdk/src/cmp/kotlin/Test_kotlin.ts +6 -5
  41. package/project/.sdk/src/cmp/lean/Package_lean.ts +23 -0
  42. package/project/.sdk/src/cmp/lean/ReadmeInstall_lean.ts +1 -0
  43. package/project/.sdk/src/cmp/lean/ReadmeTopTest_lean.ts +1 -0
  44. package/project/.sdk/src/cmp/ocaml/Gitignore_ocaml.ts +1 -0
  45. package/project/.sdk/src/cmp/ocaml/Main_ocaml.ts +7 -3
  46. package/project/.sdk/src/cmp/py/Config_py.ts +82 -1
  47. package/project/.sdk/src/cmp/py/Main_py.ts +44 -0
  48. package/project/.sdk/src/cmp/py/fragment/Main.fragment.py +2 -0
  49. package/project/.sdk/src/cmp/swift/Main_swift.ts +10 -0
  50. package/project/.sdk/src/cmp/swift/Package_swift.ts +13 -1
  51. package/project/.sdk/src/cmp/ts/Config_ts.ts +42 -17
  52. package/project/.sdk/src/cmp/ts/fragment/Config.data.fragment.ts +13 -1
  53. package/project/.sdk/src/cmp/ts/fragment/Config.fragment.ts +13 -1
  54. package/project/.sdk/src/cmp/zig/Package_zig.ts +15 -11
  55. package/project/.sdk/src/cmp/zig/fragment/Entity.fragment.zig +3 -3
  56. package/project/.sdk/src/cmp/zig/fragment/EntityListOp.fragment.zig +3 -3
  57. package/project/.sdk/src/cmp/zig/fragment/Main.fragment.zig +3 -3
  58. package/project/.sdk/src/cmp/zig/utility_zig.ts +50 -1
  59. package/project/.sdk/tm/c/Makefile +38 -3
  60. package/project/.sdk/tm/c/tests/omni_resolver.h +361 -0
  61. package/project/.sdk/tm/c/tests/omni_smoke_test.c +237 -0
  62. package/project/.sdk/tm/c/tests/primary_corpus_test.c +205 -284
  63. package/project/.sdk/tm/c/tests/struct_corpus_test.c +292 -212
  64. package/project/.sdk/tm/c/tests/vendor/omni/json.c +811 -0
  65. package/project/.sdk/tm/c/tests/vendor/omni/omni.h +240 -0
  66. package/project/.sdk/tm/c/tests/vendor/omni/runner.c +940 -0
  67. package/project/.sdk/tm/c/tests/vendor/omni/util.c +351 -0
  68. package/project/.sdk/tm/c/utility/struct/utility.c +7 -2
  69. package/project/.sdk/tm/clojure/test/sdk/test/omni.clj +401 -0
  70. package/project/.sdk/tm/clojure/test/sdk/test/omni_smoke.clj +81 -0
  71. package/project/.sdk/tm/clojure/test/sdk/test/primary.clj +92 -58
  72. package/project/.sdk/tm/clojure/test/sdk/test/struct_corpus.clj +122 -149
  73. package/project/.sdk/tm/clojure/test/sdk/test_runner.clj +8 -3
  74. package/project/.sdk/tm/clojure/test/vendor/omni/voxgig/omni/json.clj +145 -0
  75. package/project/.sdk/tm/clojure/test/vendor/omni/voxgig/omni/runner.clj +445 -0
  76. package/project/.sdk/tm/clojure/test/vendor/omni/voxgig/omni/util.clj +145 -0
  77. package/project/.sdk/tm/cpp/Makefile +5 -1
  78. package/project/.sdk/tm/cpp/test/omni_resolver.hpp +473 -0
  79. package/project/.sdk/tm/cpp/test/omni_smoke_test.cpp +209 -0
  80. package/project/.sdk/tm/cpp/test/primary_utility_test.cpp +243 -184
  81. package/project/.sdk/tm/cpp/test/runner_support.hpp +68 -181
  82. package/project/.sdk/tm/cpp/test/struct_corpus_test.cpp +183 -56
  83. package/project/.sdk/tm/cpp/test/vendor/omni/json.hpp +406 -0
  84. package/project/.sdk/tm/cpp/test/vendor/omni/omni.hpp +751 -0
  85. package/project/.sdk/tm/cpp/test/vendor/omni/util.hpp +256 -0
  86. package/project/.sdk/tm/cpp/utility/pipeline.hpp +7 -1
  87. package/project/.sdk/tm/csharp/test/OmniResolver.cs +491 -0
  88. package/project/.sdk/tm/csharp/test/OmniSmokeTest.cs +106 -0
  89. package/project/.sdk/tm/csharp/test/PrimaryUtilityTest.cs +299 -316
  90. package/project/.sdk/tm/csharp/test/Runner.cs +104 -269
  91. package/project/.sdk/tm/csharp/test/StructUtilityTest.cs +535 -724
  92. package/project/.sdk/tm/csharp/test/vendor/omni/Runner.cs +864 -0
  93. package/project/.sdk/tm/csharp/test/vendor/omni/Util.cs +347 -0
  94. package/project/.sdk/tm/csharp/utility/MakeSpec.cs +3 -1
  95. package/project/.sdk/tm/csharp/utility/PrepareMethod.cs +6 -1
  96. package/project/.sdk/tm/csharp/utility/struct/Struct.cs +21 -5
  97. package/project/.sdk/tm/dart/test/omni.dart +520 -0
  98. package/project/.sdk/tm/dart/test/omni_smoke_test.dart +143 -0
  99. package/project/.sdk/tm/dart/test/primary_test.dart +86 -28
  100. package/project/.sdk/tm/dart/test/struct_test.dart +438 -11
  101. package/project/.sdk/tm/dart/test/vendor/omni/omni.dart +7 -0
  102. package/project/.sdk/tm/dart/test/vendor/omni/runner.dart +653 -0
  103. package/project/.sdk/tm/dart/test/vendor/omni/util.dart +232 -0
  104. package/project/.sdk/tm/elixir/Makefile +11 -3
  105. package/project/.sdk/tm/elixir/test/omni_smoke_test.exs +117 -0
  106. package/project/.sdk/tm/elixir/test/primary_utility_test.exs +341 -16
  107. package/project/.sdk/tm/elixir/test/struct_corpus_test.exs +554 -9
  108. package/project/.sdk/tm/elixir/test/support/omni.ex +377 -0
  109. package/project/.sdk/tm/elixir/test/vendor/omni/json.ex +122 -0
  110. package/project/.sdk/tm/elixir/test/vendor/omni/runner.ex +623 -0
  111. package/project/.sdk/tm/elixir/test/vendor/omni/util.ex +187 -0
  112. package/project/.sdk/tm/go/core/context.go +32 -16
  113. package/project/.sdk/tm/go/feature/secrets/plugin/capability.go +261 -0
  114. package/project/.sdk/tm/go/feature/secrets/plugin/catalog.go +78 -0
  115. package/project/.sdk/tm/go/feature/secrets/plugin/config.go +652 -0
  116. package/project/.sdk/tm/go/feature/secrets/plugin/depend.go +250 -0
  117. package/project/.sdk/tm/go/feature/secrets/plugin/env.go +194 -0
  118. package/project/.sdk/tm/go/feature/secrets/plugin/export.go +80 -0
  119. package/project/.sdk/tm/go/feature/secrets/plugin/graph.go +238 -0
  120. package/project/.sdk/tm/go/feature/secrets/plugin/host.go +1575 -0
  121. package/project/.sdk/tm/go/feature/secrets/plugin/order.go +248 -0
  122. package/project/.sdk/tm/go/feature/secrets/plugin/point.go +184 -0
  123. package/project/.sdk/tm/go/feature/secrets/plugin/ref.go +123 -0
  124. package/project/.sdk/tm/go/feature/secrets/plugin/resolve.go +79 -0
  125. package/project/.sdk/tm/go/feature/secrets/plugin/types.go +296 -0
  126. package/project/.sdk/tm/go/feature/secrets/plugin/util.go +87 -0
  127. package/project/.sdk/tm/go/feature/secrets/plugin/version.go +161 -0
  128. package/project/.sdk/tm/go/feature/secrets/plugins/aws/aws.go +292 -0
  129. package/project/.sdk/tm/go/feature/secrets/plugins/aws/sigv4.go +201 -0
  130. package/project/.sdk/tm/go/feature/secrets/plugins/azuresecrets/azuresecrets.go +187 -0
  131. package/project/.sdk/tm/go/feature/secrets/plugins/boru/boru.go +184 -0
  132. package/project/.sdk/tm/go/feature/secrets/plugins/doppler/doppler.go +114 -0
  133. package/project/.sdk/tm/go/feature/secrets/plugins/gcpsecrets/gcpsecrets.go +156 -0
  134. package/project/.sdk/tm/go/feature/secrets/plugins/hashicorp/hashicorp.go +208 -0
  135. package/project/.sdk/tm/go/feature/secrets/plugins/httpjson/httpjson.go +241 -0
  136. package/project/.sdk/tm/go/feature/secrets/plugins/infisical/infisical.go +150 -0
  137. package/project/.sdk/tm/go/feature/secrets/plugins/onepassword/onepassword.go +152 -0
  138. package/project/.sdk/tm/go/feature/secrets/plugins/secretspec/secretspec.go +143 -0
  139. package/project/.sdk/tm/go/feature/secrets/sekreto/addr.go +120 -0
  140. package/project/.sdk/tm/go/feature/secrets/sekreto/providers.go +442 -0
  141. package/project/.sdk/tm/go/feature/secrets/sekreto/sekreto.go +714 -0
  142. package/project/.sdk/tm/go/feature/secrets_feature.go +675 -0
  143. package/project/.sdk/tm/go/src/feature/secrets/.gitkeep +0 -0
  144. package/project/.sdk/tm/go/test/feature/secrets/secrets_feature_test.go +799 -0
  145. package/project/.sdk/tm/go/test/omni/omni.go +902 -0
  146. package/project/.sdk/tm/go/test/omni/util.go +381 -0
  147. package/project/.sdk/tm/go/test/omniresolver_test.go +748 -0
  148. package/project/.sdk/tm/go/test/omnismoke_test.go +112 -0
  149. package/project/.sdk/tm/go/test/primary_utility_test.go +123 -191
  150. package/project/.sdk/tm/go/test/struct_utility_test.go +323 -16
  151. package/project/.sdk/tm/go/test/testsupport_test.go +294 -0
  152. package/project/.sdk/tm/go/utility/make_options.go +8 -1
  153. package/project/.sdk/tm/go/utility/prepare_method.go +5 -1
  154. package/project/.sdk/tm/go/utility/struct/voxgigstruct.go +2 -2
  155. package/project/.sdk/tm/java/test/OmniResolver.java +355 -0
  156. package/project/.sdk/tm/java/test/OmniSmokeTest.java +99 -0
  157. package/project/.sdk/tm/java/test/PrimaryUtilityTest.java +254 -280
  158. package/project/.sdk/tm/java/test/RunnerSupport.java +9 -194
  159. package/project/.sdk/tm/java/test/StructCorpusTest.java +119 -42
  160. package/project/.sdk/tm/java/test/vendor/omni/Json.java +287 -0
  161. package/project/.sdk/tm/java/test/vendor/omni/Runner.java +851 -0
  162. package/project/.sdk/tm/java/test/vendor/omni/Util.java +322 -0
  163. package/project/.sdk/tm/java/utility/MakeSpec.java +3 -1
  164. package/project/.sdk/tm/java/utility/PrepareMethod.java +5 -5
  165. package/project/.sdk/tm/java/utility/struct/Struct.java +17 -4
  166. package/project/.sdk/tm/js/src/utility/StructUtility.js +3 -3
  167. package/project/.sdk/tm/js/test/omni.js +251 -0
  168. package/project/.sdk/tm/js/test/omni.test.js +105 -0
  169. package/project/.sdk/tm/js/test/utility/PrimaryUtility.test.js +6 -2
  170. package/project/.sdk/tm/js/test/utility/StructUtility.test.js +27 -2
  171. package/project/.sdk/tm/js/test/vendor/omni/index.js +77 -0
  172. package/project/.sdk/tm/js/test/vendor/omni/runner.js +628 -0
  173. package/project/.sdk/tm/js/test/vendor/omni/util.js +229 -0
  174. package/project/.sdk/tm/kotlin/core/Utility.kt +1 -1
  175. package/project/.sdk/tm/kotlin/test/OmniResolver.kt +343 -0
  176. package/project/.sdk/tm/kotlin/test/OmniSmokeTest.kt +100 -0
  177. package/project/.sdk/tm/kotlin/test/PrimaryUtilityTest.kt +244 -262
  178. package/project/.sdk/tm/kotlin/test/RunnerSupport.kt +9 -178
  179. package/project/.sdk/tm/kotlin/test/StructCorpusTest.kt +121 -32
  180. package/project/.sdk/tm/kotlin/test/vendor/omni/Json.kt +264 -0
  181. package/project/.sdk/tm/kotlin/test/vendor/omni/Runner.kt +615 -0
  182. package/project/.sdk/tm/kotlin/test/vendor/omni/Util.kt +139 -0
  183. package/project/.sdk/tm/kotlin/utility/MakeSpecUrl.kt +6 -3
  184. package/project/.sdk/tm/kotlin/utility/Prepare.kt +6 -6
  185. package/project/.sdk/tm/kotlin/utility/struct/Struct.kt +18 -2
  186. package/project/.sdk/tm/lean/Makefile +12 -5
  187. package/project/.sdk/tm/lean/src/SdkUtility.lean +14 -1
  188. package/project/.sdk/tm/lean/test/OmniResolver.lean +358 -0
  189. package/project/.sdk/tm/lean/test/OmniSmoke.lean +174 -0
  190. package/project/.sdk/tm/lean/test/StructCorpus.lean +245 -574
  191. package/project/.sdk/tm/lean/test/TPrimaryUtility.lean +155 -291
  192. package/project/.sdk/tm/lean/test/vendor/omni/Omni.lean +997 -0
  193. package/project/.sdk/tm/lua/test/omni.lua +456 -0
  194. package/project/.sdk/tm/lua/test/omni_smoke_test.lua +103 -0
  195. package/project/.sdk/tm/lua/test/primary_utility_test.lua +250 -509
  196. package/project/.sdk/tm/lua/test/struct_utility_test.lua +161 -70
  197. package/project/.sdk/tm/lua/test/vendor/omni/json.lua +268 -0
  198. package/project/.sdk/tm/lua/test/vendor/omni/regex.lua +385 -0
  199. package/project/.sdk/tm/lua/test/vendor/omni/runner.lua +641 -0
  200. package/project/.sdk/tm/lua/test/vendor/omni/util.lua +282 -0
  201. package/project/.sdk/tm/lua/utility/prepare_method.lua +5 -1
  202. package/project/.sdk/tm/lua/utility/struct/regex.lua +663 -0
  203. package/project/.sdk/tm/lua/utility/struct/struct.lua +660 -420
  204. package/project/.sdk/tm/ocaml/Makefile +37 -12
  205. package/project/.sdk/tm/ocaml/test/omni_resolver.ml +284 -0
  206. package/project/.sdk/tm/ocaml/test/omni_smoke_test.ml +169 -0
  207. package/project/.sdk/tm/ocaml/test/primary_utility_test.ml +84 -100
  208. package/project/.sdk/tm/ocaml/test/struct_corpus.ml +225 -201
  209. package/project/.sdk/tm/ocaml/test/vendor/omni/omni.ml +1157 -0
  210. package/project/.sdk/tm/perl/lib/Voxgig/Struct.pm +88 -12
  211. package/project/.sdk/tm/perl/t/omni.pm +647 -0
  212. package/project/.sdk/tm/perl/t/omni_smoke.t +87 -0
  213. package/project/.sdk/tm/perl/t/primary_utility.t +189 -487
  214. package/project/.sdk/tm/perl/t/struct_utility.t +455 -389
  215. package/project/.sdk/tm/perl/t/vendor/omni/Voxgig/Omni/Runner.pm +649 -0
  216. package/project/.sdk/tm/perl/t/vendor/omni/Voxgig/Omni/Util.pm +253 -0
  217. package/project/.sdk/tm/perl/t/vendor/omni/Voxgig/Omni.pm +24 -0
  218. package/project/.sdk/tm/perl/utility/prepare_method.pm +7 -2
  219. package/project/.sdk/tm/php/test/Omni.php +691 -0
  220. package/project/.sdk/tm/php/test/OmniSmokeTest.php +93 -0
  221. package/project/.sdk/tm/php/test/PrimaryUtilityTest.php +210 -571
  222. package/project/.sdk/tm/php/test/StructUtilityTest.php +320 -342
  223. package/project/.sdk/tm/php/test/vendor/omni/Runner.php +644 -0
  224. package/project/.sdk/tm/php/test/vendor/omni/Util.php +283 -0
  225. package/project/.sdk/tm/php/utility/MakeSpec.php +10 -3
  226. package/project/.sdk/tm/php/utility/PrepareBody.php +7 -1
  227. package/project/.sdk/tm/php/utility/PrepareMethod.php +6 -2
  228. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/__init__.py +36 -0
  229. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/capability.py +141 -0
  230. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/catalog.py +50 -0
  231. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/config.py +333 -0
  232. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/depend.py +198 -0
  233. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/env.py +147 -0
  234. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/export.py +52 -0
  235. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/graph.py +139 -0
  236. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/host.py +1053 -0
  237. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/order.py +171 -0
  238. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/point.py +95 -0
  239. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/ref.py +116 -0
  240. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/resolve.py +59 -0
  241. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/types.py +87 -0
  242. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/version.py +112 -0
  243. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/__init__.py +76 -0
  244. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/addr.py +116 -0
  245. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/aws.py +192 -0
  246. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/azuresecrets.py +120 -0
  247. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/boru.py +140 -0
  248. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/doppler.py +62 -0
  249. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/gcpsecrets.py +101 -0
  250. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/hashicorp.py +151 -0
  251. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/httpjson.py +115 -0
  252. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/infisical.py +90 -0
  253. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/onepassword.py +101 -0
  254. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/secretspec.py +119 -0
  255. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/sigv4.py +125 -0
  256. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/providers.py +211 -0
  257. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/sekreto.py +475 -0
  258. package/project/.sdk/tm/py/pkg/feature/secrets_feature.py +467 -0
  259. package/project/.sdk/tm/py/pkg/utility/prepare_method.py +5 -1
  260. package/project/.sdk/tm/py/pkg/utility/voxgig_struct/__init__.py +0 -2
  261. package/project/.sdk/tm/py/pkg/utility/voxgig_struct/voxgig_struct.py +780 -529
  262. package/project/.sdk/tm/py/src/feature/secrets/.gitkeep +0 -0
  263. package/project/.sdk/tm/py/test/feature/__init__.py +0 -0
  264. package/project/.sdk/tm/py/test/feature/secrets/__init__.py +0 -0
  265. package/project/.sdk/tm/py/test/feature/secrets/test_secrets.py +337 -0
  266. package/project/.sdk/tm/py/test/omni.py +415 -0
  267. package/project/.sdk/tm/py/test/test_omni_smoke.py +74 -0
  268. package/project/.sdk/tm/py/test/test_primary_utility.py +144 -668
  269. package/project/.sdk/tm/py/test/test_struct_utility.py +74 -27
  270. package/project/.sdk/tm/py/test/voxgig_omni/__init__.py +62 -0
  271. package/project/.sdk/tm/py/test/voxgig_omni/runner.py +580 -0
  272. package/project/.sdk/tm/py/test/voxgig_omni/util.py +252 -0
  273. package/project/.sdk/tm/rb/test/omni.rb +505 -0
  274. package/project/.sdk/tm/rb/test/omni_smoke_test.rb +72 -0
  275. package/project/.sdk/tm/rb/test/primary_utility_test.rb +174 -560
  276. package/project/.sdk/tm/rb/test/struct_utility_test.rb +13 -7
  277. package/project/.sdk/tm/rb/test/vendor/omni/runner.rb +493 -0
  278. package/project/.sdk/tm/rb/test/vendor/omni/util.rb +199 -0
  279. package/project/.sdk/tm/rb/test/vendor/omni/voxgig_omni.rb +15 -0
  280. package/project/.sdk/tm/rb/utility/prepare_method.rb +5 -1
  281. package/project/.sdk/tm/rust/tests/common/mod.rs +19 -242
  282. package/project/.sdk/tm/rust/tests/omni_resolver/mod.rs +888 -0
  283. package/project/.sdk/tm/rust/tests/omni_smoke_test.rs +286 -0
  284. package/project/.sdk/tm/rust/tests/primary_utility_test.rs +318 -312
  285. package/project/.sdk/tm/rust/tests/struct_utility_test.rs +66 -28
  286. package/project/.sdk/tm/rust/tests/vendor/omni/json.rs +412 -0
  287. package/project/.sdk/tm/rust/tests/vendor/omni/mod.rs +38 -0
  288. package/project/.sdk/tm/rust/tests/vendor/omni/regex.rs +392 -0
  289. package/project/.sdk/tm/rust/tests/vendor/omni/runner.rs +1001 -0
  290. package/project/.sdk/tm/rust/tests/vendor/omni/util.rs +161 -0
  291. package/project/.sdk/tm/rust/utility/prepare_method.rs +5 -1
  292. package/project/.sdk/tm/scala/Makefile +16 -6
  293. package/project/.sdk/tm/scala/sdktest/OmniResolver.scala +497 -0
  294. package/project/.sdk/tm/scala/sdktest/OmniSmoke.scala +192 -0
  295. package/project/.sdk/tm/scala/sdktest/PrimaryCorpus.scala +47 -19
  296. package/project/.sdk/tm/scala/sdktest/StructCorpus.scala +0 -0
  297. package/project/.sdk/tm/scala/sdktest/vendor/omni/Json.scala +229 -0
  298. package/project/.sdk/tm/scala/sdktest/vendor/omni/Runner.scala +552 -0
  299. package/project/.sdk/tm/scala/sdktest/vendor/omni/Util.scala +104 -0
  300. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/Struct/Constants.swift +10 -0
  301. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/Struct/Inject.swift +28 -5
  302. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/Struct/Injection.swift +5 -1
  303. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/Struct/Minor.swift +4 -1
  304. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/Struct/Validate.swift +15 -5
  305. package/project/.sdk/tm/swift/Sources/ProjectNameSDK/utility/Prepare.swift +6 -1
  306. package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/OmniResolver.swift +474 -0
  307. package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/OmniSmokeTest.swift +107 -0
  308. package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/PrimaryUtilityTest.swift +141 -178
  309. package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/Runner.swift +17 -113
  310. package/project/.sdk/tm/swift/Tests/ProjectNameSDKTests/StructUtilityTest.swift +295 -446
  311. package/project/.sdk/tm/swift/Tests/vendor/omni/Json.swift +364 -0
  312. package/project/.sdk/tm/swift/Tests/vendor/omni/Runner.swift +730 -0
  313. package/project/.sdk/tm/swift/Tests/vendor/omni/Util.swift +162 -0
  314. package/project/.sdk/tm/ts/src/feature/secrets/SecretsFeature.ts +7 -0
  315. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Capability.ts +148 -0
  316. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Catalog.ts +55 -0
  317. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Config.ts +344 -0
  318. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Depend.ts +205 -0
  319. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Env.ts +138 -0
  320. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Export.ts +46 -0
  321. package/project/.sdk/tm/ts/src/feature/secrets/plugin/FeatureHost.ts +349 -0
  322. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Graph.ts +181 -0
  323. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Host.ts +1132 -0
  324. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Order.ts +177 -0
  325. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Point.ts +119 -0
  326. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Ref.ts +102 -0
  327. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Resolve.ts +61 -0
  328. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Types.ts +112 -0
  329. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Version.ts +100 -0
  330. package/project/.sdk/tm/ts/src/feature/secrets/plugin/index.ts +37 -0
  331. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/Sekreto.ts +163 -30
  332. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/index.ts +27 -22
  333. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{provider → plugins}/aws.ts +26 -36
  334. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{provider → plugins}/azuresecrets.ts +19 -21
  335. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{provider → plugins}/boru.ts +36 -17
  336. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{provider → plugins}/doppler.ts +14 -21
  337. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{provider → plugins}/gcpsecrets.ts +27 -27
  338. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{provider → plugins}/hashicorp.ts +25 -39
  339. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/httpjson.ts +99 -0
  340. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{provider → plugins}/infisical.ts +14 -16
  341. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{provider → plugins}/onepassword.ts +15 -22
  342. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/secretspec.ts +98 -0
  343. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/{Sigv4.ts → plugins/sigv4.ts} +7 -6
  344. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/addr.ts +97 -23
  345. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/builtin.ts +37 -0
  346. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/dotenv.ts +4 -17
  347. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/env.ts +4 -16
  348. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/file.ts +11 -25
  349. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/memory.ts +6 -23
  350. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/support.ts +106 -39
  351. package/project/.sdk/tm/ts/src/utility/StructUtility.ts +3 -3
  352. package/project/.sdk/tm/ts/test/omni.ts +104 -32
  353. package/project/.sdk/tm/ts/test/utility/StructUtility.test.ts +27 -0
  354. package/project/.sdk/tm/ts/test/vendor/omni/Runner.ts +32 -5
  355. package/project/.sdk/tm/ts/test/vendor/omni/Util.ts +2 -2
  356. package/project/.sdk/tm/ts/test/vendor/omni/index.ts +2 -2
  357. package/project/.sdk/tm/zig/Makefile +15 -1
  358. package/project/.sdk/tm/zig/build.zig +23 -5
  359. package/project/.sdk/tm/zig/core/helpers.zig +52 -11
  360. package/project/.sdk/tm/zig/core/mem.zig +17 -1
  361. package/project/.sdk/tm/zig/core/utility.zig +23 -19
  362. package/project/.sdk/tm/zig/feature/audit.zig +2 -2
  363. package/project/.sdk/tm/zig/feature/cache.zig +2 -2
  364. package/project/.sdk/tm/zig/feature/debug.zig +5 -5
  365. package/project/.sdk/tm/zig/feature/netsim.zig +2 -2
  366. package/project/.sdk/tm/zig/feature/paging.zig +2 -2
  367. package/project/.sdk/tm/zig/feature/proxy.zig +15 -8
  368. package/project/.sdk/tm/zig/feature/streaming.zig +5 -5
  369. package/project/.sdk/tm/zig/feature/support.zig +3 -3
  370. package/project/.sdk/tm/zig/feature/telemetry.zig +5 -5
  371. package/project/.sdk/tm/zig/feature/test.zig +10 -5
  372. package/project/.sdk/tm/zig/test/fh.zig +10 -10
  373. package/project/.sdk/tm/zig/test/gotcha_test.zig +5 -5
  374. package/project/.sdk/tm/zig/test/omniresolver.zig +515 -0
  375. package/project/.sdk/tm/zig/test/omnismoke_test.zig +284 -0
  376. package/project/.sdk/tm/zig/test/pipeline_test.zig +8 -8
  377. package/project/.sdk/tm/zig/test/primary_utility_test.zig +145 -155
  378. package/project/.sdk/tm/zig/test/struct_corpus.zig +264 -187
  379. package/project/.sdk/tm/zig/test/vendor/omni/omni.zig +1314 -0
  380. package/project/.sdk/tm/zig/test/vendor/omni/regex.zig +446 -0
  381. package/project/.sdk/tm/zig/utility/voxgigstruct/regex.zig +7 -4
  382. package/project/.sdk/tm/zig/utility/voxgigstruct/struct.zig +356 -157
  383. package/project/sdkgen-package.json +1 -1
  384. package/src/action/doctor.ts +66 -2
  385. package/src/helpers/naming.ts +4 -2
  386. package/project/.sdk/tm/c/tests/runner.h +0 -274
  387. package/project/.sdk/tm/cpp/test/struct_runner.hpp +0 -314
  388. package/project/.sdk/tm/csharp/test/StructRunner.cs +0 -276
  389. package/project/.sdk/tm/dart/test/runner.dart +0 -406
  390. package/project/.sdk/tm/dart/test/struct_corpus.dart +0 -531
  391. package/project/.sdk/tm/elixir/test/support/struct_corpus.ex +0 -1088
  392. package/project/.sdk/tm/go/test/runner_test.go +0 -629
  393. package/project/.sdk/tm/go/test/struct_runner_test.go +0 -1094
  394. package/project/.sdk/tm/java/test/StructRunner.java +0 -281
  395. package/project/.sdk/tm/js/test/runner.js +0 -387
  396. package/project/.sdk/tm/kotlin/test/StructRunner.kt +0 -177
  397. package/project/.sdk/tm/lua/test/struct_runner.lua +0 -602
  398. package/project/.sdk/tm/ocaml/test/corpus_runner.ml +0 -185
  399. package/project/.sdk/tm/perl/t/struct_runner.pm +0 -275
  400. package/project/.sdk/tm/php/test/StructRunner.php +0 -275
  401. package/project/.sdk/tm/py/test/struct_runner.py +0 -411
  402. package/project/.sdk/tm/rb/test/struct_runner.rb +0 -309
  403. package/project/.sdk/tm/rust/tests/struct_runner/mod.rs +0 -424
  404. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/Registry.ts +0 -90
  405. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/http.ts +0 -66
  406. package/project/.sdk/tm/ts/test/vendor/omni/compat.ts +0 -188
  407. package/project/.sdk/tm/zig/test/struct_runner.zig +0 -464
@@ -93,12 +93,12 @@ const FetchRec = struct {
93
93
  calls: std.ArrayList(Value),
94
94
  fn call(p: *anyopaque, _: std.mem.Allocator, arg: Value) anyerror!Value {
95
95
  const self: *FetchRec = @ptrCast(@alignCast(p));
96
- self.calls.append(arg) catch {};
96
+ self.calls.append(h.A(), arg) catch {};
97
97
  return h.jo(&.{ .{ "status", h.vnum(200) }, .{ "statusText", h.vstr("OK") } });
98
98
  }
99
99
  fn new() *FetchRec {
100
100
  const s = h.A().create(FetchRec) catch unreachable;
101
- s.* = .{ .calls = std.ArrayList(Value).init(h.A()) };
101
+ s.* = .{ .calls = .empty };
102
102
  return s;
103
103
  }
104
104
  fn fn_val(self: *FetchRec) Value {
@@ -283,7 +283,7 @@ test "primary feature_hook basic" {
283
283
  var hooked = false;
284
284
  var inited = false;
285
285
  client.features.clearRetainingCapacity();
286
- client.features.append(ProbeFeature.make("probe", true, &hooked, &inited)) catch unreachable;
286
+ client.features.append(h.A(), ProbeFeature.make("probe", true, &hooked, &inited)) catch unreachable;
287
287
 
288
288
  utility.feature_hook(ctx, "TestHook");
289
289
  try testing.expect(hooked);
@@ -353,10 +353,18 @@ test "primary new sdk smoke" {
353
353
  // cannot drift from the reference implementation. That is what moves zig from
354
354
  // the MIRRORED parity tier to FULL: a mirrored suite cannot notice a corpus
355
355
  // case that changed, or one that was added.
356
+ //
357
+ // The ENGINE is vendored @voxgig/omni, driven through test/omniresolver.zig
358
+ // (its header carries the adapter decisions). A subject here receives omni's
359
+ // own argument list - the contextified `ctx`, the entry's `args`, or its `in`
360
+ // - builds the typed SDK context at the call site, and publishes the
361
+ // observable ctx state back through `po` so a `match: {ctx: ...}` assertion
362
+ // has something to read.
356
363
  // ---------------------------------------------------------------------------
357
364
 
358
- const runner = @import("struct_runner.zig");
359
- const vs = @import("../utility/voxgigstruct/struct.zig");
365
+ const omni = @import("omni");
366
+ const omnirun = @import("omniresolver.zig");
367
+ const vs = @import("voxgig-struct");
360
368
 
361
369
  const StdJson = std.json.Value;
362
370
 
@@ -453,70 +461,63 @@ fn corpusCtxOpts(alloc: std.mem.Allocator, ctxstd: StdJson, sdkopts: sdk.Value)
453
461
 
454
462
  /// Publish a neutral-named view of the mutated ctx, for `match: ctx.*`.
455
463
  fn publishCtx(alloc: std.mem.Allocator, ctx: *sdk.Context) !StdJson {
456
- var out = std.json.ObjectMap.init(alloc);
457
- if (ctx.spec) |sp| try out.put("spec", try vs.toStdJson(alloc, sp.to_value()));
458
- if (ctx.result) |rt| try out.put("result", try vs.toStdJson(alloc, rt.to_value()));
464
+ var out: std.json.ObjectMap = .empty;
465
+ if (ctx.spec) |sp| try out.put(alloc, "spec", try vs.toStdJson(alloc, sp.to_value()));
466
+ if (ctx.result) |rt| try out.put(alloc, "result", try vs.toStdJson(alloc, rt.to_value()));
459
467
  if (ctx.response) |rs| {
460
468
  // makeRequest asserts `ctx.response: __EXISTS__`, so the response has
461
469
  // to appear here at all; publish a neutral view of it while we are at
462
470
  // it, since the corpus is camelCase and this port stores status_text.
463
- var r = std.json.ObjectMap.init(alloc);
464
- try r.put("status", StdJson{ .integer = @intCast(rs.status) });
465
- try r.put("statusText", StdJson{ .string = rs.status_text });
466
- try r.put("headers", try vs.toStdJson(alloc, rs.headers));
467
- try r.put("body", try vs.toStdJson(alloc, rs.body));
468
- try out.put("response", StdJson{ .object = r });
471
+ var r: std.json.ObjectMap = .empty;
472
+ try r.put(alloc, "status", StdJson{ .integer = @intCast(rs.status) });
473
+ try r.put(alloc, "statusText", StdJson{ .string = rs.status_text });
474
+ try r.put(alloc, "headers", try vs.toStdJson(alloc, rs.headers));
475
+ try r.put(alloc, "body", try vs.toStdJson(alloc, rs.body));
476
+ try out.put(alloc, "response", StdJson{ .object = r });
469
477
  }
470
478
  return StdJson{ .object = out };
471
479
  }
472
480
 
473
- /// A section's `basic` set. The corpus nests one level {"basic": {"set": []}}
474
- /// and passing the section node itself found no `set`, so every case was
475
- /// skipped and the suite passed having run nothing.
476
- fn section(spec: runner.Spec, name: []const u8) !StdJson {
477
- const sec = spec.get(name) orelse return error.NoSection;
478
- if (sec != .object) return error.NoSection;
479
- return sec.object.get("basic") orelse error.NoSection;
480
- }
481
-
482
- /// A section's DEF.setup.a block, as SDK options.
483
- fn setupOpts(a_unused: std.mem.Allocator, spec: runner.Spec, name: []const u8) !sdk.Value {
481
+ /// A section's DEF.setup.a block, as SDK options. Read straight off the
482
+ /// loaded spec, BEFORE omni's null normalisation a DEF block is
483
+ /// configuration, not a test entry.
484
+ fn setupOpts(r: *const omnirun.Runner, name: []const u8) !sdk.Value {
484
485
  // The SDK's own arena, not the testing allocator: these values outlive the
485
486
  // call and are owned by the SDK for the run, so allocating them from the
486
487
  // test allocator reports a leak at teardown.
487
- _ = a_unused;
488
488
  const a = h.A();
489
- const sec = spec.get(name) orelse return sdk.Value{ .null = {} };
490
- if (sec != .object) return sdk.Value{ .null = {} };
491
- const def = sec.object.get("DEF") orelse return sdk.Value{ .null = {} };
492
- if (def != .object) return sdk.Value{ .null = {} };
493
- const setup = def.object.get("setup") orelse return sdk.Value{ .null = {} };
494
- if (setup != .object) return sdk.Value{ .null = {} };
495
- const aa = setup.object.get("a") orelse return sdk.Value{ .null = {} };
489
+ const setup = omni.jget(omni.jget(omni.jget(r.spec(), name), "DEF"), "setup");
490
+ const aa = omni.jget(setup, "a") orelse return sdk.Value{ .null = {} };
496
491
  return try vs.fromStdJson(a, aa);
497
492
  }
498
493
 
494
+ /// One positional argument of the entry, as omni resolved it: the
495
+ /// contextified `ctx`, an element of `args`, or `in`. Absent reads as null,
496
+ /// which is what every one of these subjects did with a missing field.
497
+ fn entryarg(args: []const StdJson, index: usize) StdJson {
498
+ if (index < args.len) return args[index];
499
+ return StdJson{ .null = {} };
500
+ }
501
+
499
502
  var setup_spec: sdk.Value = .{ .null = {} };
500
503
  var setup_auth: sdk.Value = .{ .null = {} };
501
504
 
502
- fn entryCtx(entry: StdJson) StdJson {
503
- if (entry == .object) {
504
- if (entry.object.get("ctx")) |c| return c;
505
- }
506
- return StdJson{ .null = {} };
507
- }
505
+ // The shared primary corpus is the same fixture set in every SDK, so these
506
+ // are real numbers rather than token ones. A legitimate drop below them is a
507
+ // corpus change worth reading.
508
+ const CASES_FLOOR = 60;
509
+ const SECTIONS_FLOOR = 20;
508
510
 
509
511
  test "primary corpus: the shared cases drive this SDK's utilities" {
510
- const alloc = testing.allocator;
511
- var pack = try runner.makeRunnerFor(alloc, "primary");
512
- defer pack.deinit();
512
+ var run = try omnirun.makeRunner(testing.allocator, "primary");
513
+ defer run.deinit();
513
514
 
514
- setup_spec = try setupOpts(alloc, pack.spec, "makeSpec");
515
- setup_auth = try setupOpts(alloc, pack.spec, "prepareAuth");
515
+ setup_spec = try setupOpts(&run, "makeSpec");
516
+ setup_auth = try setupOpts(&run, "prepareAuth");
516
517
 
517
518
  const S = struct {
518
- fn ctxOf(a: std.mem.Allocator, entry: StdJson) anyerror!*sdk.Context {
519
- return corpusCtx(a, entryCtx(entry));
519
+ fn ctxOf(a: std.mem.Allocator, args: []const StdJson) anyerror!*sdk.Context {
520
+ return corpusCtx(a, entryarg(args, 0));
520
521
  }
521
522
 
522
523
  /// Record the SDK's own message before letting the error propagate.
@@ -525,62 +526,35 @@ test "primary corpus: the shared cases drive this SDK's utilities" {
525
526
  return e;
526
527
  }
527
528
 
528
- fn argAt(a: std.mem.Allocator, entry: StdJson, i: usize) anyerror!sdk.Value {
529
- if (entry == .object) {
530
- if (entry.object.get("args")) |args| {
531
- if (args == .array and i < args.array.items.len) {
532
- return try vs.fromStdJson(a, args.array.items[i]);
533
- }
534
- }
535
- }
536
- return sdk.Value{ .null = {} };
537
- }
538
-
539
- fn argStd(entry: StdJson, i: usize) StdJson {
540
- if (entry == .object) {
541
- if (entry.object.get("args")) |args| {
542
- if (args == .array and i < args.array.items.len) return args.array.items[i];
543
- }
544
- }
545
- return StdJson{ .null = {} };
546
- }
547
-
548
- fn inOf(entry: StdJson) StdJson {
549
- if (entry == .object) {
550
- if (entry.object.get("in")) |v| return v;
551
- }
552
- return StdJson{ .null = {} };
553
- }
554
-
555
- fn done(a: std.mem.Allocator, e: StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
556
- const ctx = try ctxOf(a, e);
529
+ fn done(a: std.mem.Allocator, args: []const StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
530
+ const ctx = try ctxOf(a, args);
557
531
  const v = util.done_util(ctx) catch |er| return sdkfail(ctx, em, er);
558
532
  po.* = try publishCtx(a, ctx);
559
533
  return try vs.toStdJson(a, v);
560
534
  }
561
535
 
562
- fn makeContext(a: std.mem.Allocator, e: StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
536
+ fn makeContext(a: std.mem.Allocator, args: []const StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
563
537
  _ = em;
564
- const ctx = try corpusCtx(a, inOf(e));
538
+ const ctx = try corpusCtx(a, entryarg(args, 0));
565
539
  po.* = try publishCtx(a, ctx);
566
- var out = std.json.ObjectMap.init(a);
567
- var op = std.json.ObjectMap.init(a);
568
- try op.put("entity", StdJson{ .string = ctx.op.entity });
569
- try op.put("name", StdJson{ .string = ctx.op.name });
570
- try op.put("input", StdJson{ .string = ctx.op.input });
571
- try op.put("points", try vs.toStdJson(a, ctx.op.points));
572
- try out.put("op", StdJson{ .object = op });
540
+ var out: std.json.ObjectMap = .empty;
541
+ var op: std.json.ObjectMap = .empty;
542
+ try op.put(a, "entity", StdJson{ .string = ctx.op.entity });
543
+ try op.put(a, "name", StdJson{ .string = ctx.op.name });
544
+ try op.put(a, "input", StdJson{ .string = ctx.op.input });
545
+ try op.put(a, "points", try vs.toStdJson(a, ctx.op.points));
546
+ try out.put(a, "op", StdJson{ .object = op });
573
547
  return StdJson{ .object = out };
574
548
  }
575
549
 
576
- fn makeError(a: std.mem.Allocator, e: StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
577
- const ctx = try corpusCtx(a, argStd(e, 0));
550
+ fn makeError(a: std.mem.Allocator, args: []const StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
551
+ const ctx = try corpusCtx(a, entryarg(args, 0));
578
552
 
579
553
  // make_error_util takes no error argument — it reads one off the
580
554
  // ctx (pending_err, else result.err). The corpus passes it as
581
555
  // args[1], so put it where the utility will find it, or every case
582
556
  // reports "unknown error".
583
- const errarg = argStd(e, 1);
557
+ const errarg = entryarg(args, 1);
584
558
  if (errarg == .object) {
585
559
  if (errarg.object.get("message")) |m| {
586
560
  if (m == .string and 0 < m.string.len) {
@@ -599,11 +573,11 @@ test "primary corpus: the shared cases drive this SDK's utilities" {
599
573
  return try vs.toStdJson(a, v);
600
574
  }
601
575
 
602
- fn makeOptions(a: std.mem.Allocator, e: StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
576
+ fn makeOptions(a: std.mem.Allocator, args: []const StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
603
577
  _ = em;
604
578
  // `in` is {config, options}, not a ctx — the utility reads them off
605
579
  // the context, so split them out rather than passing the wrapper.
606
- const inv = inOf(e);
580
+ const inv = entryarg(args, 0);
607
581
  const ctx = try corpusCtx(a, StdJson{ .null = {} });
608
582
  if (inv == .object) {
609
583
  if (inv.object.get("config")) |c| ctx.config = try vs.fromStdJson(a, c);
@@ -614,149 +588,149 @@ test "primary corpus: the shared cases drive this SDK's utilities" {
614
588
  return try vs.toStdJson(a, v);
615
589
  }
616
590
 
617
- fn makeRequest(a: std.mem.Allocator, e: StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
618
- const ctx = try ctxOf(a, e);
591
+ fn makeRequest(a: std.mem.Allocator, args: []const StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
592
+ const ctx = try ctxOf(a, args);
619
593
  _ = util.make_request_util(ctx) catch |er| return sdkfail(ctx, em, er);
620
594
  po.* = try publishCtx(a, ctx);
621
595
  return StdJson{ .null = {} };
622
596
  }
623
597
 
624
- fn makeResponse(a: std.mem.Allocator, e: StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
625
- const ctx = try ctxOf(a, e);
598
+ fn makeResponse(a: std.mem.Allocator, args: []const StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
599
+ const ctx = try ctxOf(a, args);
626
600
  _ = util.make_response_util(ctx) catch |er| return sdkfail(ctx, em, er);
627
601
  po.* = try publishCtx(a, ctx);
628
602
  return StdJson{ .null = {} };
629
603
  }
630
604
 
631
- fn makeSpec(a: std.mem.Allocator, e: StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
632
- const ctx = try corpusCtxOpts(a, entryCtx(e), setup_spec);
605
+ fn makeSpec(a: std.mem.Allocator, args: []const StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
606
+ const ctx = try corpusCtxOpts(a, entryarg(args, 0), setup_spec);
633
607
  const sp = util.make_spec_util(ctx) catch |er| return sdkfail(ctx, em, er);
634
608
  po.* = try publishCtx(a, ctx);
635
609
  return try vs.toStdJson(a, sp.to_value());
636
610
  }
637
611
 
638
- fn url(a: std.mem.Allocator, e: StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
639
- const ctx = try ctxOf(a, e);
612
+ fn url(a: std.mem.Allocator, args: []const StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
613
+ const ctx = try ctxOf(a, args);
640
614
  const u = util.make_url_util(ctx) catch |er| return sdkfail(ctx, em, er);
641
615
  po.* = try publishCtx(a, ctx);
642
616
  return StdJson{ .string = u };
643
617
  }
644
618
 
645
- fn operator(a: std.mem.Allocator, e: StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
619
+ fn operator(a: std.mem.Allocator, args: []const StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
646
620
  _ = po;
647
621
  _ = em;
648
- const op = sdk.Operation.make(try vs.fromStdJson(a, inOf(e)));
649
- var out = std.json.ObjectMap.init(a);
650
- try out.put("entity", StdJson{ .string = op.entity });
651
- try out.put("input", StdJson{ .string = op.input });
652
- try out.put("name", StdJson{ .string = op.name });
653
- try out.put("points", try vs.toStdJson(a, op.points));
622
+ const op = sdk.Operation.make(try vs.fromStdJson(a, entryarg(args, 0)));
623
+ var out: std.json.ObjectMap = .empty;
624
+ try out.put(a, "entity", StdJson{ .string = op.entity });
625
+ try out.put(a, "input", StdJson{ .string = op.input });
626
+ try out.put(a, "name", StdJson{ .string = op.name });
627
+ try out.put(a, "points", try vs.toStdJson(a, op.points));
654
628
  return StdJson{ .object = out };
655
629
  }
656
630
 
657
- fn param(a: std.mem.Allocator, e: StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
631
+ fn param(a: std.mem.Allocator, args: []const StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
658
632
  _ = em;
659
- const ctx = try corpusCtx(a, argStd(e, 0));
660
- const pd = try argAt(a, e, 1);
633
+ const ctx = try corpusCtx(a, entryarg(args, 0));
634
+ const pd = try vs.fromStdJson(a, entryarg(args, 1));
661
635
  const v = util.param_util(ctx, pd);
662
636
  po.* = try publishCtx(a, ctx);
663
637
  return try vs.toStdJson(a, v);
664
638
  }
665
639
 
666
- fn auth(a: std.mem.Allocator, e: StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
667
- const ctx = try corpusCtxOpts(a, entryCtx(e), setup_auth);
640
+ fn auth(a: std.mem.Allocator, args: []const StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
641
+ const ctx = try corpusCtxOpts(a, entryarg(args, 0), setup_auth);
668
642
  _ = util.prepare_auth_util(ctx) catch |er| return sdkfail(ctx, em, er);
669
643
  po.* = try publishCtx(a, ctx);
670
644
  return StdJson{ .null = {} };
671
645
  }
672
646
 
673
- fn body(a: std.mem.Allocator, e: StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
647
+ fn body(a: std.mem.Allocator, args: []const StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
674
648
  _ = em;
675
- const ctx = try ctxOf(a, e);
649
+ const ctx = try ctxOf(a, args);
676
650
  const v = util.prepare_body_util(ctx);
677
651
  po.* = try publishCtx(a, ctx);
678
652
  return try vs.toStdJson(a, v);
679
653
  }
680
654
 
681
- fn headers(a: std.mem.Allocator, e: StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
655
+ fn headers(a: std.mem.Allocator, args: []const StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
682
656
  _ = em;
683
- const ctx = try ctxOf(a, e);
657
+ const ctx = try ctxOf(a, args);
684
658
  const v = util.prepare_headers_util(ctx);
685
659
  po.* = try publishCtx(a, ctx);
686
660
  return try vs.toStdJson(a, v);
687
661
  }
688
662
 
689
- fn method(a: std.mem.Allocator, e: StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
663
+ fn method(a: std.mem.Allocator, args: []const StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
690
664
  _ = em;
691
- const ctx = try ctxOf(a, e);
665
+ const ctx = try ctxOf(a, args);
692
666
  const m = util.prepare_method_util(ctx);
693
667
  po.* = try publishCtx(a, ctx);
694
668
  if (m.len == 0) return StdJson{ .null = {} };
695
669
  return StdJson{ .string = m };
696
670
  }
697
671
 
698
- fn params(a: std.mem.Allocator, e: StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
672
+ fn params(a: std.mem.Allocator, args: []const StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
699
673
  _ = em;
700
- const ctx = try ctxOf(a, e);
674
+ const ctx = try ctxOf(a, args);
701
675
  const v = util.prepare_params_util(ctx);
702
676
  po.* = try publishCtx(a, ctx);
703
677
  return try vs.toStdJson(a, v);
704
678
  }
705
679
 
706
- fn path(a: std.mem.Allocator, e: StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
680
+ fn path(a: std.mem.Allocator, args: []const StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
707
681
  _ = em;
708
- const ctx = try ctxOf(a, e);
682
+ const ctx = try ctxOf(a, args);
709
683
  const v = util.prepare_path_util(ctx);
710
684
  po.* = try publishCtx(a, ctx);
711
685
  return StdJson{ .string = v };
712
686
  }
713
687
 
714
- fn query(a: std.mem.Allocator, e: StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
688
+ fn query(a: std.mem.Allocator, args: []const StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
715
689
  _ = em;
716
- const ctx = try ctxOf(a, e);
690
+ const ctx = try ctxOf(a, args);
717
691
  const v = util.prepare_query_util(ctx);
718
692
  po.* = try publishCtx(a, ctx);
719
693
  return try vs.toStdJson(a, v);
720
694
  }
721
695
 
722
- fn rbasic(a: std.mem.Allocator, e: StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
696
+ fn rbasic(a: std.mem.Allocator, args: []const StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
723
697
  _ = em;
724
- const ctx = try ctxOf(a, e);
698
+ const ctx = try ctxOf(a, args);
725
699
  const r = util.result_basic_util(ctx);
726
700
  po.* = try publishCtx(a, ctx);
727
701
  if (r) |rr| return try vs.toStdJson(a, rr.to_value());
728
702
  return StdJson{ .null = {} };
729
703
  }
730
704
 
731
- fn rbody(a: std.mem.Allocator, e: StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
705
+ fn rbody(a: std.mem.Allocator, args: []const StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
732
706
  _ = em;
733
- const ctx = try ctxOf(a, e);
707
+ const ctx = try ctxOf(a, args);
734
708
  const r = util.result_body_util(ctx);
735
709
  po.* = try publishCtx(a, ctx);
736
710
  if (r) |rr| return try vs.toStdJson(a, rr.to_value());
737
711
  return StdJson{ .null = {} };
738
712
  }
739
713
 
740
- fn rheaders(a: std.mem.Allocator, e: StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
714
+ fn rheaders(a: std.mem.Allocator, args: []const StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
741
715
  _ = em;
742
- const ctx = try ctxOf(a, e);
716
+ const ctx = try ctxOf(a, args);
743
717
  const r = util.result_headers_util(ctx);
744
718
  po.* = try publishCtx(a, ctx);
745
719
  if (r) |rr| return try vs.toStdJson(a, rr.to_value());
746
720
  return StdJson{ .null = {} };
747
721
  }
748
722
 
749
- fn treq(a: std.mem.Allocator, e: StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
723
+ fn treq(a: std.mem.Allocator, args: []const StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
750
724
  _ = em;
751
- const ctx = try ctxOf(a, e);
725
+ const ctx = try ctxOf(a, args);
752
726
  const v = util.transform_request_util(ctx);
753
727
  po.* = try publishCtx(a, ctx);
754
728
  return try vs.toStdJson(a, v);
755
729
  }
756
730
 
757
- fn tres(a: std.mem.Allocator, e: StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
731
+ fn tres(a: std.mem.Allocator, args: []const StdJson, po: *?StdJson, em: *?[]const u8) anyerror!StdJson {
758
732
  _ = em;
759
- const ctx = try ctxOf(a, e);
733
+ const ctx = try ctxOf(a, args);
760
734
  const v = util.transform_response_util(ctx);
761
735
  po.* = try publishCtx(a, ctx);
762
736
  return try vs.toStdJson(a, v);
@@ -764,28 +738,44 @@ test "primary corpus: the shared cases drive this SDK's utilities" {
764
738
  };
765
739
 
766
740
  // Every section the corpus carries, looked up in `primary` and driven.
767
- try pack.runsetEntry(try section(pack.spec, "done"), S.done);
768
- try pack.runsetEntry(try section(pack.spec, "makeContext"), S.makeContext);
769
- try pack.runsetEntry(try section(pack.spec, "makeError"), S.makeError);
770
- try pack.runsetEntry(try section(pack.spec, "makeOptions"), S.makeOptions);
771
- try pack.runsetEntry(try section(pack.spec, "makeRequest"), S.makeRequest);
772
- try pack.runsetEntry(try section(pack.spec, "makeResponse"), S.makeResponse);
773
- try pack.runsetEntry(try section(pack.spec, "makeSpec"), S.makeSpec);
774
- try pack.runsetEntry(try section(pack.spec, "makeUrl"), S.url);
775
- try pack.runsetEntry(try section(pack.spec, "operator"), S.operator);
776
- try pack.runsetEntry(try section(pack.spec, "param"), S.param);
777
- try pack.runsetEntry(try section(pack.spec, "prepareAuth"), S.auth);
778
- try pack.runsetEntry(try section(pack.spec, "prepareBody"), S.body);
779
- try pack.runsetEntry(try section(pack.spec, "prepareHeaders"), S.headers);
780
- try pack.runsetEntry(try section(pack.spec, "prepareMethod"), S.method);
781
- try pack.runsetEntry(try section(pack.spec, "prepareParams"), S.params);
782
- try pack.runsetEntry(try section(pack.spec, "preparePath"), S.path);
783
- try pack.runsetEntry(try section(pack.spec, "prepareQuery"), S.query);
784
- try pack.runsetEntry(try section(pack.spec, "resultBasic"), S.rbasic);
785
- try pack.runsetEntry(try section(pack.spec, "resultBody"), S.rbody);
786
- try pack.runsetEntry(try section(pack.spec, "resultHeaders"), S.rheaders);
787
- try pack.runsetEntry(try section(pack.spec, "transformRequest"), S.treq);
788
- try pack.runsetEntry(try section(pack.spec, "transformResponse"), S.tres);
789
-
790
- try testing.expect(0 < pack.ran);
741
+ try run.runsetctx(run.group("done", "basic"), .{ .name = "done" }, S.done);
742
+ try run.runsetctx(run.group("makeContext", "basic"), .{ .name = "makeContext" }, S.makeContext);
743
+ try run.runsetctx(run.group("makeError", "basic"), .{ .name = "makeError" }, S.makeError);
744
+ try run.runsetctx(run.group("makeOptions", "basic"), .{ .name = "makeOptions" }, S.makeOptions);
745
+ try run.runsetctx(run.group("makeRequest", "basic"), .{ .name = "makeRequest" }, S.makeRequest);
746
+ try run.runsetctx(run.group("makeResponse", "basic"), .{ .name = "makeResponse" }, S.makeResponse);
747
+ try run.runsetctx(run.group("makeSpec", "basic"), .{ .name = "makeSpec" }, S.makeSpec);
748
+ try run.runsetctx(run.group("makeUrl", "basic"), .{ .name = "makeUrl" }, S.url);
749
+ try run.runsetctx(run.group("operator", "basic"), .{ .name = "operator" }, S.operator);
750
+ try run.runsetctx(run.group("param", "basic"), .{ .name = "param" }, S.param);
751
+ try run.runsetctx(run.group("prepareAuth", "basic"), .{ .name = "prepareAuth" }, S.auth);
752
+ try run.runsetctx(run.group("prepareBody", "basic"), .{ .name = "prepareBody" }, S.body);
753
+ try run.runsetctx(run.group("prepareHeaders", "basic"), .{ .name = "prepareHeaders" }, S.headers);
754
+ try run.runsetctx(run.group("prepareMethod", "basic"), .{ .name = "prepareMethod" }, S.method);
755
+ try run.runsetctx(run.group("prepareParams", "basic"), .{ .name = "prepareParams" }, S.params);
756
+ try run.runsetctx(run.group("preparePath", "basic"), .{ .name = "preparePath" }, S.path);
757
+ try run.runsetctx(run.group("prepareQuery", "basic"), .{ .name = "prepareQuery" }, S.query);
758
+ try run.runsetctx(run.group("resultBasic", "basic"), .{ .name = "resultBasic" }, S.rbasic);
759
+ try run.runsetctx(run.group("resultBody", "basic"), .{ .name = "resultBody" }, S.rbody);
760
+ try run.runsetctx(run.group("resultHeaders", "basic"), .{ .name = "resultHeaders" }, S.rheaders);
761
+ try run.runsetctx(run.group("transformRequest", "basic"), .{ .name = "transformRequest" }, S.treq);
762
+ try run.runsetctx(run.group("transformResponse", "basic"), .{ .name = "transformResponse" }, S.tres);
763
+
764
+ // The count is the guard: every section above compared its SUBJECT
765
+ // INVOCATIONS against the entries its group declares (omniresolver
766
+ // decision 6), and the census holds the whole file to a floor. A
767
+ // primary section that stopped driving the SDK, or a driver list that
768
+ // lost a line, shows up here as a number rather than as silence.
769
+ std.debug.print(
770
+ "\n primary corpus: {d} cases across {d} sections\n",
771
+ .{ omnirun.CASES, omnirun.GROUPS },
772
+ );
773
+
774
+ if (omnirun.CASES < CASES_FLOOR or omnirun.GROUPS < SECTIONS_FLOOR) {
775
+ std.debug.print(
776
+ " EXPECTED at least {d} cases across {d} sections\n",
777
+ .{ CASES_FLOOR, SECTIONS_FLOOR },
778
+ );
779
+ return error.CorpusUnderRun;
780
+ }
791
781
  }