@voxgig/sdkgen 4.8.3 → 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 (201) hide show
  1. package/bin/voxgig-sdkgen +1 -1
  2. package/package.json +1 -1
  3. package/project/.sdk/model/target/zig.aon +9 -0
  4. package/project/.sdk/src/cmp/zig/Package_zig.ts +15 -11
  5. package/project/.sdk/src/cmp/zig/fragment/Entity.fragment.zig +3 -3
  6. package/project/.sdk/src/cmp/zig/fragment/EntityListOp.fragment.zig +3 -3
  7. package/project/.sdk/src/cmp/zig/fragment/Main.fragment.zig +3 -3
  8. package/project/.sdk/src/cmp/zig/utility_zig.ts +50 -1
  9. package/project/.sdk/tm/c/tests/vendor/omni/json.c +2 -2
  10. package/project/.sdk/tm/c/tests/vendor/omni/omni.h +2 -2
  11. package/project/.sdk/tm/c/tests/vendor/omni/runner.c +2 -2
  12. package/project/.sdk/tm/c/tests/vendor/omni/util.c +2 -2
  13. package/project/.sdk/tm/clojure/test/vendor/omni/voxgig/omni/json.clj +2 -2
  14. package/project/.sdk/tm/clojure/test/vendor/omni/voxgig/omni/runner.clj +2 -2
  15. package/project/.sdk/tm/clojure/test/vendor/omni/voxgig/omni/util.clj +2 -2
  16. package/project/.sdk/tm/cpp/test/vendor/omni/json.hpp +2 -2
  17. package/project/.sdk/tm/cpp/test/vendor/omni/omni.hpp +2 -2
  18. package/project/.sdk/tm/cpp/test/vendor/omni/util.hpp +2 -2
  19. package/project/.sdk/tm/csharp/test/vendor/omni/Runner.cs +2 -2
  20. package/project/.sdk/tm/csharp/test/vendor/omni/Util.cs +2 -2
  21. package/project/.sdk/tm/csharp/utility/struct/Struct.cs +1 -1
  22. package/project/.sdk/tm/dart/test/vendor/omni/omni.dart +2 -2
  23. package/project/.sdk/tm/dart/test/vendor/omni/runner.dart +2 -2
  24. package/project/.sdk/tm/dart/test/vendor/omni/util.dart +2 -2
  25. package/project/.sdk/tm/elixir/test/vendor/omni/json.ex +2 -2
  26. package/project/.sdk/tm/elixir/test/vendor/omni/runner.ex +2 -2
  27. package/project/.sdk/tm/elixir/test/vendor/omni/util.ex +2 -2
  28. package/project/.sdk/tm/go/feature/secrets/plugin/capability.go +1 -1
  29. package/project/.sdk/tm/go/feature/secrets/plugin/catalog.go +1 -1
  30. package/project/.sdk/tm/go/feature/secrets/plugin/config.go +1 -1
  31. package/project/.sdk/tm/go/feature/secrets/plugin/depend.go +1 -1
  32. package/project/.sdk/tm/go/feature/secrets/plugin/env.go +1 -1
  33. package/project/.sdk/tm/go/feature/secrets/plugin/export.go +1 -1
  34. package/project/.sdk/tm/go/feature/secrets/plugin/graph.go +1 -1
  35. package/project/.sdk/tm/go/feature/secrets/plugin/host.go +1 -1
  36. package/project/.sdk/tm/go/feature/secrets/plugin/order.go +1 -1
  37. package/project/.sdk/tm/go/feature/secrets/plugin/point.go +1 -1
  38. package/project/.sdk/tm/go/feature/secrets/plugin/ref.go +1 -1
  39. package/project/.sdk/tm/go/feature/secrets/plugin/resolve.go +1 -1
  40. package/project/.sdk/tm/go/feature/secrets/plugin/types.go +1 -1
  41. package/project/.sdk/tm/go/feature/secrets/plugin/util.go +1 -1
  42. package/project/.sdk/tm/go/feature/secrets/plugin/version.go +1 -1
  43. package/project/.sdk/tm/go/feature/secrets/plugins/aws/aws.go +4 -4
  44. package/project/.sdk/tm/go/feature/secrets/plugins/aws/sigv4.go +2 -2
  45. package/project/.sdk/tm/go/feature/secrets/plugins/azuresecrets/azuresecrets.go +2 -2
  46. package/project/.sdk/tm/go/feature/secrets/plugins/boru/boru.go +2 -2
  47. package/project/.sdk/tm/go/feature/secrets/plugins/doppler/doppler.go +2 -2
  48. package/project/.sdk/tm/go/feature/secrets/plugins/gcpsecrets/gcpsecrets.go +2 -2
  49. package/project/.sdk/tm/go/feature/secrets/plugins/hashicorp/hashicorp.go +4 -5
  50. package/project/.sdk/tm/go/feature/secrets/plugins/httpjson/httpjson.go +3 -3
  51. package/project/.sdk/tm/go/feature/secrets/plugins/infisical/infisical.go +3 -4
  52. package/project/.sdk/tm/go/feature/secrets/plugins/onepassword/onepassword.go +2 -2
  53. package/project/.sdk/tm/go/feature/secrets/plugins/secretspec/secretspec.go +2 -2
  54. package/project/.sdk/tm/go/feature/secrets/sekreto/addr.go +2 -2
  55. package/project/.sdk/tm/go/feature/secrets/sekreto/providers.go +5 -2
  56. package/project/.sdk/tm/go/feature/secrets/sekreto/sekreto.go +31 -2
  57. package/project/.sdk/tm/go/test/omni/omni.go +8 -3
  58. package/project/.sdk/tm/go/test/omni/util.go +25 -4
  59. package/project/.sdk/tm/go/utility/struct/voxgigstruct.go +1 -1
  60. package/project/.sdk/tm/java/test/vendor/omni/Json.java +2 -2
  61. package/project/.sdk/tm/java/test/vendor/omni/Runner.java +2 -2
  62. package/project/.sdk/tm/java/test/vendor/omni/Util.java +2 -2
  63. package/project/.sdk/tm/java/utility/struct/Struct.java +1 -1
  64. package/project/.sdk/tm/js/src/utility/StructUtility.js +2 -2
  65. package/project/.sdk/tm/js/test/vendor/omni/index.js +1 -1
  66. package/project/.sdk/tm/js/test/vendor/omni/runner.js +18 -3
  67. package/project/.sdk/tm/js/test/vendor/omni/util.js +25 -8
  68. package/project/.sdk/tm/kotlin/test/vendor/omni/Json.kt +2 -2
  69. package/project/.sdk/tm/kotlin/test/vendor/omni/Runner.kt +2 -2
  70. package/project/.sdk/tm/kotlin/test/vendor/omni/Util.kt +2 -2
  71. package/project/.sdk/tm/kotlin/utility/struct/Struct.kt +1 -1
  72. package/project/.sdk/tm/lean/test/vendor/omni/Omni.lean +2 -2
  73. package/project/.sdk/tm/lua/test/vendor/omni/json.lua +2 -2
  74. package/project/.sdk/tm/lua/test/vendor/omni/regex.lua +2 -2
  75. package/project/.sdk/tm/lua/test/vendor/omni/runner.lua +2 -2
  76. package/project/.sdk/tm/lua/test/vendor/omni/util.lua +2 -2
  77. package/project/.sdk/tm/lua/utility/struct/regex.lua +1 -1
  78. package/project/.sdk/tm/lua/utility/struct/struct.lua +1 -1
  79. package/project/.sdk/tm/ocaml/test/vendor/omni/omni.ml +2 -2
  80. package/project/.sdk/tm/perl/lib/Voxgig/Struct.pm +1 -1
  81. package/project/.sdk/tm/perl/t/vendor/omni/Voxgig/Omni/Runner.pm +1 -1
  82. package/project/.sdk/tm/perl/t/vendor/omni/Voxgig/Omni/Util.pm +1 -1
  83. package/project/.sdk/tm/perl/t/vendor/omni/Voxgig/Omni.pm +1 -1
  84. package/project/.sdk/tm/php/test/vendor/omni/Runner.php +2 -2
  85. package/project/.sdk/tm/php/test/vendor/omni/Util.php +2 -2
  86. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/__init__.py +1 -1
  87. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/capability.py +1 -1
  88. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/catalog.py +1 -1
  89. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/config.py +1 -1
  90. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/depend.py +1 -1
  91. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/env.py +1 -1
  92. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/export.py +1 -1
  93. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/graph.py +1 -1
  94. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/host.py +1 -1
  95. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/order.py +1 -1
  96. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/point.py +1 -1
  97. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/ref.py +1 -1
  98. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/resolve.py +1 -1
  99. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/types.py +1 -1
  100. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_plugin/version.py +1 -1
  101. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/__init__.py +3 -1
  102. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/addr.py +1 -1
  103. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/aws.py +3 -3
  104. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/azuresecrets.py +1 -1
  105. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/boru.py +1 -1
  106. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/doppler.py +1 -1
  107. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/gcpsecrets.py +1 -1
  108. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/hashicorp.py +3 -4
  109. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/httpjson.py +1 -1
  110. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/infisical.py +4 -6
  111. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/onepassword.py +1 -1
  112. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/secretspec.py +1 -1
  113. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/plugins/sigv4.py +1 -1
  114. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/providers.py +1 -1
  115. package/project/.sdk/tm/py/pkg/feature/secrets/voxgig_sekreto/sekreto.py +21 -1
  116. package/project/.sdk/tm/py/pkg/utility/voxgig_struct/voxgig_struct.py +1 -1
  117. package/project/.sdk/tm/py/test/voxgig_omni/__init__.py +1 -1
  118. package/project/.sdk/tm/py/test/voxgig_omni/runner.py +16 -2
  119. package/project/.sdk/tm/py/test/voxgig_omni/util.py +27 -12
  120. package/project/.sdk/tm/rb/test/vendor/omni/runner.rb +2 -2
  121. package/project/.sdk/tm/rb/test/vendor/omni/util.rb +2 -2
  122. package/project/.sdk/tm/rb/test/vendor/omni/voxgig_omni.rb +2 -2
  123. package/project/.sdk/tm/rust/tests/vendor/omni/json.rs +2 -2
  124. package/project/.sdk/tm/rust/tests/vendor/omni/mod.rs +2 -2
  125. package/project/.sdk/tm/rust/tests/vendor/omni/regex.rs +2 -2
  126. package/project/.sdk/tm/rust/tests/vendor/omni/runner.rs +2 -2
  127. package/project/.sdk/tm/rust/tests/vendor/omni/util.rs +2 -2
  128. package/project/.sdk/tm/scala/sdktest/vendor/omni/Json.scala +2 -2
  129. package/project/.sdk/tm/scala/sdktest/vendor/omni/Runner.scala +2 -2
  130. package/project/.sdk/tm/scala/sdktest/vendor/omni/Util.scala +2 -2
  131. package/project/.sdk/tm/swift/Tests/vendor/omni/Json.swift +2 -2
  132. package/project/.sdk/tm/swift/Tests/vendor/omni/Runner.swift +2 -2
  133. package/project/.sdk/tm/swift/Tests/vendor/omni/Util.swift +2 -2
  134. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Capability.ts +1 -1
  135. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Catalog.ts +1 -1
  136. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Config.ts +1 -1
  137. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Depend.ts +1 -1
  138. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Env.ts +1 -1
  139. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Export.ts +1 -1
  140. package/project/.sdk/tm/ts/src/feature/secrets/plugin/FeatureHost.ts +1 -1
  141. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Graph.ts +1 -1
  142. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Host.ts +1 -1
  143. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Order.ts +1 -1
  144. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Point.ts +1 -1
  145. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Ref.ts +1 -1
  146. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Resolve.ts +1 -1
  147. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Types.ts +1 -1
  148. package/project/.sdk/tm/ts/src/feature/secrets/plugin/Version.ts +1 -1
  149. package/project/.sdk/tm/ts/src/feature/secrets/plugin/index.ts +1 -1
  150. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/Sekreto.ts +1 -1
  151. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/index.ts +1 -1
  152. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/aws.ts +1 -1
  153. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/azuresecrets.ts +1 -1
  154. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/boru.ts +1 -1
  155. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/doppler.ts +1 -1
  156. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/gcpsecrets.ts +1 -1
  157. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/hashicorp.ts +1 -1
  158. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/httpjson.ts +1 -1
  159. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/infisical.ts +1 -1
  160. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/onepassword.ts +1 -1
  161. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/secretspec.ts +1 -1
  162. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/plugins/sigv4.ts +1 -1
  163. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/addr.ts +1 -1
  164. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/builtin.ts +1 -1
  165. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/dotenv.ts +1 -1
  166. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/env.ts +1 -1
  167. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/file.ts +1 -1
  168. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/memory.ts +1 -1
  169. package/project/.sdk/tm/ts/src/feature/secrets/sekreto/provider/support.ts +1 -1
  170. package/project/.sdk/tm/ts/src/utility/StructUtility.ts +2 -2
  171. package/project/.sdk/tm/ts/test/vendor/omni/Runner.ts +1 -1
  172. package/project/.sdk/tm/ts/test/vendor/omni/Util.ts +1 -1
  173. package/project/.sdk/tm/ts/test/vendor/omni/index.ts +1 -1
  174. package/project/.sdk/tm/zig/Makefile +15 -1
  175. package/project/.sdk/tm/zig/build.zig +23 -5
  176. package/project/.sdk/tm/zig/core/helpers.zig +52 -11
  177. package/project/.sdk/tm/zig/core/mem.zig +17 -1
  178. package/project/.sdk/tm/zig/core/utility.zig +23 -19
  179. package/project/.sdk/tm/zig/feature/audit.zig +2 -2
  180. package/project/.sdk/tm/zig/feature/cache.zig +2 -2
  181. package/project/.sdk/tm/zig/feature/debug.zig +5 -5
  182. package/project/.sdk/tm/zig/feature/netsim.zig +2 -2
  183. package/project/.sdk/tm/zig/feature/paging.zig +2 -2
  184. package/project/.sdk/tm/zig/feature/proxy.zig +15 -8
  185. package/project/.sdk/tm/zig/feature/streaming.zig +5 -5
  186. package/project/.sdk/tm/zig/feature/support.zig +3 -3
  187. package/project/.sdk/tm/zig/feature/telemetry.zig +5 -5
  188. package/project/.sdk/tm/zig/feature/test.zig +10 -5
  189. package/project/.sdk/tm/zig/test/fh.zig +10 -10
  190. package/project/.sdk/tm/zig/test/gotcha_test.zig +5 -5
  191. package/project/.sdk/tm/zig/test/omniresolver.zig +515 -0
  192. package/project/.sdk/tm/zig/test/omnismoke_test.zig +284 -0
  193. package/project/.sdk/tm/zig/test/pipeline_test.zig +8 -8
  194. package/project/.sdk/tm/zig/test/primary_utility_test.zig +144 -154
  195. package/project/.sdk/tm/zig/test/struct_corpus.zig +264 -187
  196. package/project/.sdk/tm/zig/test/vendor/omni/omni.zig +1314 -0
  197. package/project/.sdk/tm/zig/test/vendor/omni/regex.zig +446 -0
  198. package/project/.sdk/tm/zig/utility/voxgigstruct/regex.zig +7 -4
  199. package/project/.sdk/tm/zig/utility/voxgigstruct/struct.zig +356 -157
  200. package/project/sdkgen-package.json +1 -1
  201. package/project/.sdk/tm/zig/test/struct_runner.zig +0 -465
@@ -1,5 +1,5 @@
1
1
  # VENDORED: @voxgig/plugin 0.1.6 (python/voxgig_plugin/config.py)
2
- # Source: https://github.com/voxgig/plugin @ 8d8968afc0a2008fbd795b41ab166307d989f02a [tag: sdk-20260904-1610-0]
2
+ # Source: https://github.com/voxgig/plugin @ b48ae643eb0eb56c5ebe3198da98cecdf6a7f7fc [tag: sdk-20260907-0029-0]
3
3
  # License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
4
4
  """The declarative document (section 9): normalization, and the ten-level
5
5
  precedence ladder.
@@ -1,5 +1,5 @@
1
1
  # VENDORED: @voxgig/plugin 0.1.6 (python/voxgig_plugin/depend.py)
2
- # Source: https://github.com/voxgig/plugin @ 8d8968afc0a2008fbd795b41ab166307d989f02a [tag: sdk-20260904-1610-0]
2
+ # Source: https://github.com/voxgig/plugin @ b48ae643eb0eb56c5ebe3198da98cecdf6a7f7fc [tag: sdk-20260907-0029-0]
3
3
  # License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
4
4
  """Dependency cardinality, policy, and the restart graph (section 11.3).
5
5
 
@@ -1,5 +1,5 @@
1
1
  # VENDORED: @voxgig/plugin 0.1.6 (python/voxgig_plugin/env.py)
2
- # Source: https://github.com/voxgig/plugin @ 8d8968afc0a2008fbd795b41ab166307d989f02a [tag: sdk-20260904-1610-0]
2
+ # Source: https://github.com/voxgig/plugin @ b48ae643eb0eb56c5ebe3198da98cecdf6a7f7fc [tag: sdk-20260907-0029-0]
3
3
  # License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
4
4
  """Environment overrides (section 9.5) - level 7 of the ladder.
5
5
 
@@ -1,5 +1,5 @@
1
1
  # VENDORED: @voxgig/plugin 0.1.6 (python/voxgig_plugin/export.py)
2
- # Source: https://github.com/voxgig/plugin @ 8d8968afc0a2008fbd795b41ab166307d989f02a [tag: sdk-20260904-1610-0]
2
+ # Source: https://github.com/voxgig/plugin @ b48ae643eb0eb56c5ebe3198da98cecdf6a7f7fc [tag: sdk-20260907-0029-0]
3
3
  # License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
4
4
  """Exports (section 11).
5
5
 
@@ -1,5 +1,5 @@
1
1
  # VENDORED: @voxgig/plugin 0.1.6 (python/voxgig_plugin/graph.py)
2
- # Source: https://github.com/voxgig/plugin @ 8d8968afc0a2008fbd795b41ab166307d989f02a [tag: sdk-20260904-1610-0]
2
+ # Source: https://github.com/voxgig/plugin @ b48ae643eb0eb56c5ebe3198da98cecdf6a7f7fc [tag: sdk-20260907-0029-0]
3
3
  # License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
4
4
  """Whole-graph resolution (section 11.4) - a phase, not a discovery.
5
5
 
@@ -1,5 +1,5 @@
1
1
  # VENDORED: @voxgig/plugin 0.1.6 (python/voxgig_plugin/host.py)
2
- # Source: https://github.com/voxgig/plugin @ 8d8968afc0a2008fbd795b41ab166307d989f02a [tag: sdk-20260904-1610-0]
2
+ # Source: https://github.com/voxgig/plugin @ b48ae643eb0eb56c5ebe3198da98cecdf6a7f7fc [tag: sdk-20260907-0029-0]
3
3
  # License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
4
4
  """The host: the lifecycle state machine (section 5), extension points
5
5
  (section 6), and resource capture (section 8).
@@ -1,5 +1,5 @@
1
1
  # VENDORED: @voxgig/plugin 0.1.6 (python/voxgig_plugin/order.py)
2
- # Source: https://github.com/voxgig/plugin @ 8d8968afc0a2008fbd795b41ab166307d989f02a [tag: sdk-20260904-1610-0]
2
+ # Source: https://github.com/voxgig/plugin @ b48ae643eb0eb56c5ebe3198da98cecdf6a7f7fc [tag: sdk-20260907-0029-0]
3
3
  # License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
4
4
  """Ordering (section 7) - one rule, one place.
5
5
 
@@ -1,5 +1,5 @@
1
1
  # VENDORED: @voxgig/plugin 0.1.6 (python/voxgig_plugin/point.py)
2
- # Source: https://github.com/voxgig/plugin @ 8d8968afc0a2008fbd795b41ab166307d989f02a [tag: sdk-20260904-1610-0]
2
+ # Source: https://github.com/voxgig/plugin @ b48ae643eb0eb56c5ebe3198da98cecdf6a7f7fc [tag: sdk-20260907-0029-0]
3
3
  # License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
4
4
  """Extension points (section 6). Three kinds, chosen because they are what
5
5
  the two existing systems actually needed, and no more.
@@ -1,5 +1,5 @@
1
1
  # VENDORED: @voxgig/plugin 0.1.6 (python/voxgig_plugin/ref.py)
2
- # Source: https://github.com/voxgig/plugin @ 8d8968afc0a2008fbd795b41ab166307d989f02a [tag: sdk-20260904-1610-0]
2
+ # Source: https://github.com/voxgig/plugin @ b48ae643eb0eb56c5ebe3198da98cecdf6a7f7fc [tag: sdk-20260907-0029-0]
3
3
  # License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
4
4
  """Identity: name+tag, written `name$tag` (section 4).
5
5
 
@@ -1,5 +1,5 @@
1
1
  # VENDORED: @voxgig/plugin 0.1.6 (python/voxgig_plugin/resolve.py)
2
- # Source: https://github.com/voxgig/plugin @ 8d8968afc0a2008fbd795b41ab166307d989f02a [tag: sdk-20260904-1610-0]
2
+ # Source: https://github.com/voxgig/plugin @ b48ae643eb0eb56c5ebe3198da98cecdf6a7f7fc [tag: sdk-20260907-0029-0]
3
3
  # License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
4
4
  """Dynamic resolution (section 10.2) - name to candidate module ids.
5
5
 
@@ -1,5 +1,5 @@
1
1
  # VENDORED: @voxgig/plugin 0.1.6 (python/voxgig_plugin/types.py)
2
- # Source: https://github.com/voxgig/plugin @ 8d8968afc0a2008fbd795b41ab166307d989f02a [tag: sdk-20260904-1610-0]
2
+ # Source: https://github.com/voxgig/plugin @ b48ae643eb0eb56c5ebe3198da98cecdf6a7f7fc [tag: sdk-20260907-0029-0]
3
3
  # License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
4
4
  """Shared types. Deliberately small: the design's section 19 budget says
5
5
  the library owns naming, configuration, lifecycle, ordering, binding and
@@ -1,5 +1,5 @@
1
1
  # VENDORED: @voxgig/plugin 0.1.6 (python/voxgig_plugin/version.py)
2
- # Source: https://github.com/voxgig/plugin @ 8d8968afc0a2008fbd795b41ab166307d989f02a [tag: sdk-20260904-1610-0]
2
+ # Source: https://github.com/voxgig/plugin @ b48ae643eb0eb56c5ebe3198da98cecdf6a7f7fc [tag: sdk-20260907-0029-0]
3
3
  # License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
4
4
  """Versions and ranges (section 11.2).
5
5
 
@@ -1,5 +1,5 @@
1
1
  # VENDORED: @voxgig/sekreto 0.2.0 (python/voxgig_sekreto/__init__.py)
2
- # Source: https://github.com/voxgig/sekreto @ a5a00db6e6d3a1ddbdef7ac62e8a75be53a9e042 [tag: sdk-20260904-1610-0]
2
+ # Source: https://github.com/voxgig/sekreto @ 86ba35a646e68a311bdece43cd5689369ca62e9d [tag: sdk-20260907-0029-0]
3
3
  # License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
4
4
  # voxgig_sekreto - one interface for secrets, wherever they live.
5
5
  #
@@ -46,6 +46,7 @@ from .sekreto import (
46
46
  sekreto,
47
47
  validname,
48
48
  vaultref,
49
+ writejson,
49
50
  )
50
51
 
51
52
  __all__ = [
@@ -71,4 +72,5 @@ __all__ = [
71
72
  'sekreto',
72
73
  'validname',
73
74
  'vaultref',
75
+ 'writejson',
74
76
  ]
@@ -1,5 +1,5 @@
1
1
  # VENDORED: @voxgig/sekreto 0.2.0 (python/voxgig_sekreto/addr.py)
2
- # Source: https://github.com/voxgig/sekreto @ a5a00db6e6d3a1ddbdef7ac62e8a75be53a9e042 [tag: sdk-20260904-1610-0]
2
+ # Source: https://github.com/voxgig/sekreto @ 86ba35a646e68a311bdece43cd5689369ca62e9d [tag: sdk-20260907-0029-0]
3
3
  # License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
4
4
  # The plaintext-address guard, in the core because it is pure - a handful
5
5
  # of string steps, no socket - and because it is on the spec: every port
@@ -1,5 +1,5 @@
1
1
  # VENDORED: @voxgig/sekreto 0.2.0 (python/voxgig_sekreto/plugins/aws.py)
2
- # Source: https://github.com/voxgig/sekreto @ a5a00db6e6d3a1ddbdef7ac62e8a75be53a9e042 [tag: sdk-20260904-1610-0]
2
+ # Source: https://github.com/voxgig/sekreto @ 86ba35a646e68a311bdece43cd5689369ca62e9d [tag: sdk-20260907-0029-0]
3
3
  # License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
4
4
  # The aws plugin: Secrets Manager and SSM Parameter Store, with requests
5
5
  # SigV4-signed in-tree (sigv4.py, beside this file). Needs HTTPS and
@@ -12,7 +12,7 @@ import os
12
12
  import time
13
13
 
14
14
  from ..addr import checkaddr
15
- from ..sekreto import SekretoError, awsparam, vaultref
15
+ from ..sekreto import SekretoError, awsparam, vaultref, writejson
16
16
  from ..providers import Provider, providerplugin
17
17
  from .httpjson import fetchjson
18
18
  from .sigv4 import sigv4
@@ -56,7 +56,7 @@ def awscall(opts, service, target, payload):
56
56
  checkaddr(addr)
57
57
 
58
58
  url = addr.rstrip('/') + '/'
59
- body = json.dumps(payload, separators=(',', ':'))
59
+ body = writejson(payload)
60
60
  headers = {
61
61
  'content-type': 'application/x-amz-json-1.1',
62
62
  'x-amz-target': target,
@@ -1,5 +1,5 @@
1
1
  # VENDORED: @voxgig/sekreto 0.2.0 (python/voxgig_sekreto/plugins/azuresecrets.py)
2
- # Source: https://github.com/voxgig/sekreto @ a5a00db6e6d3a1ddbdef7ac62e8a75be53a9e042 [tag: sdk-20260904-1610-0]
2
+ # Source: https://github.com/voxgig/sekreto @ 86ba35a646e68a311bdece43cd5689369ca62e9d [tag: sdk-20260907-0029-0]
3
3
  # License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
4
4
  # The azuresecrets plugin: Azure Key Vault. Needs HTTPS. A port of
5
5
  # typescript/plugins/azuresecrets.ts.
@@ -1,5 +1,5 @@
1
1
  # VENDORED: @voxgig/sekreto 0.2.0 (python/voxgig_sekreto/plugins/boru.py)
2
- # Source: https://github.com/voxgig/sekreto @ a5a00db6e6d3a1ddbdef7ac62e8a75be53a9e042 [tag: sdk-20260904-1610-0]
2
+ # Source: https://github.com/voxgig/sekreto @ 86ba35a646e68a311bdece43cd5689369ca62e9d [tag: sdk-20260907-0029-0]
3
3
  # License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
4
4
  # The boru plugin: a boru vault through its CLI, or over `boru vault
5
5
  # serve`. Needs a child process, or HTTPS in wire mode. A port of
@@ -1,5 +1,5 @@
1
1
  # VENDORED: @voxgig/sekreto 0.2.0 (python/voxgig_sekreto/plugins/doppler.py)
2
- # Source: https://github.com/voxgig/sekreto @ a5a00db6e6d3a1ddbdef7ac62e8a75be53a9e042 [tag: sdk-20260904-1610-0]
2
+ # Source: https://github.com/voxgig/sekreto @ 86ba35a646e68a311bdece43cd5689369ca62e9d [tag: sdk-20260907-0029-0]
3
3
  # License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
4
4
  # The doppler plugin: Doppler, one bulk download per config. Needs
5
5
  # HTTPS. A port of typescript/plugins/doppler.ts.
@@ -1,5 +1,5 @@
1
1
  # VENDORED: @voxgig/sekreto 0.2.0 (python/voxgig_sekreto/plugins/gcpsecrets.py)
2
- # Source: https://github.com/voxgig/sekreto @ a5a00db6e6d3a1ddbdef7ac62e8a75be53a9e042 [tag: sdk-20260904-1610-0]
2
+ # Source: https://github.com/voxgig/sekreto @ 86ba35a646e68a311bdece43cd5689369ca62e9d [tag: sdk-20260907-0029-0]
3
3
  # License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
4
4
  # The gcpsecrets plugin: GCP Secret Manager. Needs HTTPS. A port of
5
5
  # typescript/plugins/gcpsecrets.ts.
@@ -1,14 +1,13 @@
1
1
  # VENDORED: @voxgig/sekreto 0.2.0 (python/voxgig_sekreto/plugins/hashicorp.py)
2
- # Source: https://github.com/voxgig/sekreto @ a5a00db6e6d3a1ddbdef7ac62e8a75be53a9e042 [tag: sdk-20260904-1610-0]
2
+ # Source: https://github.com/voxgig/sekreto @ 86ba35a646e68a311bdece43cd5689369ca62e9d [tag: sdk-20260907-0029-0]
3
3
  # License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
4
4
  # The hashicorp plugin: HashiCorp Vault, and OpenBao. Needs HTTPS, and
5
5
  # the filesystem for a kubernetes service-account JWT. A port of
6
6
  # typescript/plugins/hashicorp.ts.
7
- import json
8
7
  import time
9
8
 
10
9
  from ..addr import checkaddr
11
- from ..sekreto import SekretoError, vaultref
10
+ from ..sekreto import SekretoError, vaultref, writejson
12
11
  from ..providers import Provider, providerplugin
13
12
  from .httpjson import fetchjson, tonumber
14
13
 
@@ -89,7 +88,7 @@ class HashicorpProvider(Provider):
89
88
  )
90
89
 
91
90
  status, resbody = fetchjson(
92
- 'POST', url, self.baseheaders(), json.dumps(body, separators=(',', ':'))
91
+ 'POST', url, self.baseheaders(), writejson(body)
93
92
  )
94
93
 
95
94
  got = ((resbody or {}).get('auth') or {}).get('client_token')
@@ -1,5 +1,5 @@
1
1
  # VENDORED: @voxgig/sekreto 0.2.0 (python/voxgig_sekreto/plugins/httpjson.py)
2
- # Source: https://github.com/voxgig/sekreto @ a5a00db6e6d3a1ddbdef7ac62e8a75be53a9e042 [tag: sdk-20260904-1610-0]
2
+ # Source: https://github.com/voxgig/sekreto @ 86ba35a646e68a311bdece43cd5689369ca62e9d [tag: sdk-20260907-0029-0]
3
3
  # License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
4
4
  # The HTTP half of every plugin that speaks to a store over the wire, in
5
5
  # one place and OUTSIDE the core: a chain of built-ins never imports this
@@ -1,13 +1,12 @@
1
1
  # VENDORED: @voxgig/sekreto 0.2.0 (python/voxgig_sekreto/plugins/infisical.py)
2
- # Source: https://github.com/voxgig/sekreto @ a5a00db6e6d3a1ddbdef7ac62e8a75be53a9e042 [tag: sdk-20260904-1610-0]
2
+ # Source: https://github.com/voxgig/sekreto @ 86ba35a646e68a311bdece43cd5689369ca62e9d [tag: sdk-20260907-0029-0]
3
3
  # License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
4
4
  # The infisical plugin: Infisical. Needs HTTPS. A port of
5
5
  # typescript/plugins/infisical.ts.
6
- import json
7
6
  import time
8
7
 
9
8
  from ..addr import checkaddr
10
- from ..sekreto import SekretoError, envkey
9
+ from ..sekreto import SekretoError, envkey, writejson
11
10
  from ..providers import Provider, providerplugin
12
11
  from .httpjson import fetchjson, tonumber, urlpart
13
12
 
@@ -40,9 +39,8 @@ class InfisicalProvider(Provider):
40
39
  'POST',
41
40
  addr + '/api/v1/auth/universal-auth/login',
42
41
  {'content-type': 'application/json'},
43
- json.dumps(
44
- {'clientId': self.opts['clientid'], 'clientSecret': self.opts['clientsecret']},
45
- separators=(',', ':'),
42
+ writejson(
43
+ {'clientId': self.opts['clientid'], 'clientSecret': self.opts['clientsecret']}
46
44
  ),
47
45
  )
48
46
 
@@ -1,5 +1,5 @@
1
1
  # VENDORED: @voxgig/sekreto 0.2.0 (python/voxgig_sekreto/plugins/onepassword.py)
2
- # Source: https://github.com/voxgig/sekreto @ a5a00db6e6d3a1ddbdef7ac62e8a75be53a9e042 [tag: sdk-20260904-1610-0]
2
+ # Source: https://github.com/voxgig/sekreto @ 86ba35a646e68a311bdece43cd5689369ca62e9d [tag: sdk-20260907-0029-0]
3
3
  # License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
4
4
  # The onepassword plugin: 1Password, through a Connect server. Needs
5
5
  # HTTPS. A port of typescript/plugins/onepassword.ts.
@@ -1,5 +1,5 @@
1
1
  # VENDORED: @voxgig/sekreto 0.2.0 (python/voxgig_sekreto/plugins/secretspec.py)
2
- # Source: https://github.com/voxgig/sekreto @ a5a00db6e6d3a1ddbdef7ac62e8a75be53a9e042 [tag: sdk-20260904-1610-0]
2
+ # Source: https://github.com/voxgig/sekreto @ 86ba35a646e68a311bdece43cd5689369ca62e9d [tag: sdk-20260907-0029-0]
3
3
  # License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
4
4
  # The secretspec plugin: SecretSpec, through its CLI. Needs a child
5
5
  # process. A port of typescript/plugins/secretspec.ts.
@@ -1,5 +1,5 @@
1
1
  # VENDORED: @voxgig/sekreto 0.2.0 (python/voxgig_sekreto/plugins/sigv4.py)
2
- # Source: https://github.com/voxgig/sekreto @ a5a00db6e6d3a1ddbdef7ac62e8a75be53a9e042 [tag: sdk-20260904-1610-0]
2
+ # Source: https://github.com/voxgig/sekreto @ 86ba35a646e68a311bdece43cd5689369ca62e9d [tag: sdk-20260907-0029-0]
3
3
  # License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
4
4
  # AWS Signature Version 4, hand-rolled.
5
5
  #
@@ -1,5 +1,5 @@
1
1
  # VENDORED: @voxgig/sekreto 0.2.0 (python/voxgig_sekreto/providers.py)
2
- # Source: https://github.com/voxgig/sekreto @ a5a00db6e6d3a1ddbdef7ac62e8a75be53a9e042 [tag: sdk-20260904-1610-0]
2
+ # Source: https://github.com/voxgig/sekreto @ 86ba35a646e68a311bdece43cd5689369ca62e9d [tag: sdk-20260907-0029-0]
3
3
  # License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
4
4
  # What a provider is, how a provider kind becomes a voxgig/plugin
5
5
  # definition - and the four BUILT-IN kinds.
@@ -1,5 +1,5 @@
1
1
  # VENDORED: @voxgig/sekreto 0.2.0 (python/voxgig_sekreto/sekreto.py)
2
- # Source: https://github.com/voxgig/sekreto @ a5a00db6e6d3a1ddbdef7ac62e8a75be53a9e042 [tag: sdk-20260904-1610-0]
2
+ # Source: https://github.com/voxgig/sekreto @ 86ba35a646e68a311bdece43cd5689369ca62e9d [tag: sdk-20260907-0029-0]
3
3
  # License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
4
4
  # sekreto: one interface for secrets, wherever they live.
5
5
  #
@@ -17,6 +17,7 @@
17
17
  # project handed it in through `plugins`. See
18
18
  # docs/design/plugin-providers.md.
19
19
 
20
+ import json
20
21
  import re
21
22
  import types
22
23
 
@@ -36,6 +37,25 @@ class SekretoError(Exception):
36
37
  NAMEPART = re.compile(r'\A[a-z0-9_]+\Z')
37
38
 
38
39
 
40
+ def writejson(value):
41
+ """JSON text for a value that LEAVES the process.
42
+
43
+ Two defaults have to be turned off. `ensure_ascii` escapes every
44
+ non-ASCII character as \\uXXXX, and `separators` otherwise puts a space
45
+ after each comma and colon. Neither is wrong, and both made python one
46
+ of only three ports whose bytes differed: the rest emit a secret's
47
+ accented or non-Latin characters as the UTF-8 they already are. The
48
+ writer's output is part of what the ports agree on - the CLI line is
49
+ compared byte for byte across all of them - so python matches the
50
+ rest.
51
+
52
+ Use this for a request body, a returned secret, the CLI's line. A
53
+ `json.dumps` whose text is parsed again without ever being emitted
54
+ needs no such care.
55
+ """
56
+ return json.dumps(value, ensure_ascii=False, separators=(',', ':'))
57
+
58
+
39
59
  def validname(name):
40
60
  """Is this a well-formed secret name?"""
41
61
  if not isinstance(name, str) or 0 == len(name):
@@ -1,5 +1,5 @@
1
1
  # VENDORED: @voxgig/struct 0.1.1 (python/voxgig_struct/voxgig_struct.py)
2
- # Source: https://github.com/voxgig/struct @ 2caf7f448f265144c18dd6fab6ba270a7f3bca07 [tag: sdk-20260904-1610-0]
2
+ # Source: https://github.com/voxgig/struct @ adda9521c828147573df5a8878408a3f2193ddf4 [tag: sdk-20260907-0029-0]
3
3
  # License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
4
4
  # Copyright (c) 2025 Voxgig Ltd. MIT LICENSE.
5
5
  #
@@ -1,5 +1,5 @@
1
1
  # VENDORED: @voxgig/omni 0.1.0 (python/voxgig_omni/__init__.py)
2
- # Source: https://github.com/voxgig/omni @ 8c3e1b573a8d35796f7fc45e3226b977023cabf7 [tag: sdk-20260904-1610-0]
2
+ # Source: https://github.com/voxgig/omni @ 274708cc2d12b21707d975543953f845f8444be0 [tag: sdk-20260907-0029-0]
3
3
  # License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
4
4
  """voxgig_omni - shared multi-language test runner."""
5
5
 
@@ -1,5 +1,5 @@
1
1
  # VENDORED: @voxgig/omni 0.1.0 (python/voxgig_omni/runner.py)
2
- # Source: https://github.com/voxgig/omni @ 8c3e1b573a8d35796f7fc45e3226b977023cabf7 [tag: sdk-20260904-1610-0]
2
+ # Source: https://github.com/voxgig/omni @ 274708cc2d12b21707d975543953f845f8444be0 [tag: sdk-20260907-0029-0]
3
3
  # License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
4
4
  """Omni: the shared multi-language test runner.
5
5
 
@@ -268,6 +268,13 @@ def errify(err: Any) -> dict:
268
268
  out['name'] = type(err).__name__
269
269
  out['message'] = str(err)
270
270
  return out
271
+ # An error-SHAPED plain map ({name, message, ...}) carries its fields
272
+ # into the base the same way an exception's attributes do - collapsing
273
+ # it to str(err) fails both the `err` check and every match.err leaf.
274
+ if isinstance(err, dict):
275
+ out = {'name': 'Error'}
276
+ out.update(err)
277
+ return out
271
278
  return {'name': 'Error', 'message': str(err)}
272
279
 
273
280
 
@@ -278,6 +285,8 @@ def errbase(err: Any, provider: Any) -> dict:
278
285
 
279
286
 
280
287
  def errmessage(err: Any) -> str:
288
+ if isinstance(err, dict) and isinstance(err.get('message'), str):
289
+ return err['message']
281
290
  return str(err)
282
291
 
283
292
 
@@ -378,7 +387,12 @@ def handleerror(
378
387
 
379
388
  def match(flags: dict, index: int, entry: dict, check: Any, base: Any) -> None:
380
389
  """Check that every leaf of `check` is present, and matches, in `base`."""
381
- cbase = clone(base)
390
+ # Read the base DIRECTLY. The clone bought nothing - the walk below
391
+ # only reads, via getpath - and it blows the stack on a cyclic base. A
392
+ # port driving entries with live objects rather than pure JSON produces
393
+ # those routinely (voxgig/sdkgen's corpus matches a live client context
394
+ # whose root context reaches the client again).
395
+ cbase = base
382
396
 
383
397
  def at(path):
384
398
  return '<root>' if len(path) == 0 else pathify(path)
@@ -1,5 +1,5 @@
1
1
  # VENDORED: @voxgig/omni 0.1.0 (python/voxgig_omni/util.py)
2
- # Source: https://github.com/voxgig/omni @ 8c3e1b573a8d35796f7fc45e3226b977023cabf7 [tag: sdk-20260904-1610-0]
2
+ # Source: https://github.com/voxgig/omni @ 274708cc2d12b21707d975543953f845f8444be0 [tag: sdk-20260907-0029-0]
3
3
  # License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
4
4
  """Omni internal JSON utilities.
5
5
 
@@ -174,8 +174,15 @@ def _quote(val: str) -> str:
174
174
  return ''.join(out)
175
175
 
176
176
 
177
- def jsonstr(val: Any) -> str:
178
- """Compact JSON text with map keys sorted, identical in every port."""
177
+ def jsonstr(val: Any, seen: set | None = None) -> str:
178
+ """Compact JSON text with map keys sorted, identical in every port.
179
+
180
+ GUARDED against cycles: this renders FAILURE MESSAGES, and an entry
181
+ carrying a live cyclic value recursed until the stack gave out. A
182
+ cycle renders as "[Circular]". ``seen`` tracks the ANCESTORS of the
183
+ current value, removed again on the way out, so a DAG still renders
184
+ in full.
185
+ """
179
186
  if val is ABSENT:
180
187
  return 'undefined'
181
188
 
@@ -191,15 +198,23 @@ def jsonstr(val: Any) -> str:
191
198
  if isnum(val):
192
199
  return numstr(val)
193
200
 
194
- if islist(val):
195
- return '[' + ','.join(jsonstr(entry) for entry in val) + ']'
196
-
197
- if ismap(val):
198
- return (
199
- '{'
200
- + ','.join(_quote(str(key)) + ':' + jsonstr(val[key]) for key in sorted(val.keys()))
201
- + '}'
202
- )
201
+ if islist(val) or ismap(val):
202
+ seen = seen if seen is not None else set()
203
+ if id(val) in seen:
204
+ return '"[Circular]"'
205
+ seen.add(id(val))
206
+ if islist(val):
207
+ out = '[' + ','.join(jsonstr(entry, seen) for entry in val) + ']'
208
+ else:
209
+ out = (
210
+ '{'
211
+ + ','.join(
212
+ _quote(str(key)) + ':' + jsonstr(val[key], seen)
213
+ for key in sorted(val.keys()))
214
+ + '}'
215
+ )
216
+ seen.discard(id(val))
217
+ return out
203
218
 
204
219
  if callable(val):
205
220
  return '[Function ' + getattr(val, '__name__', '') + ']'
@@ -1,5 +1,5 @@
1
- # VENDORED: @voxgig/omni sdk-20260904-1610-0 (ruby/lib/voxgig_omni/runner.rb)
2
- # Source: https://github.com/voxgig/omni @ 8c3e1b573a8d35796f7fc45e3226b977023cabf7 [tag: sdk-20260904-1610-0]
1
+ # VENDORED: @voxgig/omni sdk-20260907-0029-0 (ruby/lib/voxgig_omni/runner.rb)
2
+ # Source: https://github.com/voxgig/omni @ 274708cc2d12b21707d975543953f845f8444be0 [tag: sdk-20260907-0029-0]
3
3
  # License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
4
4
  # Omni: the shared multi-language test runner.
5
5
  #
@@ -1,5 +1,5 @@
1
- # VENDORED: @voxgig/omni sdk-20260904-1610-0 (ruby/lib/voxgig_omni/util.rb)
2
- # Source: https://github.com/voxgig/omni @ 8c3e1b573a8d35796f7fc45e3226b977023cabf7 [tag: sdk-20260904-1610-0]
1
+ # VENDORED: @voxgig/omni sdk-20260907-0029-0 (ruby/lib/voxgig_omni/util.rb)
2
+ # Source: https://github.com/voxgig/omni @ 274708cc2d12b21707d975543953f845f8444be0 [tag: sdk-20260907-0029-0]
3
3
  # License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
4
4
  # Omni internal JSON utilities.
5
5
  #
@@ -1,5 +1,5 @@
1
- # VENDORED: @voxgig/omni sdk-20260904-1610-0 (ruby/lib/voxgig_omni.rb)
2
- # Source: https://github.com/voxgig/omni @ 8c3e1b573a8d35796f7fc45e3226b977023cabf7 [tag: sdk-20260904-1610-0]
1
+ # VENDORED: @voxgig/omni sdk-20260907-0029-0 (ruby/lib/voxgig_omni.rb)
2
+ # Source: https://github.com/voxgig/omni @ 274708cc2d12b21707d975543953f845f8444be0 [tag: sdk-20260907-0029-0]
3
3
  # License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
4
4
  # voxgig_omni - shared multi-language test runner.
5
5
 
@@ -1,5 +1,5 @@
1
- // VENDORED: @voxgig/omni sdk-20260904-1610-0 (rust/src/json.rs)
2
- // Source: https://github.com/voxgig/omni @ 8c3e1b573a8d35796f7fc45e3226b977023cabf7 [tag: sdk-20260904-1610-0]
1
+ // VENDORED: @voxgig/omni sdk-20260907-0029-0 (rust/src/json.rs)
2
+ // Source: https://github.com/voxgig/omni @ 274708cc2d12b21707d975543953f845f8444be0 [tag: sdk-20260907-0029-0]
3
3
  // License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
4
4
  //! The omni JSON value model, with a small in-tree parser.
5
5
  //!
@@ -1,5 +1,5 @@
1
- // VENDORED: @voxgig/omni sdk-20260904-1610-0 (rust/src/lib.rs)
2
- // Source: https://github.com/voxgig/omni @ 8c3e1b573a8d35796f7fc45e3226b977023cabf7 [tag: sdk-20260904-1610-0]
1
+ // VENDORED: @voxgig/omni sdk-20260907-0029-0 (rust/src/lib.rs)
2
+ // Source: https://github.com/voxgig/omni @ 274708cc2d12b21707d975543953f845f8444be0 [tag: sdk-20260907-0029-0]
3
3
  // License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
4
4
  //! voxgig_omni - the shared multi-language test runner.
5
5
  //!
@@ -1,5 +1,5 @@
1
- // VENDORED: @voxgig/omni sdk-20260904-1610-0 (rust/src/regex.rs)
2
- // Source: https://github.com/voxgig/omni @ 8c3e1b573a8d35796f7fc45e3226b977023cabf7 [tag: sdk-20260904-1610-0]
1
+ // VENDORED: @voxgig/omni sdk-20260907-0029-0 (rust/src/regex.rs)
2
+ // Source: https://github.com/voxgig/omni @ 274708cc2d12b21707d975543953f845f8444be0 [tag: sdk-20260907-0029-0]
3
3
  // License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
4
4
  //! A small backtracking regex engine.
5
5
  //!
@@ -1,5 +1,5 @@
1
- // VENDORED: @voxgig/omni sdk-20260904-1610-0 (rust/src/runner.rs)
2
- // Source: https://github.com/voxgig/omni @ 8c3e1b573a8d35796f7fc45e3226b977023cabf7 [tag: sdk-20260904-1610-0]
1
+ // VENDORED: @voxgig/omni sdk-20260907-0029-0 (rust/src/runner.rs)
2
+ // Source: https://github.com/voxgig/omni @ 274708cc2d12b21707d975543953f845f8444be0 [tag: sdk-20260907-0029-0]
3
3
  // License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
4
4
  //! Omni: the shared multi-language test runner.
5
5
  //!
@@ -1,5 +1,5 @@
1
- // VENDORED: @voxgig/omni sdk-20260904-1610-0 (rust/src/util.rs)
2
- // Source: https://github.com/voxgig/omni @ 8c3e1b573a8d35796f7fc45e3226b977023cabf7 [tag: sdk-20260904-1610-0]
1
+ // VENDORED: @voxgig/omni sdk-20260907-0029-0 (rust/src/util.rs)
2
+ // Source: https://github.com/voxgig/omni @ 274708cc2d12b21707d975543953f845f8444be0 [tag: sdk-20260907-0029-0]
3
3
  // License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
4
4
  //! Omni internal JSON utilities.
5
5
  //!
@@ -1,5 +1,5 @@
1
- // VENDORED: @voxgig/omni sdk-20260904-1610-0 (scala/src/Json.scala)
2
- // Source: https://github.com/voxgig/omni @ 8c3e1b573a8d35796f7fc45e3226b977023cabf7 [tag: sdk-20260904-1610-0]
1
+ // VENDORED: @voxgig/omni sdk-20260907-0029-0 (scala/src/Json.scala)
2
+ // Source: https://github.com/voxgig/omni @ 274708cc2d12b21707d975543953f845f8444be0 [tag: sdk-20260907-0029-0]
3
3
  // License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
4
4
  // The omni JSON value model, with a small in-tree parser.
5
5
  //
@@ -1,5 +1,5 @@
1
- // VENDORED: @voxgig/omni sdk-20260904-1610-0 (scala/src/Runner.scala)
2
- // Source: https://github.com/voxgig/omni @ 8c3e1b573a8d35796f7fc45e3226b977023cabf7 [tag: sdk-20260904-1610-0]
1
+ // VENDORED: @voxgig/omni sdk-20260907-0029-0 (scala/src/Runner.scala)
2
+ // Source: https://github.com/voxgig/omni @ 274708cc2d12b21707d975543953f845f8444be0 [tag: sdk-20260907-0029-0]
3
3
  // License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
4
4
  // Omni: the shared multi-language test runner (Scala port).
5
5
  //
@@ -1,5 +1,5 @@
1
- // VENDORED: @voxgig/omni sdk-20260904-1610-0 (scala/src/Util.scala)
2
- // Source: https://github.com/voxgig/omni @ 8c3e1b573a8d35796f7fc45e3226b977023cabf7 [tag: sdk-20260904-1610-0]
1
+ // VENDORED: @voxgig/omni sdk-20260907-0029-0 (scala/src/Util.scala)
2
+ // Source: https://github.com/voxgig/omni @ 274708cc2d12b21707d975543953f845f8444be0 [tag: sdk-20260907-0029-0]
3
3
  // License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
4
4
  // Omni internal JSON utilities.
5
5
  //
@@ -1,5 +1,5 @@
1
- // VENDORED: @voxgig/omni sdk-20260904-1610-0 (swift/Sources/Omni/Json.swift)
2
- // Source: https://github.com/voxgig/omni @ 8c3e1b573a8d35796f7fc45e3226b977023cabf7 [tag: sdk-20260904-1610-0]
1
+ // VENDORED: @voxgig/omni sdk-20260907-0029-0 (swift/Sources/Omni/Json.swift)
2
+ // Source: https://github.com/voxgig/omni @ 274708cc2d12b21707d975543953f845f8444be0 [tag: sdk-20260907-0029-0]
3
3
  // License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
4
4
  // The omni JSON value model, with a small in-tree parser.
5
5
  //
@@ -1,5 +1,5 @@
1
- // VENDORED: @voxgig/omni sdk-20260904-1610-0 (swift/Sources/Omni/Runner.swift)
2
- // Source: https://github.com/voxgig/omni @ 8c3e1b573a8d35796f7fc45e3226b977023cabf7 [tag: sdk-20260904-1610-0]
1
+ // VENDORED: @voxgig/omni sdk-20260907-0029-0 (swift/Sources/Omni/Runner.swift)
2
+ // Source: https://github.com/voxgig/omni @ 274708cc2d12b21707d975543953f845f8444be0 [tag: sdk-20260907-0029-0]
3
3
  // License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
4
4
  // Omni: the shared multi-language test runner (Swift port).
5
5
  //
@@ -1,5 +1,5 @@
1
- // VENDORED: @voxgig/omni sdk-20260904-1610-0 (swift/Sources/Omni/Util.swift)
2
- // Source: https://github.com/voxgig/omni @ 8c3e1b573a8d35796f7fc45e3226b977023cabf7 [tag: sdk-20260904-1610-0]
1
+ // VENDORED: @voxgig/omni sdk-20260907-0029-0 (swift/Sources/Omni/Util.swift)
2
+ // Source: https://github.com/voxgig/omni @ 274708cc2d12b21707d975543953f845f8444be0 [tag: sdk-20260907-0029-0]
3
3
  // License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
4
4
  // Omni internal JSON utilities.
5
5
  //
@@ -1,5 +1,5 @@
1
1
  // VENDORED: @voxgig/plugin 0.1.6 (typescript/src/Capability.ts)
2
- // Source: https://github.com/voxgig/plugin @ 8d8968afc0a2008fbd795b41ab166307d989f02a [tag: sdk-20260904-1610-0]
2
+ // Source: https://github.com/voxgig/plugin @ b48ae643eb0eb56c5ebe3198da98cecdf6a7f7fc [tag: sdk-20260907-0029-0]
3
3
  // License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
4
4
  /* Capabilities (§11.1).
5
5
  *
@@ -1,5 +1,5 @@
1
1
  // VENDORED: @voxgig/plugin 0.1.6 (typescript/src/Catalog.ts)
2
- // Source: https://github.com/voxgig/plugin @ 8d8968afc0a2008fbd795b41ab166307d989f02a [tag: sdk-20260904-1610-0]
2
+ // Source: https://github.com/voxgig/plugin @ b48ae643eb0eb56c5ebe3198da98cecdf6a7f7fc [tag: sdk-20260907-0029-0]
3
3
  // License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
4
4
  /* The definition catalog (§10.1).
5
5
  *
@@ -1,5 +1,5 @@
1
1
  // VENDORED: @voxgig/plugin 0.1.6 (typescript/src/Config.ts)
2
- // Source: https://github.com/voxgig/plugin @ 8d8968afc0a2008fbd795b41ab166307d989f02a [tag: sdk-20260904-1610-0]
2
+ // Source: https://github.com/voxgig/plugin @ b48ae643eb0eb56c5ebe3198da98cecdf6a7f7fc [tag: sdk-20260907-0029-0]
3
3
  // License: MIT (c) voxgig - see repository LICENSE. Do not edit: resync from upstream.
4
4
  /* The declarative document (§9): normalization, and the ten-level
5
5
  * precedence ladder.