openrod 0.0.0 → 0.1.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 (898) hide show
  1. package/LICENSE +201 -0
  2. package/NOTICE +8 -0
  3. package/README.md +58 -2
  4. package/SETUPS.md +75 -0
  5. package/THIRD_PARTY_NOTICES.md +15823 -0
  6. package/dist/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2 +0 -0
  7. package/dist/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2 +0 -0
  8. package/dist/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2 +0 -0
  9. package/dist/assets/geist-latin-wght-normal-BgDaEnEv.woff2 +0 -0
  10. package/dist/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2 +0 -0
  11. package/dist/assets/index-CEZ0R3YS.js +522 -0
  12. package/dist/assets/index-DYjVZRjW.css +1 -0
  13. package/dist/assets/index.esm-BVqeoYDn.js +376 -0
  14. package/dist/assets/index.esm-CXAOoF3i.js +16 -0
  15. package/dist/assets/index.esm-D0s8MSqt.js +1666 -0
  16. package/dist/assets/pixelify-sans-cyrillic-wght-normal-BfQLqnEI.woff2 +0 -0
  17. package/dist/assets/pixelify-sans-latin-ext-wght-normal-CsF3XSp0.woff2 +0 -0
  18. package/dist/assets/pixelify-sans-latin-wght-normal-Cbhn5ptY.woff2 +0 -0
  19. package/dist/assets/terminal-view-6GBZ9nXN.css +32 -0
  20. package/dist/assets/terminal-view-CkPFNoXi.js +40 -0
  21. package/dist/favicon.png +0 -0
  22. package/dist/index.html +16 -0
  23. package/dist/logos/SOURCES.md +133 -0
  24. package/dist/logos/agents/aider.svg +1 -0
  25. package/dist/logos/agents/antigravity.svg +1 -0
  26. package/dist/logos/agents/claudecode.svg +1 -0
  27. package/dist/logos/agents/codex.svg +1 -0
  28. package/dist/logos/agents/copilot.svg +1 -0
  29. package/dist/logos/agents/cursor.svg +1 -0
  30. package/dist/logos/agents/factory.svg +1 -0
  31. package/dist/logos/agents/gemini.svg +1 -0
  32. package/dist/logos/agents/kiro.svg +1 -0
  33. package/dist/logos/agents/openclaw-color.svg +1 -0
  34. package/dist/logos/agents/opencode.svg +1 -0
  35. package/dist/logos/agents/pi.svg +1 -0
  36. package/dist/logos/anthropic.svg +1 -0
  37. package/dist/logos/aws-bedrock.svg +1 -0
  38. package/dist/logos/aws-s3.svg +1 -0
  39. package/dist/logos/aws.svg +1 -0
  40. package/dist/logos/claude-code.svg +1 -0
  41. package/dist/logos/codex.svg +1 -0
  42. package/dist/logos/copilot.svg +1 -0
  43. package/dist/logos/cursor.svg +1 -0
  44. package/dist/logos/deepinfra.svg +1 -0
  45. package/dist/logos/github.svg +1 -0
  46. package/dist/logos/google-cloud.svg +1 -0
  47. package/dist/logos/google-vertex-ai.svg +1 -0
  48. package/dist/logos/nvidia.svg +1 -0
  49. package/dist/logos/openai.svg +1 -0
  50. package/dist/logos/openrouter.svg +1 -0
  51. package/dist/logos/pypi.svg +1 -0
  52. package/dist/logos/templates/debian.svg +1 -0
  53. package/dist/logos/templates/nodejs.svg +1 -0
  54. package/dist/logos/templates/python.svg +1 -0
  55. package/dist/logos/templates/ubuntu.svg +1 -0
  56. package/dist/logos/vscode.svg +1 -0
  57. package/dist/openrod.png +0 -0
  58. package/node_modules/@bufbuild/protobuf/README.md +41 -0
  59. package/node_modules/@bufbuild/protobuf/dist/commonjs/clone.d.ts +6 -0
  60. package/node_modules/@bufbuild/protobuf/dist/commonjs/clone.js +66 -0
  61. package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv1/boot.d.ts +1 -0
  62. package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv1/boot.js +18 -0
  63. package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv1/enum.d.ts +10 -0
  64. package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv1/enum.js +31 -0
  65. package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv1/extension.d.ts +9 -0
  66. package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv1/extension.js +28 -0
  67. package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv1/file.d.ts +1 -0
  68. package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv1/file.js +18 -0
  69. package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv1/index.d.ts +10 -0
  70. package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv1/index.js +39 -0
  71. package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv1/message.d.ts +10 -0
  72. package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv1/message.js +24 -0
  73. package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv1/service.d.ts +8 -0
  74. package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv1/service.js +27 -0
  75. package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv1/symbols.d.ts +140 -0
  76. package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv1/symbols.js +43 -0
  77. package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv1/types.d.ts +79 -0
  78. package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv1/types.js +15 -0
  79. package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv2/boot.d.ts +63 -0
  80. package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv2/boot.js +105 -0
  81. package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv2/embed.d.ts +43 -0
  82. package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv2/embed.js +244 -0
  83. package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv2/enum.d.ts +29 -0
  84. package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv2/enum.js +58 -0
  85. package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv2/extension.d.ts +9 -0
  86. package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv2/extension.js +28 -0
  87. package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv2/file.d.ts +7 -0
  88. package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv2/file.js +35 -0
  89. package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv2/index.d.ts +10 -0
  90. package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv2/index.js +39 -0
  91. package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv2/message.d.ts +15 -0
  92. package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv2/message.js +24 -0
  93. package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv2/restore-json-names.d.ts +5 -0
  94. package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv2/restore-json-names.js +29 -0
  95. package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv2/scalar.d.ts +9 -0
  96. package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv2/scalar.js +67 -0
  97. package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv2/service.d.ts +8 -0
  98. package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv2/service.js +27 -0
  99. package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv2/symbols.d.ts +145 -0
  100. package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv2/symbols.js +74 -0
  101. package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv2/types.d.ts +85 -0
  102. package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv2/types.js +15 -0
  103. package/node_modules/@bufbuild/protobuf/dist/commonjs/create.d.ts +9 -0
  104. package/node_modules/@bufbuild/protobuf/dist/commonjs/create.js +296 -0
  105. package/node_modules/@bufbuild/protobuf/dist/commonjs/descriptors.d.ts +634 -0
  106. package/node_modules/@bufbuild/protobuf/dist/commonjs/descriptors.js +53 -0
  107. package/node_modules/@bufbuild/protobuf/dist/commonjs/equals.d.ts +46 -0
  108. package/node_modules/@bufbuild/protobuf/dist/commonjs/equals.js +209 -0
  109. package/node_modules/@bufbuild/protobuf/dist/commonjs/extensions.d.ts +60 -0
  110. package/node_modules/@bufbuild/protobuf/dist/commonjs/extensions.js +168 -0
  111. package/node_modules/@bufbuild/protobuf/dist/commonjs/fields.d.ts +23 -0
  112. package/node_modules/@bufbuild/protobuf/dist/commonjs/fields.js +45 -0
  113. package/node_modules/@bufbuild/protobuf/dist/commonjs/from-binary.d.ts +48 -0
  114. package/node_modules/@bufbuild/protobuf/dist/commonjs/from-binary.js +415 -0
  115. package/node_modules/@bufbuild/protobuf/dist/commonjs/from-json.d.ts +73 -0
  116. package/node_modules/@bufbuild/protobuf/dist/commonjs/from-json.js +1037 -0
  117. package/node_modules/@bufbuild/protobuf/dist/commonjs/index.d.ts +19 -0
  118. package/node_modules/@bufbuild/protobuf/dist/commonjs/index.js +55 -0
  119. package/node_modules/@bufbuild/protobuf/dist/commonjs/is-message.d.ts +7 -0
  120. package/node_modules/@bufbuild/protobuf/dist/commonjs/is-message.js +33 -0
  121. package/node_modules/@bufbuild/protobuf/dist/commonjs/json-value.d.ts +16 -0
  122. package/node_modules/@bufbuild/protobuf/dist/commonjs/json-value.js +15 -0
  123. package/node_modules/@bufbuild/protobuf/dist/commonjs/merge.d.ts +13 -0
  124. package/node_modules/@bufbuild/protobuf/dist/commonjs/merge.js +70 -0
  125. package/node_modules/@bufbuild/protobuf/dist/commonjs/package.json +4 -0
  126. package/node_modules/@bufbuild/protobuf/dist/commonjs/proto-int64.d.ts +98 -0
  127. package/node_modules/@bufbuild/protobuf/dist/commonjs/proto-int64.js +131 -0
  128. package/node_modules/@bufbuild/protobuf/dist/commonjs/reflect/error.d.ts +9 -0
  129. package/node_modules/@bufbuild/protobuf/dist/commonjs/reflect/error.js +36 -0
  130. package/node_modules/@bufbuild/protobuf/dist/commonjs/reflect/guard.d.ts +20 -0
  131. package/node_modules/@bufbuild/protobuf/dist/commonjs/reflect/guard.js +78 -0
  132. package/node_modules/@bufbuild/protobuf/dist/commonjs/reflect/index.d.ts +8 -0
  133. package/node_modules/@bufbuild/protobuf/dist/commonjs/reflect/index.js +41 -0
  134. package/node_modules/@bufbuild/protobuf/dist/commonjs/reflect/message.d.ts +49 -0
  135. package/node_modules/@bufbuild/protobuf/dist/commonjs/reflect/message.js +157 -0
  136. package/node_modules/@bufbuild/protobuf/dist/commonjs/reflect/names.d.ts +30 -0
  137. package/node_modules/@bufbuild/protobuf/dist/commonjs/reflect/names.js +115 -0
  138. package/node_modules/@bufbuild/protobuf/dist/commonjs/reflect/nested-types.d.ts +35 -0
  139. package/node_modules/@bufbuild/protobuf/dist/commonjs/reflect/nested-types.js +110 -0
  140. package/node_modules/@bufbuild/protobuf/dist/commonjs/reflect/path.d.ts +107 -0
  141. package/node_modules/@bufbuild/protobuf/dist/commonjs/reflect/path.js +376 -0
  142. package/node_modules/@bufbuild/protobuf/dist/commonjs/reflect/reflect-check.d.ts +45 -0
  143. package/node_modules/@bufbuild/protobuf/dist/commonjs/reflect/reflect-check.js +292 -0
  144. package/node_modules/@bufbuild/protobuf/dist/commonjs/reflect/reflect-types.d.ts +217 -0
  145. package/node_modules/@bufbuild/protobuf/dist/commonjs/reflect/reflect-types.js +16 -0
  146. package/node_modules/@bufbuild/protobuf/dist/commonjs/reflect/reflect.d.ts +43 -0
  147. package/node_modules/@bufbuild/protobuf/dist/commonjs/reflect/reflect.js +469 -0
  148. package/node_modules/@bufbuild/protobuf/dist/commonjs/reflect/scalar.d.ts +43 -0
  149. package/node_modules/@bufbuild/protobuf/dist/commonjs/reflect/scalar.js +129 -0
  150. package/node_modules/@bufbuild/protobuf/dist/commonjs/reflect/unsafe.d.ts +39 -0
  151. package/node_modules/@bufbuild/protobuf/dist/commonjs/reflect/unsafe.js +149 -0
  152. package/node_modules/@bufbuild/protobuf/dist/commonjs/registry.d.ts +98 -0
  153. package/node_modules/@bufbuild/protobuf/dist/commonjs/registry.js +954 -0
  154. package/node_modules/@bufbuild/protobuf/dist/commonjs/to-binary.d.ts +28 -0
  155. package/node_modules/@bufbuild/protobuf/dist/commonjs/to-binary.js +437 -0
  156. package/node_modules/@bufbuild/protobuf/dist/commonjs/to-json.d.ts +67 -0
  157. package/node_modules/@bufbuild/protobuf/dist/commonjs/to-json.js +625 -0
  158. package/node_modules/@bufbuild/protobuf/dist/commonjs/txtpb/from-text.d.ts +35 -0
  159. package/node_modules/@bufbuild/protobuf/dist/commonjs/txtpb/from-text.js +684 -0
  160. package/node_modules/@bufbuild/protobuf/dist/commonjs/txtpb/index.d.ts +4 -0
  161. package/node_modules/@bufbuild/protobuf/dist/commonjs/txtpb/index.js +21 -0
  162. package/node_modules/@bufbuild/protobuf/dist/commonjs/txtpb/is-group-like.d.ts +19 -0
  163. package/node_modules/@bufbuild/protobuf/dist/commonjs/txtpb/is-group-like.js +47 -0
  164. package/node_modules/@bufbuild/protobuf/dist/commonjs/txtpb/reader.d.ts +91 -0
  165. package/node_modules/@bufbuild/protobuf/dist/commonjs/txtpb/reader.js +481 -0
  166. package/node_modules/@bufbuild/protobuf/dist/commonjs/txtpb/to-text.d.ts +34 -0
  167. package/node_modules/@bufbuild/protobuf/dist/commonjs/txtpb/to-text.js +358 -0
  168. package/node_modules/@bufbuild/protobuf/dist/commonjs/txtpb/writer.d.ts +76 -0
  169. package/node_modules/@bufbuild/protobuf/dist/commonjs/txtpb/writer.js +220 -0
  170. package/node_modules/@bufbuild/protobuf/dist/commonjs/types.d.ts +135 -0
  171. package/node_modules/@bufbuild/protobuf/dist/commonjs/types.js +15 -0
  172. package/node_modules/@bufbuild/protobuf/dist/commonjs/unknown-enum.d.ts +10 -0
  173. package/node_modules/@bufbuild/protobuf/dist/commonjs/unknown-enum.js +26 -0
  174. package/node_modules/@bufbuild/protobuf/dist/commonjs/wire/base64-encoding.d.ts +25 -0
  175. package/node_modules/@bufbuild/protobuf/dist/commonjs/wire/base64-encoding.js +188 -0
  176. package/node_modules/@bufbuild/protobuf/dist/commonjs/wire/binary-encoding.d.ts +286 -0
  177. package/node_modules/@bufbuild/protobuf/dist/commonjs/wire/binary-encoding.js +726 -0
  178. package/node_modules/@bufbuild/protobuf/dist/commonjs/wire/index.d.ts +5 -0
  179. package/node_modules/@bufbuild/protobuf/dist/commonjs/wire/index.js +37 -0
  180. package/node_modules/@bufbuild/protobuf/dist/commonjs/wire/size-delimited.d.ts +69 -0
  181. package/node_modules/@bufbuild/protobuf/dist/commonjs/wire/size-delimited.js +191 -0
  182. package/node_modules/@bufbuild/protobuf/dist/commonjs/wire/text-encoding.d.ts +53 -0
  183. package/node_modules/@bufbuild/protobuf/dist/commonjs/wire/text-encoding.js +106 -0
  184. package/node_modules/@bufbuild/protobuf/dist/commonjs/wire/text-format.d.ts +13 -0
  185. package/node_modules/@bufbuild/protobuf/dist/commonjs/wire/text-format.js +199 -0
  186. package/node_modules/@bufbuild/protobuf/dist/commonjs/wire/varint.d.ts +70 -0
  187. package/node_modules/@bufbuild/protobuf/dist/commonjs/wire/varint.js +334 -0
  188. package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/any.d.ts +38 -0
  189. package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/any.js +75 -0
  190. package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/duration.d.ts +9 -0
  191. package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/duration.js +39 -0
  192. package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/gen/google/protobuf/any_pb.d.ts +238 -0
  193. package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/gen/google/protobuf/any_pb.js +27 -0
  194. package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/gen/google/protobuf/api_pb.d.ts +537 -0
  195. package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/gen/google/protobuf/api_pb.js +39 -0
  196. package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/gen/google/protobuf/compiler/plugin_pb.d.ts +490 -0
  197. package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/gen/google/protobuf/compiler/plugin_pb.js +68 -0
  198. package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/gen/google/protobuf/cpp_features_pb.d.ts +91 -0
  199. package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/gen/google/protobuf/cpp_features_pb.js +60 -0
  200. package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/gen/google/protobuf/descriptor_pb.d.ts +4143 -0
  201. package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/gen/google/protobuf/descriptor_pb.js +892 -0
  202. package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/gen/google/protobuf/duration_pb.d.ts +161 -0
  203. package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/gen/google/protobuf/duration_pb.js +27 -0
  204. package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/gen/google/protobuf/empty_pb.d.ts +39 -0
  205. package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/gen/google/protobuf/empty_pb.js +27 -0
  206. package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/gen/google/protobuf/field_mask_pb.d.ts +424 -0
  207. package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/gen/google/protobuf/field_mask_pb.js +27 -0
  208. package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/gen/google/protobuf/go_features_pb.d.ts +189 -0
  209. package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/gen/google/protobuf/go_features_pb.js +126 -0
  210. package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/gen/google/protobuf/java_features_pb.d.ts +194 -0
  211. package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/gen/google/protobuf/java_features_pb.js +106 -0
  212. package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/gen/google/protobuf/source_context_pb.d.ts +43 -0
  213. package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/gen/google/protobuf/source_context_pb.js +27 -0
  214. package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/gen/google/protobuf/struct_pb.d.ts +195 -0
  215. package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/gen/google/protobuf/struct_pb.js +59 -0
  216. package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/gen/google/protobuf/timestamp_pb.d.ts +222 -0
  217. package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/gen/google/protobuf/timestamp_pb.js +27 -0
  218. package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/gen/google/protobuf/type_pb.d.ts +722 -0
  219. package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/gen/google/protobuf/type_pb.js +242 -0
  220. package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/gen/google/protobuf/wrappers_pb.d.ts +330 -0
  221. package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/gen/google/protobuf/wrappers_pb.js +67 -0
  222. package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/index.d.ts +19 -0
  223. package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/index.js +48 -0
  224. package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/json.d.ts +28 -0
  225. package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/json.js +44 -0
  226. package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/timestamp.d.ts +21 -0
  227. package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/timestamp.js +57 -0
  228. package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/wrappers.d.ts +25 -0
  229. package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/wrappers.js +66 -0
  230. package/node_modules/@bufbuild/protobuf/dist/esm/clone.d.ts +6 -0
  231. package/node_modules/@bufbuild/protobuf/dist/esm/clone.js +63 -0
  232. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/boot.d.ts +1 -0
  233. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/boot.js +14 -0
  234. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/enum.d.ts +10 -0
  235. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/enum.js +26 -0
  236. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/extension.d.ts +9 -0
  237. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/extension.js +25 -0
  238. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/file.d.ts +1 -0
  239. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/file.js +14 -0
  240. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/index.d.ts +10 -0
  241. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/index.js +23 -0
  242. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/message.d.ts +10 -0
  243. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/message.js +21 -0
  244. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/service.d.ts +8 -0
  245. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/service.js +24 -0
  246. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/symbols.d.ts +140 -0
  247. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/symbols.js +40 -0
  248. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/types.d.ts +79 -0
  249. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/types.js +14 -0
  250. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/boot.d.ts +63 -0
  251. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/boot.js +101 -0
  252. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/embed.d.ts +43 -0
  253. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/embed.js +239 -0
  254. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/enum.d.ts +29 -0
  255. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/enum.js +53 -0
  256. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/extension.d.ts +9 -0
  257. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/extension.js +25 -0
  258. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/file.d.ts +7 -0
  259. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/file.js +32 -0
  260. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/index.d.ts +10 -0
  261. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/index.js +23 -0
  262. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/message.d.ts +15 -0
  263. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/message.js +21 -0
  264. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/restore-json-names.d.ts +5 -0
  265. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/restore-json-names.js +26 -0
  266. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/scalar.d.ts +9 -0
  267. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/scalar.js +63 -0
  268. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/service.d.ts +8 -0
  269. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/service.js +24 -0
  270. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/symbols.d.ts +145 -0
  271. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/symbols.js +71 -0
  272. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/types.d.ts +85 -0
  273. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/types.js +14 -0
  274. package/node_modules/@bufbuild/protobuf/dist/esm/create.d.ts +9 -0
  275. package/node_modules/@bufbuild/protobuf/dist/esm/create.js +293 -0
  276. package/node_modules/@bufbuild/protobuf/dist/esm/descriptors.d.ts +634 -0
  277. package/node_modules/@bufbuild/protobuf/dist/esm/descriptors.js +50 -0
  278. package/node_modules/@bufbuild/protobuf/dist/esm/equals.d.ts +46 -0
  279. package/node_modules/@bufbuild/protobuf/dist/esm/equals.js +206 -0
  280. package/node_modules/@bufbuild/protobuf/dist/esm/extensions.d.ts +60 -0
  281. package/node_modules/@bufbuild/protobuf/dist/esm/extensions.js +159 -0
  282. package/node_modules/@bufbuild/protobuf/dist/esm/fields.d.ts +23 -0
  283. package/node_modules/@bufbuild/protobuf/dist/esm/fields.js +41 -0
  284. package/node_modules/@bufbuild/protobuf/dist/esm/from-binary.d.ts +48 -0
  285. package/node_modules/@bufbuild/protobuf/dist/esm/from-binary.js +409 -0
  286. package/node_modules/@bufbuild/protobuf/dist/esm/from-json.d.ts +73 -0
  287. package/node_modules/@bufbuild/protobuf/dist/esm/from-json.js +1029 -0
  288. package/node_modules/@bufbuild/protobuf/dist/esm/index.d.ts +19 -0
  289. package/node_modules/@bufbuild/protobuf/dist/esm/index.js +29 -0
  290. package/node_modules/@bufbuild/protobuf/dist/esm/is-message.d.ts +7 -0
  291. package/node_modules/@bufbuild/protobuf/dist/esm/is-message.js +30 -0
  292. package/node_modules/@bufbuild/protobuf/dist/esm/json-value.d.ts +16 -0
  293. package/node_modules/@bufbuild/protobuf/dist/esm/json-value.js +14 -0
  294. package/node_modules/@bufbuild/protobuf/dist/esm/merge.d.ts +13 -0
  295. package/node_modules/@bufbuild/protobuf/dist/esm/merge.js +67 -0
  296. package/node_modules/@bufbuild/protobuf/dist/esm/package.json +4 -0
  297. package/node_modules/@bufbuild/protobuf/dist/esm/proto-int64.d.ts +98 -0
  298. package/node_modules/@bufbuild/protobuf/dist/esm/proto-int64.js +128 -0
  299. package/node_modules/@bufbuild/protobuf/dist/esm/reflect/error.d.ts +9 -0
  300. package/node_modules/@bufbuild/protobuf/dist/esm/reflect/error.js +31 -0
  301. package/node_modules/@bufbuild/protobuf/dist/esm/reflect/guard.d.ts +20 -0
  302. package/node_modules/@bufbuild/protobuf/dist/esm/reflect/guard.js +71 -0
  303. package/node_modules/@bufbuild/protobuf/dist/esm/reflect/index.d.ts +8 -0
  304. package/node_modules/@bufbuild/protobuf/dist/esm/reflect/index.js +21 -0
  305. package/node_modules/@bufbuild/protobuf/dist/esm/reflect/message.d.ts +49 -0
  306. package/node_modules/@bufbuild/protobuf/dist/esm/reflect/message.js +152 -0
  307. package/node_modules/@bufbuild/protobuf/dist/esm/reflect/names.d.ts +30 -0
  308. package/node_modules/@bufbuild/protobuf/dist/esm/reflect/names.js +109 -0
  309. package/node_modules/@bufbuild/protobuf/dist/esm/reflect/nested-types.d.ts +35 -0
  310. package/node_modules/@bufbuild/protobuf/dist/esm/reflect/nested-types.js +105 -0
  311. package/node_modules/@bufbuild/protobuf/dist/esm/reflect/path.d.ts +107 -0
  312. package/node_modules/@bufbuild/protobuf/dist/esm/reflect/path.js +369 -0
  313. package/node_modules/@bufbuild/protobuf/dist/esm/reflect/reflect-check.d.ts +45 -0
  314. package/node_modules/@bufbuild/protobuf/dist/esm/reflect/reflect-check.js +284 -0
  315. package/node_modules/@bufbuild/protobuf/dist/esm/reflect/reflect-types.d.ts +217 -0
  316. package/node_modules/@bufbuild/protobuf/dist/esm/reflect/reflect-types.js +14 -0
  317. package/node_modules/@bufbuild/protobuf/dist/esm/reflect/reflect.d.ts +43 -0
  318. package/node_modules/@bufbuild/protobuf/dist/esm/reflect/reflect.js +464 -0
  319. package/node_modules/@bufbuild/protobuf/dist/esm/reflect/scalar.d.ts +43 -0
  320. package/node_modules/@bufbuild/protobuf/dist/esm/reflect/scalar.js +124 -0
  321. package/node_modules/@bufbuild/protobuf/dist/esm/reflect/unsafe.d.ts +39 -0
  322. package/node_modules/@bufbuild/protobuf/dist/esm/reflect/unsafe.js +140 -0
  323. package/node_modules/@bufbuild/protobuf/dist/esm/registry.d.ts +98 -0
  324. package/node_modules/@bufbuild/protobuf/dist/esm/registry.js +948 -0
  325. package/node_modules/@bufbuild/protobuf/dist/esm/to-binary.d.ts +28 -0
  326. package/node_modules/@bufbuild/protobuf/dist/esm/to-binary.js +433 -0
  327. package/node_modules/@bufbuild/protobuf/dist/esm/to-json.d.ts +67 -0
  328. package/node_modules/@bufbuild/protobuf/dist/esm/to-json.js +620 -0
  329. package/node_modules/@bufbuild/protobuf/dist/esm/txtpb/from-text.d.ts +35 -0
  330. package/node_modules/@bufbuild/protobuf/dist/esm/txtpb/from-text.js +680 -0
  331. package/node_modules/@bufbuild/protobuf/dist/esm/txtpb/index.d.ts +4 -0
  332. package/node_modules/@bufbuild/protobuf/dist/esm/txtpb/index.js +15 -0
  333. package/node_modules/@bufbuild/protobuf/dist/esm/txtpb/is-group-like.d.ts +19 -0
  334. package/node_modules/@bufbuild/protobuf/dist/esm/txtpb/is-group-like.js +44 -0
  335. package/node_modules/@bufbuild/protobuf/dist/esm/txtpb/reader.d.ts +91 -0
  336. package/node_modules/@bufbuild/protobuf/dist/esm/txtpb/reader.js +477 -0
  337. package/node_modules/@bufbuild/protobuf/dist/esm/txtpb/to-text.d.ts +34 -0
  338. package/node_modules/@bufbuild/protobuf/dist/esm/txtpb/to-text.js +355 -0
  339. package/node_modules/@bufbuild/protobuf/dist/esm/txtpb/writer.d.ts +76 -0
  340. package/node_modules/@bufbuild/protobuf/dist/esm/txtpb/writer.js +214 -0
  341. package/node_modules/@bufbuild/protobuf/dist/esm/types.d.ts +135 -0
  342. package/node_modules/@bufbuild/protobuf/dist/esm/types.js +14 -0
  343. package/node_modules/@bufbuild/protobuf/dist/esm/unknown-enum.d.ts +10 -0
  344. package/node_modules/@bufbuild/protobuf/dist/esm/unknown-enum.js +23 -0
  345. package/node_modules/@bufbuild/protobuf/dist/esm/wire/base64-encoding.d.ts +25 -0
  346. package/node_modules/@bufbuild/protobuf/dist/esm/wire/base64-encoding.js +184 -0
  347. package/node_modules/@bufbuild/protobuf/dist/esm/wire/binary-encoding.d.ts +286 -0
  348. package/node_modules/@bufbuild/protobuf/dist/esm/wire/binary-encoding.js +721 -0
  349. package/node_modules/@bufbuild/protobuf/dist/esm/wire/index.d.ts +5 -0
  350. package/node_modules/@bufbuild/protobuf/dist/esm/wire/index.js +18 -0
  351. package/node_modules/@bufbuild/protobuf/dist/esm/wire/size-delimited.d.ts +69 -0
  352. package/node_modules/@bufbuild/protobuf/dist/esm/wire/size-delimited.js +186 -0
  353. package/node_modules/@bufbuild/protobuf/dist/esm/wire/text-encoding.d.ts +53 -0
  354. package/node_modules/@bufbuild/protobuf/dist/esm/wire/text-encoding.js +101 -0
  355. package/node_modules/@bufbuild/protobuf/dist/esm/wire/text-format.d.ts +13 -0
  356. package/node_modules/@bufbuild/protobuf/dist/esm/wire/text-format.js +195 -0
  357. package/node_modules/@bufbuild/protobuf/dist/esm/wire/varint.d.ts +70 -0
  358. package/node_modules/@bufbuild/protobuf/dist/esm/wire/varint.js +325 -0
  359. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/any.d.ts +38 -0
  360. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/any.js +69 -0
  361. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/duration.d.ts +9 -0
  362. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/duration.js +35 -0
  363. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/any_pb.d.ts +238 -0
  364. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/any_pb.js +24 -0
  365. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/api_pb.d.ts +537 -0
  366. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/api_pb.js +36 -0
  367. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/compiler/plugin_pb.d.ts +490 -0
  368. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/compiler/plugin_pb.js +65 -0
  369. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/cpp_features_pb.d.ts +91 -0
  370. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/cpp_features_pb.js +57 -0
  371. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/descriptor_pb.d.ts +4143 -0
  372. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/descriptor_pb.js +888 -0
  373. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/duration_pb.d.ts +161 -0
  374. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/duration_pb.js +24 -0
  375. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/empty_pb.d.ts +39 -0
  376. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/empty_pb.js +24 -0
  377. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/field_mask_pb.d.ts +424 -0
  378. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/field_mask_pb.js +24 -0
  379. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/go_features_pb.d.ts +189 -0
  380. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/go_features_pb.js +123 -0
  381. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/java_features_pb.d.ts +194 -0
  382. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/java_features_pb.js +103 -0
  383. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/source_context_pb.d.ts +43 -0
  384. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/source_context_pb.js +24 -0
  385. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/struct_pb.d.ts +195 -0
  386. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/struct_pb.js +56 -0
  387. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/timestamp_pb.d.ts +222 -0
  388. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/timestamp_pb.js +24 -0
  389. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/type_pb.d.ts +722 -0
  390. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/type_pb.js +239 -0
  391. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/wrappers_pb.d.ts +330 -0
  392. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/wrappers_pb.js +64 -0
  393. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/index.d.ts +19 -0
  394. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/index.js +32 -0
  395. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/json.d.ts +28 -0
  396. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/json.js +41 -0
  397. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/timestamp.d.ts +21 -0
  398. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/timestamp.js +50 -0
  399. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/wrappers.d.ts +25 -0
  400. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/wrappers.js +61 -0
  401. package/node_modules/@bufbuild/protobuf/package.json +147 -0
  402. package/node_modules/@connectrpc/connect/README.md +62 -0
  403. package/node_modules/@connectrpc/connect/dist/cjs/any-client.d.ts +19 -0
  404. package/node_modules/@connectrpc/connect/dist/cjs/any-client.js +33 -0
  405. package/node_modules/@connectrpc/connect/dist/cjs/call-options.d.ts +34 -0
  406. package/node_modules/@connectrpc/connect/dist/cjs/call-options.js +15 -0
  407. package/node_modules/@connectrpc/connect/dist/cjs/callback-client.d.ts +31 -0
  408. package/node_modules/@connectrpc/connect/dist/cjs/callback-client.js +116 -0
  409. package/node_modules/@connectrpc/connect/dist/cjs/code.d.ts +75 -0
  410. package/node_modules/@connectrpc/connect/dist/cjs/code.js +92 -0
  411. package/node_modules/@connectrpc/connect/dist/cjs/connect-error.d.ts +104 -0
  412. package/node_modules/@connectrpc/connect/dist/cjs/connect-error.js +141 -0
  413. package/node_modules/@connectrpc/connect/dist/cjs/context-values.d.ts +34 -0
  414. package/node_modules/@connectrpc/connect/dist/cjs/context-values.js +41 -0
  415. package/node_modules/@connectrpc/connect/dist/cjs/cors.d.ts +45 -0
  416. package/node_modules/@connectrpc/connect/dist/cjs/cors.js +82 -0
  417. package/node_modules/@connectrpc/connect/dist/cjs/http-headers.d.ts +37 -0
  418. package/node_modules/@connectrpc/connect/dist/cjs/http-headers.js +63 -0
  419. package/node_modules/@connectrpc/connect/dist/cjs/implementation.d.ts +159 -0
  420. package/node_modules/@connectrpc/connect/dist/cjs/implementation.js +78 -0
  421. package/node_modules/@connectrpc/connect/dist/cjs/index.d.ts +22 -0
  422. package/node_modules/@connectrpc/connect/dist/cjs/index.js +46 -0
  423. package/node_modules/@connectrpc/connect/dist/cjs/interceptor.d.ts +170 -0
  424. package/node_modules/@connectrpc/connect/dist/cjs/interceptor.js +30 -0
  425. package/node_modules/@connectrpc/connect/dist/cjs/package.json +1 -0
  426. package/node_modules/@connectrpc/connect/dist/cjs/promise-client.d.ts +40 -0
  427. package/node_modules/@connectrpc/connect/dist/cjs/promise-client.js +135 -0
  428. package/node_modules/@connectrpc/connect/dist/cjs/protocol/async-iterable.d.ts +527 -0
  429. package/node_modules/@connectrpc/connect/dist/cjs/protocol/async-iterable.js +913 -0
  430. package/node_modules/@connectrpc/connect/dist/cjs/protocol/compression.d.ts +48 -0
  431. package/node_modules/@connectrpc/connect/dist/cjs/protocol/compression.js +75 -0
  432. package/node_modules/@connectrpc/connect/dist/cjs/protocol/content-type-matcher.d.ts +16 -0
  433. package/node_modules/@connectrpc/connect/dist/cjs/protocol/content-type-matcher.js +43 -0
  434. package/node_modules/@connectrpc/connect/dist/cjs/protocol/create-method-url.d.ts +17 -0
  435. package/node_modules/@connectrpc/connect/dist/cjs/protocol/create-method-url.js +36 -0
  436. package/node_modules/@connectrpc/connect/dist/cjs/protocol/envelope.d.ts +90 -0
  437. package/node_modules/@connectrpc/connect/dist/cjs/protocol/envelope.js +214 -0
  438. package/node_modules/@connectrpc/connect/dist/cjs/protocol/index.d.ts +25 -0
  439. package/node_modules/@connectrpc/connect/dist/cjs/protocol/index.js +95 -0
  440. package/node_modules/@connectrpc/connect/dist/cjs/protocol/invoke-implementation.d.ts +33 -0
  441. package/node_modules/@connectrpc/connect/dist/cjs/protocol/invoke-implementation.js +178 -0
  442. package/node_modules/@connectrpc/connect/dist/cjs/protocol/limit-io.d.ts +24 -0
  443. package/node_modules/@connectrpc/connect/dist/cjs/protocol/limit-io.js +80 -0
  444. package/node_modules/@connectrpc/connect/dist/cjs/protocol/normalize.d.ts +11 -0
  445. package/node_modules/@connectrpc/connect/dist/cjs/protocol/normalize.js +55 -0
  446. package/node_modules/@connectrpc/connect/dist/cjs/protocol/protocol-handler-factory.d.ts +18 -0
  447. package/node_modules/@connectrpc/connect/dist/cjs/protocol/protocol-handler-factory.js +15 -0
  448. package/node_modules/@connectrpc/connect/dist/cjs/protocol/protocol-headers.d.ts +9 -0
  449. package/node_modules/@connectrpc/connect/dist/cjs/protocol/protocol-headers.js +67 -0
  450. package/node_modules/@connectrpc/connect/dist/cjs/protocol/run-call.d.ts +45 -0
  451. package/node_modules/@connectrpc/connect/dist/cjs/protocol/run-call.js +125 -0
  452. package/node_modules/@connectrpc/connect/dist/cjs/protocol/serialization.d.ts +104 -0
  453. package/node_modules/@connectrpc/connect/dist/cjs/protocol/serialization.js +149 -0
  454. package/node_modules/@connectrpc/connect/dist/cjs/protocol/signals.d.ts +36 -0
  455. package/node_modules/@connectrpc/connect/dist/cjs/protocol/signals.js +100 -0
  456. package/node_modules/@connectrpc/connect/dist/cjs/protocol/transport-options.d.ts +98 -0
  457. package/node_modules/@connectrpc/connect/dist/cjs/protocol/transport-options.js +15 -0
  458. package/node_modules/@connectrpc/connect/dist/cjs/protocol/universal-fetch.d.ts +35 -0
  459. package/node_modules/@connectrpc/connect/dist/cjs/protocol/universal-fetch.js +150 -0
  460. package/node_modules/@connectrpc/connect/dist/cjs/protocol/universal-handler-client.d.ts +7 -0
  461. package/node_modules/@connectrpc/connect/dist/cjs/protocol/universal-handler-client.js +88 -0
  462. package/node_modules/@connectrpc/connect/dist/cjs/protocol/universal-handler.d.ts +167 -0
  463. package/node_modules/@connectrpc/connect/dist/cjs/protocol/universal-handler.js +130 -0
  464. package/node_modules/@connectrpc/connect/dist/cjs/protocol/universal.d.ts +102 -0
  465. package/node_modules/@connectrpc/connect/dist/cjs/protocol/universal.js +78 -0
  466. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/code-string.d.ts +16 -0
  467. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/code-string.js +52 -0
  468. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/content-type.d.ts +40 -0
  469. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/content-type.js +71 -0
  470. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/end-stream.d.ts +44 -0
  471. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/end-stream.js +137 -0
  472. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/error-json.d.ts +36 -0
  473. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/error-json.js +166 -0
  474. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/get-request.d.ts +6 -0
  475. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/get-request.js +66 -0
  476. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/handler-factory.d.ts +6 -0
  477. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/handler-factory.js +296 -0
  478. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/headers.d.ts +16 -0
  479. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/headers.js +32 -0
  480. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/http-status.d.ts +15 -0
  481. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/http-status.js +90 -0
  482. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/index.d.ts +16 -0
  483. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/index.js +81 -0
  484. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/parse-timeout.d.ts +13 -0
  485. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/parse-timeout.js +44 -0
  486. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/query-params.d.ts +8 -0
  487. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/query-params.js +24 -0
  488. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/request-header.d.ts +19 -0
  489. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/request-header.js +70 -0
  490. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/trailer-mux.d.ts +19 -0
  491. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/trailer-mux.js +53 -0
  492. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/transport.d.ts +6 -0
  493. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/transport.js +210 -0
  494. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/validate-response.d.ts +30 -0
  495. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/validate-response.js +71 -0
  496. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/version.d.ts +20 -0
  497. package/node_modules/@connectrpc/connect/dist/cjs/protocol-connect/version.js +58 -0
  498. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc/content-type.d.ts +16 -0
  499. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc/content-type.js +38 -0
  500. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc/gen/status_pb.d.ts +91 -0
  501. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc/gen/status_pb.js +27 -0
  502. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc/handler-factory.d.ts +6 -0
  503. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc/handler-factory.js +124 -0
  504. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc/headers.d.ts +13 -0
  505. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc/headers.js +29 -0
  506. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc/http-status.d.ts +8 -0
  507. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc/http-status.js +46 -0
  508. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc/index.d.ts +10 -0
  509. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc/index.js +61 -0
  510. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc/parse-timeout.d.ts +13 -0
  511. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc/parse-timeout.js +53 -0
  512. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc/request-header.d.ts +13 -0
  513. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc/request-header.js +56 -0
  514. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc/trailer-status.d.ts +28 -0
  515. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc/trailer-status.js +118 -0
  516. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc/transport.d.ts +6 -0
  517. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc/transport.js +185 -0
  518. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc/validate-response.d.ts +33 -0
  519. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc/validate-response.js +75 -0
  520. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc/validate-trailer.d.ts +13 -0
  521. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc/validate-trailer.js +44 -0
  522. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc-web/content-type.d.ts +19 -0
  523. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc-web/content-type.js +41 -0
  524. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc-web/handler-factory.d.ts +6 -0
  525. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc-web/handler-factory.js +130 -0
  526. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc-web/headers.d.ts +20 -0
  527. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc-web/headers.js +44 -0
  528. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc-web/index.d.ts +8 -0
  529. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc-web/index.js +61 -0
  530. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc-web/request-header.d.ts +13 -0
  531. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc-web/request-header.js +59 -0
  532. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc-web/trailer.d.ts +27 -0
  533. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc-web/trailer.js +71 -0
  534. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc-web/transport.d.ts +6 -0
  535. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc-web/transport.js +234 -0
  536. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc-web/validate-response.d.ts +34 -0
  537. package/node_modules/@connectrpc/connect/dist/cjs/protocol-grpc-web/validate-response.js +73 -0
  538. package/node_modules/@connectrpc/connect/dist/cjs/router-transport.d.ts +13 -0
  539. package/node_modules/@connectrpc/connect/dist/cjs/router-transport.js +32 -0
  540. package/node_modules/@connectrpc/connect/dist/cjs/router.d.ts +81 -0
  541. package/node_modules/@connectrpc/connect/dist/cjs/router.js +68 -0
  542. package/node_modules/@connectrpc/connect/dist/cjs/transport.d.ts +20 -0
  543. package/node_modules/@connectrpc/connect/dist/cjs/transport.js +15 -0
  544. package/node_modules/@connectrpc/connect/dist/esm/any-client.d.ts +19 -0
  545. package/node_modules/@connectrpc/connect/dist/esm/any-client.js +30 -0
  546. package/node_modules/@connectrpc/connect/dist/esm/call-options.d.ts +34 -0
  547. package/node_modules/@connectrpc/connect/dist/esm/call-options.js +14 -0
  548. package/node_modules/@connectrpc/connect/dist/esm/callback-client.d.ts +31 -0
  549. package/node_modules/@connectrpc/connect/dist/esm/callback-client.js +113 -0
  550. package/node_modules/@connectrpc/connect/dist/esm/code.d.ts +75 -0
  551. package/node_modules/@connectrpc/connect/dist/esm/code.js +89 -0
  552. package/node_modules/@connectrpc/connect/dist/esm/connect-error.d.ts +104 -0
  553. package/node_modules/@connectrpc/connect/dist/esm/connect-error.js +137 -0
  554. package/node_modules/@connectrpc/connect/dist/esm/context-values.d.ts +34 -0
  555. package/node_modules/@connectrpc/connect/dist/esm/context-values.js +37 -0
  556. package/node_modules/@connectrpc/connect/dist/esm/cors.d.ts +45 -0
  557. package/node_modules/@connectrpc/connect/dist/esm/cors.js +79 -0
  558. package/node_modules/@connectrpc/connect/dist/esm/http-headers.d.ts +37 -0
  559. package/node_modules/@connectrpc/connect/dist/esm/http-headers.js +58 -0
  560. package/node_modules/@connectrpc/connect/dist/esm/implementation.d.ts +159 -0
  561. package/node_modules/@connectrpc/connect/dist/esm/implementation.js +73 -0
  562. package/node_modules/@connectrpc/connect/dist/esm/index.d.ts +22 -0
  563. package/node_modules/@connectrpc/connect/dist/esm/index.js +27 -0
  564. package/node_modules/@connectrpc/connect/dist/esm/interceptor.d.ts +170 -0
  565. package/node_modules/@connectrpc/connect/dist/esm/interceptor.js +27 -0
  566. package/node_modules/@connectrpc/connect/dist/esm/promise-client.d.ts +40 -0
  567. package/node_modules/@connectrpc/connect/dist/esm/promise-client.js +128 -0
  568. package/node_modules/@connectrpc/connect/dist/esm/protocol/async-iterable.d.ts +527 -0
  569. package/node_modules/@connectrpc/connect/dist/esm/protocol/async-iterable.js +891 -0
  570. package/node_modules/@connectrpc/connect/dist/esm/protocol/compression.d.ts +48 -0
  571. package/node_modules/@connectrpc/connect/dist/esm/protocol/compression.js +71 -0
  572. package/node_modules/@connectrpc/connect/dist/esm/protocol/content-type-matcher.d.ts +16 -0
  573. package/node_modules/@connectrpc/connect/dist/esm/protocol/content-type-matcher.js +40 -0
  574. package/node_modules/@connectrpc/connect/dist/esm/protocol/create-method-url.d.ts +17 -0
  575. package/node_modules/@connectrpc/connect/dist/esm/protocol/create-method-url.js +33 -0
  576. package/node_modules/@connectrpc/connect/dist/esm/protocol/envelope.d.ts +90 -0
  577. package/node_modules/@connectrpc/connect/dist/esm/protocol/envelope.js +206 -0
  578. package/node_modules/@connectrpc/connect/dist/esm/protocol/index.d.ts +25 -0
  579. package/node_modules/@connectrpc/connect/dist/esm/protocol/index.js +33 -0
  580. package/node_modules/@connectrpc/connect/dist/esm/protocol/invoke-implementation.d.ts +33 -0
  581. package/node_modules/@connectrpc/connect/dist/esm/protocol/invoke-implementation.js +173 -0
  582. package/node_modules/@connectrpc/connect/dist/esm/protocol/limit-io.d.ts +24 -0
  583. package/node_modules/@connectrpc/connect/dist/esm/protocol/limit-io.js +75 -0
  584. package/node_modules/@connectrpc/connect/dist/esm/protocol/normalize.d.ts +11 -0
  585. package/node_modules/@connectrpc/connect/dist/esm/protocol/normalize.js +51 -0
  586. package/node_modules/@connectrpc/connect/dist/esm/protocol/protocol-handler-factory.d.ts +18 -0
  587. package/node_modules/@connectrpc/connect/dist/esm/protocol/protocol-handler-factory.js +14 -0
  588. package/node_modules/@connectrpc/connect/dist/esm/protocol/protocol-headers.d.ts +9 -0
  589. package/node_modules/@connectrpc/connect/dist/esm/protocol/protocol-headers.js +64 -0
  590. package/node_modules/@connectrpc/connect/dist/esm/protocol/run-call.d.ts +45 -0
  591. package/node_modules/@connectrpc/connect/dist/esm/protocol/run-call.js +121 -0
  592. package/node_modules/@connectrpc/connect/dist/esm/protocol/serialization.d.ts +104 -0
  593. package/node_modules/@connectrpc/connect/dist/esm/protocol/serialization.js +141 -0
  594. package/node_modules/@connectrpc/connect/dist/esm/protocol/signals.d.ts +36 -0
  595. package/node_modules/@connectrpc/connect/dist/esm/protocol/signals.js +95 -0
  596. package/node_modules/@connectrpc/connect/dist/esm/protocol/transport-options.d.ts +98 -0
  597. package/node_modules/@connectrpc/connect/dist/esm/protocol/transport-options.js +14 -0
  598. package/node_modules/@connectrpc/connect/dist/esm/protocol/universal-fetch.d.ts +35 -0
  599. package/node_modules/@connectrpc/connect/dist/esm/protocol/universal-fetch.js +142 -0
  600. package/node_modules/@connectrpc/connect/dist/esm/protocol/universal-handler-client.d.ts +7 -0
  601. package/node_modules/@connectrpc/connect/dist/esm/protocol/universal-handler-client.js +85 -0
  602. package/node_modules/@connectrpc/connect/dist/esm/protocol/universal-handler.d.ts +167 -0
  603. package/node_modules/@connectrpc/connect/dist/esm/protocol/universal-handler.js +124 -0
  604. package/node_modules/@connectrpc/connect/dist/esm/protocol/universal.d.ts +102 -0
  605. package/node_modules/@connectrpc/connect/dist/esm/protocol/universal.js +74 -0
  606. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/code-string.d.ts +16 -0
  607. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/code-string.js +48 -0
  608. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/content-type.d.ts +40 -0
  609. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/content-type.js +66 -0
  610. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/end-stream.d.ts +44 -0
  611. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/end-stream.js +131 -0
  612. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/error-json.d.ts +36 -0
  613. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/error-json.js +160 -0
  614. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/get-request.d.ts +6 -0
  615. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/get-request.js +63 -0
  616. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/handler-factory.d.ts +6 -0
  617. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/handler-factory.js +293 -0
  618. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/headers.d.ts +16 -0
  619. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/headers.js +29 -0
  620. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/http-status.d.ts +15 -0
  621. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/http-status.js +86 -0
  622. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/index.d.ts +16 -0
  623. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/index.js +33 -0
  624. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/parse-timeout.d.ts +13 -0
  625. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/parse-timeout.js +41 -0
  626. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/query-params.d.ts +8 -0
  627. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/query-params.js +21 -0
  628. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/request-header.d.ts +19 -0
  629. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/request-header.js +66 -0
  630. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/trailer-mux.d.ts +19 -0
  631. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/trailer-mux.js +49 -0
  632. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/transport.d.ts +6 -0
  633. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/transport.js +207 -0
  634. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/validate-response.d.ts +30 -0
  635. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/validate-response.js +67 -0
  636. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/version.d.ts +20 -0
  637. package/node_modules/@connectrpc/connect/dist/esm/protocol-connect/version.js +53 -0
  638. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc/content-type.d.ts +16 -0
  639. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc/content-type.js +34 -0
  640. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc/gen/status_pb.d.ts +91 -0
  641. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc/gen/status_pb.js +24 -0
  642. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc/handler-factory.d.ts +6 -0
  643. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc/handler-factory.js +121 -0
  644. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc/headers.d.ts +13 -0
  645. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc/headers.js +26 -0
  646. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc/http-status.d.ts +8 -0
  647. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc/http-status.js +43 -0
  648. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc/index.d.ts +10 -0
  649. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc/index.js +28 -0
  650. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc/parse-timeout.d.ts +13 -0
  651. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc/parse-timeout.js +50 -0
  652. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc/request-header.d.ts +13 -0
  653. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc/request-header.js +52 -0
  654. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc/trailer-status.d.ts +28 -0
  655. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc/trailer-status.js +113 -0
  656. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc/transport.d.ts +6 -0
  657. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc/transport.js +182 -0
  658. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc/validate-response.d.ts +33 -0
  659. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc/validate-response.js +71 -0
  660. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc/validate-trailer.d.ts +13 -0
  661. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc/validate-trailer.js +41 -0
  662. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc-web/content-type.d.ts +19 -0
  663. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc-web/content-type.js +37 -0
  664. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc-web/handler-factory.d.ts +6 -0
  665. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc-web/handler-factory.js +127 -0
  666. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc-web/headers.d.ts +20 -0
  667. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc-web/headers.js +33 -0
  668. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc-web/index.d.ts +8 -0
  669. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc-web/index.js +26 -0
  670. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc-web/request-header.d.ts +13 -0
  671. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc-web/request-header.js +55 -0
  672. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc-web/trailer.d.ts +27 -0
  673. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc-web/trailer.js +65 -0
  674. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc-web/transport.d.ts +6 -0
  675. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc-web/transport.js +231 -0
  676. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc-web/validate-response.d.ts +34 -0
  677. package/node_modules/@connectrpc/connect/dist/esm/protocol-grpc-web/validate-response.js +69 -0
  678. package/node_modules/@connectrpc/connect/dist/esm/router-transport.d.ts +13 -0
  679. package/node_modules/@connectrpc/connect/dist/esm/router-transport.js +29 -0
  680. package/node_modules/@connectrpc/connect/dist/esm/router.d.ts +81 -0
  681. package/node_modules/@connectrpc/connect/dist/esm/router.js +65 -0
  682. package/node_modules/@connectrpc/connect/dist/esm/transport.d.ts +20 -0
  683. package/node_modules/@connectrpc/connect/dist/esm/transport.js +14 -0
  684. package/node_modules/@connectrpc/connect/package.json +67 -0
  685. package/node_modules/@connectrpc/connect-node/README.md +144 -0
  686. package/node_modules/@connectrpc/connect-node/buf.gen.yaml +10 -0
  687. package/node_modules/@connectrpc/connect-node/dist/cjs/compression.d.ts +15 -0
  688. package/node_modules/@connectrpc/connect-node/dist/cjs/compression.js +96 -0
  689. package/node_modules/@connectrpc/connect-node/dist/cjs/connect-node-adapter.d.ts +42 -0
  690. package/node_modules/@connectrpc/connect-node/dist/cjs/connect-node-adapter.js +60 -0
  691. package/node_modules/@connectrpc/connect-node/dist/cjs/connect-transport.d.ts +100 -0
  692. package/node_modules/@connectrpc/connect-node/dist/cjs/connect-transport.js +25 -0
  693. package/node_modules/@connectrpc/connect-node/dist/cjs/grpc-transport.d.ts +95 -0
  694. package/node_modules/@connectrpc/connect-node/dist/cjs/grpc-transport.js +24 -0
  695. package/node_modules/@connectrpc/connect-node/dist/cjs/grpc-web-transport.d.ts +96 -0
  696. package/node_modules/@connectrpc/connect-node/dist/cjs/grpc-web-transport.js +25 -0
  697. package/node_modules/@connectrpc/connect-node/dist/cjs/http2-session-manager.d.ts +146 -0
  698. package/node_modules/@connectrpc/connect-node/dist/cjs/http2-session-manager.js +543 -0
  699. package/node_modules/@connectrpc/connect-node/dist/cjs/index.d.ts +14 -0
  700. package/node_modules/@connectrpc/connect-node/dist/cjs/index.js +34 -0
  701. package/node_modules/@connectrpc/connect-node/dist/cjs/node-error.d.ts +45 -0
  702. package/node_modules/@connectrpc/connect-node/dist/cjs/node-error.js +153 -0
  703. package/node_modules/@connectrpc/connect-node/dist/cjs/node-transport-options.d.ts +100 -0
  704. package/node_modules/@connectrpc/connect-node/dist/cjs/node-transport-options.js +58 -0
  705. package/node_modules/@connectrpc/connect-node/dist/cjs/node-universal-client.d.ts +54 -0
  706. package/node_modules/@connectrpc/connect-node/dist/cjs/node-universal-client.js +347 -0
  707. package/node_modules/@connectrpc/connect-node/dist/cjs/node-universal-handler.d.ts +42 -0
  708. package/node_modules/@connectrpc/connect-node/dist/cjs/node-universal-handler.js +225 -0
  709. package/node_modules/@connectrpc/connect-node/dist/cjs/node-universal-header.d.ts +20 -0
  710. package/node_modules/@connectrpc/connect-node/dist/cjs/node-universal-header.js +117 -0
  711. package/node_modules/@connectrpc/connect-node/dist/cjs/package.json +1 -0
  712. package/node_modules/@connectrpc/connect-node/dist/esm/compression.d.ts +15 -0
  713. package/node_modules/@connectrpc/connect-node/dist/esm/compression.js +93 -0
  714. package/node_modules/@connectrpc/connect-node/dist/esm/connect-node-adapter.d.ts +42 -0
  715. package/node_modules/@connectrpc/connect-node/dist/esm/connect-node-adapter.js +57 -0
  716. package/node_modules/@connectrpc/connect-node/dist/esm/connect-transport.d.ts +100 -0
  717. package/node_modules/@connectrpc/connect-node/dist/esm/connect-transport.js +22 -0
  718. package/node_modules/@connectrpc/connect-node/dist/esm/grpc-transport.d.ts +95 -0
  719. package/node_modules/@connectrpc/connect-node/dist/esm/grpc-transport.js +21 -0
  720. package/node_modules/@connectrpc/connect-node/dist/esm/grpc-web-transport.d.ts +96 -0
  721. package/node_modules/@connectrpc/connect-node/dist/esm/grpc-web-transport.js +22 -0
  722. package/node_modules/@connectrpc/connect-node/dist/esm/http2-session-manager.d.ts +146 -0
  723. package/node_modules/@connectrpc/connect-node/dist/esm/http2-session-manager.js +539 -0
  724. package/node_modules/@connectrpc/connect-node/dist/esm/index.d.ts +14 -0
  725. package/node_modules/@connectrpc/connect-node/dist/esm/index.js +21 -0
  726. package/node_modules/@connectrpc/connect-node/dist/esm/node-error.d.ts +45 -0
  727. package/node_modules/@connectrpc/connect-node/dist/esm/node-error.js +146 -0
  728. package/node_modules/@connectrpc/connect-node/dist/esm/node-transport-options.d.ts +100 -0
  729. package/node_modules/@connectrpc/connect-node/dist/esm/node-transport-options.js +55 -0
  730. package/node_modules/@connectrpc/connect-node/dist/esm/node-universal-client.d.ts +54 -0
  731. package/node_modules/@connectrpc/connect-node/dist/esm/node-universal-client.js +344 -0
  732. package/node_modules/@connectrpc/connect-node/dist/esm/node-universal-handler.d.ts +42 -0
  733. package/node_modules/@connectrpc/connect-node/dist/esm/node-universal-handler.js +221 -0
  734. package/node_modules/@connectrpc/connect-node/dist/esm/node-universal-header.d.ts +20 -0
  735. package/node_modules/@connectrpc/connect-node/dist/esm/node-universal-header.js +113 -0
  736. package/node_modules/@connectrpc/connect-node/package.json +44 -0
  737. package/node_modules/@nvidia/openshell-sdk/README.md +303 -0
  738. package/node_modules/@nvidia/openshell-sdk/dist/client.d.ts +1243 -0
  739. package/node_modules/@nvidia/openshell-sdk/dist/client.d.ts.map +1 -0
  740. package/node_modules/@nvidia/openshell-sdk/dist/client.js +1321 -0
  741. package/node_modules/@nvidia/openshell-sdk/dist/client.js.map +1 -0
  742. package/node_modules/@nvidia/openshell-sdk/dist/errors.d.ts +35 -0
  743. package/node_modules/@nvidia/openshell-sdk/dist/errors.d.ts.map +1 -0
  744. package/node_modules/@nvidia/openshell-sdk/dist/errors.js +79 -0
  745. package/node_modules/@nvidia/openshell-sdk/dist/errors.js.map +1 -0
  746. package/node_modules/@nvidia/openshell-sdk/dist/gen/datamodel_pb.d.ts +301 -0
  747. package/node_modules/@nvidia/openshell-sdk/dist/gen/datamodel_pb.d.ts.map +1 -0
  748. package/node_modules/@nvidia/openshell-sdk/dist/gen/datamodel_pb.js +69 -0
  749. package/node_modules/@nvidia/openshell-sdk/dist/gen/datamodel_pb.js.map +1 -0
  750. package/node_modules/@nvidia/openshell-sdk/dist/gen/google/rpc/error_details_pb.d.ts +581 -0
  751. package/node_modules/@nvidia/openshell-sdk/dist/gen/google/rpc/error_details_pb.d.ts.map +1 -0
  752. package/node_modules/@nvidia/openshell-sdk/dist/gen/google/rpc/error_details_pb.js +90 -0
  753. package/node_modules/@nvidia/openshell-sdk/dist/gen/google/rpc/error_details_pb.js.map +1 -0
  754. package/node_modules/@nvidia/openshell-sdk/dist/gen/openshell_pb.d.ts +9131 -0
  755. package/node_modules/@nvidia/openshell-sdk/dist/gen/openshell_pb.d.ts.map +1 -0
  756. package/node_modules/@nvidia/openshell-sdk/dist/gen/openshell_pb.js +1898 -0
  757. package/node_modules/@nvidia/openshell-sdk/dist/gen/openshell_pb.js.map +1 -0
  758. package/node_modules/@nvidia/openshell-sdk/dist/gen/options_pb.d.ts +58 -0
  759. package/node_modules/@nvidia/openshell-sdk/dist/gen/options_pb.d.ts.map +1 -0
  760. package/node_modules/@nvidia/openshell-sdk/dist/gen/options_pb.js +24 -0
  761. package/node_modules/@nvidia/openshell-sdk/dist/gen/options_pb.js.map +1 -0
  762. package/node_modules/@nvidia/openshell-sdk/dist/gen/sandbox_pb.d.ts +1203 -0
  763. package/node_modules/@nvidia/openshell-sdk/dist/gen/sandbox_pb.d.ts.map +1 -0
  764. package/node_modules/@nvidia/openshell-sdk/dist/gen/sandbox_pb.js +277 -0
  765. package/node_modules/@nvidia/openshell-sdk/dist/gen/sandbox_pb.js.map +1 -0
  766. package/node_modules/@nvidia/openshell-sdk/dist/index.d.ts +7 -0
  767. package/node_modules/@nvidia/openshell-sdk/dist/index.d.ts.map +1 -0
  768. package/node_modules/@nvidia/openshell-sdk/dist/index.js +6 -0
  769. package/node_modules/@nvidia/openshell-sdk/dist/index.js.map +1 -0
  770. package/node_modules/@nvidia/openshell-sdk/dist/oidc.d.ts +14 -0
  771. package/node_modules/@nvidia/openshell-sdk/dist/oidc.d.ts.map +1 -0
  772. package/node_modules/@nvidia/openshell-sdk/dist/oidc.js +177 -0
  773. package/node_modules/@nvidia/openshell-sdk/dist/oidc.js.map +1 -0
  774. package/node_modules/@nvidia/openshell-sdk/dist/raw.d.ts +6 -0
  775. package/node_modules/@nvidia/openshell-sdk/dist/raw.d.ts.map +1 -0
  776. package/node_modules/@nvidia/openshell-sdk/dist/raw.js +15 -0
  777. package/node_modules/@nvidia/openshell-sdk/dist/raw.js.map +1 -0
  778. package/node_modules/@nvidia/openshell-sdk/dist/ssh-validate.d.ts +11 -0
  779. package/node_modules/@nvidia/openshell-sdk/dist/ssh-validate.d.ts.map +1 -0
  780. package/node_modules/@nvidia/openshell-sdk/dist/ssh-validate.js +58 -0
  781. package/node_modules/@nvidia/openshell-sdk/dist/ssh-validate.js.map +1 -0
  782. package/node_modules/@nvidia/openshell-sdk/dist/transport.d.ts +35 -0
  783. package/node_modules/@nvidia/openshell-sdk/dist/transport.d.ts.map +1 -0
  784. package/node_modules/@nvidia/openshell-sdk/dist/transport.js +97 -0
  785. package/node_modules/@nvidia/openshell-sdk/dist/transport.js.map +1 -0
  786. package/node_modules/@nvidia/openshell-sdk/package.json +58 -0
  787. package/package.json +93 -4
  788. package/server/activity-delivery.js +143 -0
  789. package/server/activity-store.js +168 -0
  790. package/server/agent-inventory.js +76 -0
  791. package/server/agent-resources.py +60 -0
  792. package/server/api.js +648 -0
  793. package/server/cli.js +168 -0
  794. package/server/cloud-connections.js +56 -0
  795. package/server/cloud-origin.js +11 -0
  796. package/server/cloud-proxy.js +122 -0
  797. package/server/cloud-ssh-proxy.cjs +73 -0
  798. package/server/cloud-ssh.js +135 -0
  799. package/server/cloud-transfer.js +221 -0
  800. package/server/compute.js +50 -0
  801. package/server/editor.js +114 -0
  802. package/server/egress.js +204 -0
  803. package/server/files.js +489 -0
  804. package/server/gateway-install.js +64 -0
  805. package/server/gateway.js +415 -0
  806. package/server/image-templates.js +393 -0
  807. package/server/ingress.js +185 -0
  808. package/server/launch-token.js +55 -0
  809. package/server/local-catalog.js +111 -0
  810. package/server/local-cloud-native.js +152 -0
  811. package/server/local-cloud.js +123 -0
  812. package/server/location-inventory.js +94 -0
  813. package/server/machines.js +84 -0
  814. package/server/openshell-cli.js +144 -0
  815. package/server/org.js +536 -0
  816. package/server/orphan-processes.js +42 -0
  817. package/server/paths.js +28 -0
  818. package/server/policy-template-store.js +92 -0
  819. package/server/policy.js +583 -0
  820. package/server/remote-gateway-state.js +123 -0
  821. package/server/remote-gateway.js +420 -0
  822. package/server/remote-hosts.js +354 -0
  823. package/server/remote-http.js +14 -0
  824. package/server/remote-image-engine.js +47 -0
  825. package/server/remote-runtime.js +65 -0
  826. package/server/remote-runtime.py +162 -0
  827. package/server/sandbox-identity.js +14 -0
  828. package/server/security.js +139 -0
  829. package/server/session-revocations.js +20 -0
  830. package/server/setup-artifact-installer.py +54 -0
  831. package/server/setup-artifacts.js +23 -0
  832. package/server/setup-auth-discovery.js +24 -0
  833. package/server/setup-credentials.js +54 -0
  834. package/server/setup-deployment.js +299 -0
  835. package/server/setup-discovery.js +289 -0
  836. package/server/setup-egress.js +133 -0
  837. package/server/setup-http.js +47 -0
  838. package/server/setup-installer.py +289 -0
  839. package/server/setup-json.py +8 -0
  840. package/server/setup-members.js +77 -0
  841. package/server/setup-packages.js +214 -0
  842. package/server/setup-preparation.js +144 -0
  843. package/server/setup-python.js +8 -0
  844. package/server/setup-remote-check.js +35 -0
  845. package/server/setup-transfer.js +17 -0
  846. package/server/setup-verifier.cjs +43 -0
  847. package/server/setups.js +172 -0
  848. package/server/ssh-hosts.js +184 -0
  849. package/server/ssh.js +153 -0
  850. package/server/start.js +71 -0
  851. package/server/terminal.js +173 -0
  852. package/server/worker-auth.js +18 -0
  853. package/shared/agent-access.js +103 -0
  854. package/shared/antigravity-network-guidance.js +9 -0
  855. package/shared/group-membership.js +33 -0
  856. package/shared/group-network.js +29 -0
  857. package/shared/policy-templates.js +79 -0
  858. package/shared/secret-fields.js +35 -0
  859. package/shared/setup-launch.js +25 -0
  860. package/shared/setup-targets.js +11 -0
  861. package/shared/setup-targets.json +12 -0
  862. package/src/lib/activity-export.js +52 -0
  863. package/src/lib/activity-inventory.js +45 -0
  864. package/src/lib/agents.js +41 -0
  865. package/src/lib/api.js +173 -0
  866. package/src/lib/cloud-machine.js +9 -0
  867. package/src/lib/cloud-origin.js +6 -0
  868. package/src/lib/cloud-transfer.js +22 -0
  869. package/src/lib/compute-target.js +46 -0
  870. package/src/lib/delete-network-policies.js +15 -0
  871. package/src/lib/egress-groups.js +24 -0
  872. package/src/lib/egress.js +28 -0
  873. package/src/lib/files.js +24 -0
  874. package/src/lib/fleet.js +100 -0
  875. package/src/lib/format.js +24 -0
  876. package/src/lib/groups.js +16 -0
  877. package/src/lib/image-templates.js +139 -0
  878. package/src/lib/import-setup.js +36 -0
  879. package/src/lib/local-cloud.js +118 -0
  880. package/src/lib/location-inventory.js +20 -0
  881. package/src/lib/locations.js +5 -0
  882. package/src/lib/placement.js +9 -0
  883. package/src/lib/policy-editor.js +58 -0
  884. package/src/lib/policy-sources.js +33 -0
  885. package/src/lib/quick-setup.js +110 -0
  886. package/src/lib/sandbox-creations.js +59 -0
  887. package/src/lib/sandbox-images.js +38 -0
  888. package/src/lib/sandbox-session.js +140 -0
  889. package/src/lib/sandboxes.js +78 -0
  890. package/src/lib/secret-inventory.js +26 -0
  891. package/src/lib/services.js +41 -0
  892. package/src/lib/setup-import-jobs.js +62 -0
  893. package/src/lib/setup-imports.js +4 -0
  894. package/src/lib/setup-network.js +39 -0
  895. package/src/lib/setup-template-build.js +17 -0
  896. package/src/lib/utils.js +6 -0
  897. package/vendor/OPENSHELL-LICENSE +203 -0
  898. package/vendor/nvidia-openshell-sdk-0.0.0.tgz +0 -0
@@ -0,0 +1,1321 @@
1
+ // SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ import * as net from 'node:net';
4
+ import { durationFromMs } from '@bufbuild/protobuf/wkt';
5
+ import { createClient } from '@connectrpc/connect';
6
+ import { errorCode, fromConnect, SdkError } from './errors.js';
7
+ import { OpenShell, SandboxPhase, ServiceStatus, } from './gen/openshell_pb.js';
8
+ import { PolicySource, SettingScope } from './gen/sandbox_pb.js';
9
+ import { validateSshResponse } from './ssh-validate.js';
10
+ import { buildTransport } from './transport.js';
11
+ function durationFromSeconds(seconds) {
12
+ if (!Number.isFinite(seconds) || seconds < 0) {
13
+ throw new RangeError('timeoutSecs must be a finite, non-negative number');
14
+ }
15
+ return seconds === 0 ? undefined : durationFromMs(seconds * 1000);
16
+ }
17
+ function timestampMillis(timestamp) {
18
+ if (!timestamp)
19
+ return undefined;
20
+ const millis = timestamp.seconds * 1000n + BigInt(Math.trunc(timestamp.nanos / 1_000_000));
21
+ return millis === 0n ? undefined : millis.toString();
22
+ }
23
+ export { errorCode };
24
+ function deletionResult(response) {
25
+ const names = {
26
+ 0: 'unspecified',
27
+ 1: 'completed',
28
+ 2: 'accepted',
29
+ 3: 'already_absent',
30
+ };
31
+ return {
32
+ outcome: names[response.outcome] ?? 'unknown',
33
+ rawOutcome: response.outcome,
34
+ ...(response.sandboxId ? { sandboxId: response.sandboxId } : {}),
35
+ };
36
+ }
37
+ // ---- enum → lowercase string -----------------------------------------------
38
+ // Exported for the enum-name drift test only; not re-exported from index.ts, so
39
+ // they are not part of the public package API.
40
+ export const PHASE_NAMES = {
41
+ [SandboxPhase.UNSPECIFIED]: 'unspecified',
42
+ [SandboxPhase.PROVISIONING]: 'provisioning',
43
+ [SandboxPhase.READY]: 'ready',
44
+ [SandboxPhase.ERROR]: 'error',
45
+ [SandboxPhase.DELETING]: 'deleting',
46
+ [SandboxPhase.UNKNOWN]: 'unknown',
47
+ [SandboxPhase.STOPPING]: 'stopping',
48
+ [SandboxPhase.STOPPED]: 'stopped',
49
+ [SandboxPhase.STARTING]: 'starting',
50
+ [SandboxPhase.COMPLETED]: 'completed',
51
+ };
52
+ export const STATUS_NAMES = {
53
+ [ServiceStatus.UNSPECIFIED]: 'unspecified',
54
+ [ServiceStatus.HEALTHY]: 'healthy',
55
+ [ServiceStatus.DEGRADED]: 'degraded',
56
+ [ServiceStatus.UNHEALTHY]: 'unhealthy',
57
+ };
58
+ export const SCOPE_NAMES = {
59
+ [SettingScope.UNSPECIFIED]: 'unspecified',
60
+ [SettingScope.SANDBOX]: 'sandbox',
61
+ [SettingScope.GLOBAL]: 'global',
62
+ };
63
+ export const POLICY_SOURCE_NAMES = {
64
+ [PolicySource.UNSPECIFIED]: 'unspecified',
65
+ [PolicySource.SANDBOX]: 'sandbox',
66
+ [PolicySource.GLOBAL]: 'global',
67
+ };
68
+ function phaseName(p) {
69
+ return PHASE_NAMES[p] ?? 'unspecified';
70
+ }
71
+ function statusName(s) {
72
+ return STATUS_NAMES[s] ?? 'unspecified';
73
+ }
74
+ function scopeName(s) {
75
+ return SCOPE_NAMES[s] ?? 'unspecified';
76
+ }
77
+ function policySourceName(s) {
78
+ return POLICY_SOURCE_NAMES[s] ?? 'unspecified';
79
+ }
80
+ function sandboxRef(sandbox, serviceUrls = {}) {
81
+ if (!sandbox)
82
+ throw new SdkError('invalid_config', 'sandbox missing from gateway response');
83
+ const meta = sandbox.metadata;
84
+ if (!meta?.id || !meta.name) {
85
+ throw new SdkError('invalid_config', 'sandbox metadata.id and metadata.name are required in gateway responses');
86
+ }
87
+ return {
88
+ id: meta.id,
89
+ name: meta.name,
90
+ workspace: meta.workspace,
91
+ phase: phaseName(sandbox.status?.phase ?? SandboxPhase.UNSPECIFIED),
92
+ labels: meta?.labels ?? {},
93
+ resourceVersion: (meta?.resourceVersion ?? 0n).toString(),
94
+ mainProcessInstanceId: sandbox.status?.mainProcessInstanceId || undefined,
95
+ exitCode: sandbox.status?.exitCode,
96
+ createdFromWorkloadTemplate: sandbox.createdFromWorkloadTemplate
97
+ ? {
98
+ name: sandbox.createdFromWorkloadTemplate.name,
99
+ resourceVersion: sandbox.createdFromWorkloadTemplate.resourceVersion,
100
+ }
101
+ : undefined,
102
+ serviceUrls,
103
+ };
104
+ }
105
+ function sandboxTemplate(template) {
106
+ if (!template)
107
+ throw new SdkError('invalid_config', 'sandbox template missing from gateway response');
108
+ return template;
109
+ }
110
+ function providerRef(provider) {
111
+ const meta = provider.metadata;
112
+ return {
113
+ id: meta?.id ?? '',
114
+ name: meta?.name ?? '',
115
+ type: provider.type,
116
+ labels: meta?.labels ?? {},
117
+ resourceVersion: (meta?.resourceVersion ?? 0n).toString(),
118
+ };
119
+ }
120
+ function sandboxConfig(resp) {
121
+ const settings = {};
122
+ for (const [key, setting] of Object.entries(resp.settings)) {
123
+ settings[key] = effectiveSetting(setting);
124
+ }
125
+ return {
126
+ ...(resp.policy ? { policy: resp.policy } : {}),
127
+ version: resp.version,
128
+ policyHash: resp.policyHash,
129
+ settings,
130
+ configRevision: resp.configRevision.toString(),
131
+ policySource: policySourceName(resp.policySource),
132
+ globalPolicyVersion: resp.globalPolicyVersion,
133
+ providerEnvRevision: resp.providerEnvRevision.toString(),
134
+ };
135
+ }
136
+ function effectiveSetting(setting) {
137
+ return {
138
+ ...(setting.value ? { value: setting.value } : {}),
139
+ scope: scopeName(setting.scope),
140
+ };
141
+ }
142
+ function updateConfigResult(resp) {
143
+ return {
144
+ version: resp.version,
145
+ policyHash: resp.policyHash,
146
+ settingsRevision: resp.settingsRevision.toString(),
147
+ deleted: resp.deleted,
148
+ };
149
+ }
150
+ // Optimistic-concurrency version pin: absent/empty means 0n (server uses the
151
+ // current version, backward-compatible). A mismatch surfaces as Aborted →
152
+ // SdkError code 'aborted'.
153
+ function versionPin(value) {
154
+ if (!value)
155
+ return 0n;
156
+ let pin;
157
+ try {
158
+ pin = BigInt(value);
159
+ }
160
+ catch {
161
+ // BigInt() throws a raw SyntaxError on non-integer input; keep the SdkError
162
+ // taxonomy intact so callers' errorCode() checks still match.
163
+ throw new SdkError('invalid_config', `expectedResourceVersion is not a u64: '${value}'`);
164
+ }
165
+ if (pin < 0n) {
166
+ throw new SdkError('invalid_config', `expectedResourceVersion is not a u64: '${value}'`);
167
+ }
168
+ return pin;
169
+ }
170
+ const FORWARD_CHUNK = 64 * 1024;
171
+ function workspaceName(options) {
172
+ const workspace = options?.workspace ?? 'default';
173
+ if (workspace.trim() === '')
174
+ throw new SdkError('invalid_config', 'workspace must be non-empty');
175
+ return workspace;
176
+ }
177
+ function workspaceScope(options) {
178
+ return { selection: { case: 'workspace', value: workspaceName(options) } };
179
+ }
180
+ function listWorkspaceScope(options) {
181
+ return options?.allWorkspaces ? { selection: { case: 'allWorkspaces', value: {} } } : workspaceScope(options);
182
+ }
183
+ function sandboxTarget(name, options) {
184
+ return { sandbox: name, workspaceScope: workspaceScope(options) };
185
+ }
186
+ function namedTarget(name, options) {
187
+ return { name, workspaceScope: workspaceScope(options) };
188
+ }
189
+ function requestCallOptions(options) {
190
+ if (!options)
191
+ return undefined;
192
+ const { workspace: _workspace, ...callOptions } = options;
193
+ return callOptions;
194
+ }
195
+ // Build CallOptions that bound one poll RPC by the remaining wall-clock budget
196
+ // and honor caller cancellation, so a stalled RPC cannot outlive the deadline.
197
+ function deadlineOptions(remainingMs, signal) {
198
+ const timeout = AbortSignal.timeout(Math.max(0, remainingMs));
199
+ return {
200
+ signal: signal ? AbortSignal.any([signal, timeout]) : timeout,
201
+ };
202
+ }
203
+ // Translate a poll failure at the wait boundary: caller cancellation and the
204
+ // poll's deadline signal both become explicit SdkErrors; anything else propagates.
205
+ function mapWaitError(err, name, deadline, signal, pollSignal) {
206
+ if (signal?.aborted)
207
+ return new SdkError('connect', `wait for sandbox '${name}' aborted`);
208
+ if (pollSignal?.aborted || Date.now() >= deadline)
209
+ return new SdkError('connect', `timed out waiting for sandbox '${name}'`);
210
+ return err instanceof SdkError ? err : fromConnect(err);
211
+ }
212
+ // Sleep between polls, bounded by the remaining deadline and interruptible by
213
+ // the caller signal so the returned promise stays within its timeout budget.
214
+ function waitSleep(delayMs, deadline, signal) {
215
+ const bounded = Math.min(delayMs, Math.max(0, deadline - Date.now()));
216
+ return new Promise((resolve, reject) => {
217
+ const timer = setTimeout(() => {
218
+ signal?.removeEventListener('abort', onAbort);
219
+ resolve();
220
+ }, bounded);
221
+ const onAbort = () => {
222
+ clearTimeout(timer);
223
+ reject(new SdkError('connect', 'wait aborted'));
224
+ };
225
+ if (signal)
226
+ signal.addEventListener('abort', onAbort, { once: true });
227
+ });
228
+ }
229
+ // Wait for a socket to drain before writing more. Resolves on 'drain', and
230
+ // also on 'close'/'error' so a pending await never leaks when the socket is
231
+ // torn down mid-backpressure; short-circuits if it is already gone.
232
+ function waitForDrain(socket) {
233
+ if (socket.writableEnded || socket.destroyed)
234
+ return Promise.resolve();
235
+ return new Promise((resolve) => {
236
+ const done = () => {
237
+ socket.removeListener('drain', done);
238
+ socket.removeListener('close', done);
239
+ socket.removeListener('error', done);
240
+ resolve();
241
+ };
242
+ socket.once('drain', done);
243
+ socket.once('close', done);
244
+ socket.once('error', done);
245
+ });
246
+ }
247
+ // An async-iterable queue for the client-send half of bidi streams. Producers
248
+ // `push()` frames; the connect transport consumes them as it drains the send
249
+ // side. `end()` closes the stream (optionally with an error). `onDrain` fires
250
+ // when the buffered queue empties via consumption, so callers can relieve TCP
251
+ // backpressure.
252
+ export class Pushable {
253
+ queue = [];
254
+ waiting = [];
255
+ ended = false;
256
+ error;
257
+ onDrain;
258
+ get size() {
259
+ return this.queue.length;
260
+ }
261
+ push(value) {
262
+ if (this.ended)
263
+ return;
264
+ const waiter = this.waiting.shift();
265
+ if (waiter) {
266
+ waiter.resolve({ value, done: false });
267
+ }
268
+ else {
269
+ this.queue.push(value);
270
+ }
271
+ }
272
+ end(error) {
273
+ if (this.ended)
274
+ return;
275
+ this.ended = true;
276
+ this.error = error;
277
+ let waiter = this.waiting.shift();
278
+ while (waiter) {
279
+ if (error !== undefined)
280
+ waiter.reject(error);
281
+ else
282
+ waiter.resolve({ value: undefined, done: true });
283
+ waiter = this.waiting.shift();
284
+ }
285
+ }
286
+ async *[Symbol.asyncIterator]() {
287
+ for (;;) {
288
+ if (this.queue.length > 0) {
289
+ const value = this.queue.shift();
290
+ if (this.queue.length === 0)
291
+ this.onDrain?.();
292
+ yield value;
293
+ continue;
294
+ }
295
+ if (this.ended) {
296
+ if (this.error !== undefined)
297
+ throw this.error;
298
+ return;
299
+ }
300
+ const next = await new Promise((resolve, reject) => {
301
+ this.waiting.push({ resolve, reject });
302
+ });
303
+ if (next.done) {
304
+ if (this.error !== undefined)
305
+ throw this.error;
306
+ return;
307
+ }
308
+ yield next.value;
309
+ }
310
+ }
311
+ }
312
+ // Single producer/consumer queue. Closing wakes both directions, including a
313
+ // producer blocked by backpressure. Successful completion drains queued values.
314
+ class ExecOutputQueue {
315
+ values = [];
316
+ ended = false;
317
+ error;
318
+ reader;
319
+ writer;
320
+ async push(value) {
321
+ // The terminal exit carries no output bytes and must never block cleanup
322
+ // after done has already settled and its cancellation listener is removed.
323
+ while (!('type' in value) && this.values.length >= 16 && !this.ended) {
324
+ await new Promise((resolve) => {
325
+ this.writer = resolve;
326
+ });
327
+ }
328
+ if (this.ended)
329
+ throw this.error ?? new SdkError('canceled', 'exec output closed');
330
+ this.values.push(value);
331
+ this.reader?.();
332
+ this.reader = undefined;
333
+ }
334
+ end(error, discard = false) {
335
+ if (discard)
336
+ this.values.length = 0;
337
+ if (!this.ended) {
338
+ this.ended = true;
339
+ this.error = error;
340
+ }
341
+ this.reader?.();
342
+ this.writer?.();
343
+ this.reader = undefined;
344
+ this.writer = undefined;
345
+ }
346
+ async *[Symbol.asyncIterator]() {
347
+ for (;;) {
348
+ const value = this.values.shift();
349
+ if (value !== undefined) {
350
+ this.writer?.();
351
+ this.writer = undefined;
352
+ yield value;
353
+ }
354
+ else if (this.ended) {
355
+ if (this.error !== undefined)
356
+ throw this.error;
357
+ return;
358
+ }
359
+ else {
360
+ await new Promise((resolve) => {
361
+ this.reader = resolve;
362
+ });
363
+ }
364
+ }
365
+ }
366
+ }
367
+ const maxConsumedPageTokens = 10_000;
368
+ const maxConsumedPageTokenBytes = 1 << 20;
369
+ /** Lazy, single-pass iterator that fetches one RPC page per advance. */
370
+ export class Pager {
371
+ fetch;
372
+ maxConsumedTokens;
373
+ maxConsumedTokenBytes;
374
+ nextToken;
375
+ consumedTokens = new Set();
376
+ consumedTokenBytes = 0;
377
+ constructor(fetch, pageToken = '', maxConsumedTokens = maxConsumedPageTokens, maxConsumedTokenBytes = maxConsumedPageTokenBytes) {
378
+ this.fetch = fetch;
379
+ this.maxConsumedTokens = maxConsumedTokens;
380
+ this.maxConsumedTokenBytes = maxConsumedTokenBytes;
381
+ this.nextToken = pageToken;
382
+ }
383
+ validateCurrentTokenBudget(pageToken) {
384
+ if (pageToken === '')
385
+ return 0;
386
+ const tokenBytes = new TextEncoder().encode(pageToken).byteLength;
387
+ if (this.consumedTokens.size >= this.maxConsumedTokens ||
388
+ tokenBytes > this.maxConsumedTokenBytes - this.consumedTokenBytes) {
389
+ throw new Error('pager continuation token history limit exceeded');
390
+ }
391
+ return tokenBytes;
392
+ }
393
+ /** Fetch the next page, or return undefined after the final page. */
394
+ async nextPage() {
395
+ if (this.nextToken === undefined)
396
+ return undefined;
397
+ const pageToken = this.nextToken;
398
+ const tokenBytes = this.validateCurrentTokenBudget(pageToken);
399
+ const page = await this.fetch(pageToken);
400
+ if (pageToken !== '') {
401
+ this.consumedTokens.add(pageToken);
402
+ this.consumedTokenBytes += tokenBytes;
403
+ }
404
+ if (page.nextPageToken !== '' && this.consumedTokens.has(page.nextPageToken)) {
405
+ throw new Error('pager received a repeated continuation token');
406
+ }
407
+ this.nextToken = page.nextPageToken === '' ? undefined : page.nextPageToken;
408
+ return page;
409
+ }
410
+ /** Consume the pager and collect every remaining item. */
411
+ async all() {
412
+ const items = [];
413
+ for await (const page of this)
414
+ items.push(...page.items);
415
+ return items;
416
+ }
417
+ async *[Symbol.asyncIterator]() {
418
+ for (;;) {
419
+ const page = await this.nextPage();
420
+ if (page === undefined)
421
+ return;
422
+ yield page;
423
+ }
424
+ }
425
+ }
426
+ // ---- sandbox template client ----------------------------------------------
427
+ // Reusable sandbox workload template lifecycle. Templates intentionally return
428
+ // generated proto messages because the resource owns portable workload fields
429
+ // plus driver-specific config that should not be lossy in the curated layer.
430
+ export class SandboxTemplateClient {
431
+ grpc;
432
+ raw;
433
+ transport;
434
+ constructor(transport, grpc = createClient(OpenShell, transport)) {
435
+ this.transport = transport;
436
+ this.grpc = grpc;
437
+ this.raw = this.grpc;
438
+ }
439
+ static async connect(options) {
440
+ return new SandboxTemplateClient(buildTransport(options));
441
+ }
442
+ async create(template, options) {
443
+ try {
444
+ const resp = await this.grpc.createSandboxTemplate({
445
+ workspaceScope: workspaceScope(options),
446
+ template,
447
+ });
448
+ return sandboxTemplate(resp.template);
449
+ }
450
+ catch (e) {
451
+ throw e instanceof SdkError ? e : fromConnect(e);
452
+ }
453
+ }
454
+ async get(name, options) {
455
+ if (name.trim() === '')
456
+ throw new SdkError('invalid_config', 'template name is required');
457
+ try {
458
+ const resp = await this.grpc.getSandboxTemplate({
459
+ workspaceScope: workspaceScope(options),
460
+ name,
461
+ });
462
+ return sandboxTemplate(resp.template);
463
+ }
464
+ catch (e) {
465
+ throw e instanceof SdkError ? e : fromConnect(e);
466
+ }
467
+ }
468
+ list(options) {
469
+ return new Pager(async (pageToken) => {
470
+ try {
471
+ const resp = await this.grpc.listSandboxTemplates({
472
+ pageSize: options?.pageSize ?? 0,
473
+ pageToken,
474
+ labelSelector: options?.labelSelector ?? '',
475
+ workspaceScope: listWorkspaceScope(options),
476
+ });
477
+ return { items: resp.templates, nextPageToken: resp.nextPageToken };
478
+ }
479
+ catch (e) {
480
+ throw fromConnect(e);
481
+ }
482
+ }, options?.pageToken ?? '');
483
+ }
484
+ /** List and collect every sandbox template in this scope. */
485
+ async listAll(options) {
486
+ return this.list(options).all();
487
+ }
488
+ async delete(name, options) {
489
+ if (name.trim() === '')
490
+ throw new SdkError('invalid_config', 'template name is required');
491
+ try {
492
+ const resp = await this.grpc.deleteSandboxTemplate({
493
+ workspaceScope: workspaceScope(options),
494
+ allowMissing: options?.allowMissing ?? false,
495
+ name,
496
+ });
497
+ return deletionResult(resp);
498
+ }
499
+ catch (e) {
500
+ throw fromConnect(e);
501
+ }
502
+ }
503
+ }
504
+ // ---- sandbox client --------------------------------------------------------
505
+ // Sandbox lifecycle + exec. Usable standalone via `SandboxClient.connect()`,
506
+ // or reached as `client.sandbox` on an OpenShellClient, which shares one
507
+ // transport (one connection) across all of its scoped clients.
508
+ export class SandboxClient {
509
+ grpc;
510
+ /**
511
+ * Advanced escape hatch: a generated client for every gateway RPC, including
512
+ * surface the curated methods do not wrap yet. Request/response types are the
513
+ * generated wire messages (import them from '@nvidia/openshell-sdk/raw').
514
+ */
515
+ raw;
516
+ /** The shared Connect transport, for building extra clients over the same connection. */
517
+ transport;
518
+ // Takes a transport rather than options so OpenShellClient can compose
519
+ // several scoped clients over a single connection. For standalone use,
520
+ // prefer the SandboxClient.connect() factory below.
521
+ constructor(transport, grpc = createClient(OpenShell, transport)) {
522
+ this.transport = transport;
523
+ this.grpc = grpc;
524
+ this.raw = this.grpc;
525
+ }
526
+ /**
527
+ * Constructs a lazy Connect client. No network request is made until the
528
+ * first RPC; call get() or another operation to verify reachability.
529
+ */
530
+ static async connect(options) {
531
+ return new SandboxClient(buildTransport(options));
532
+ }
533
+ async create(spec) {
534
+ try {
535
+ // Curated fields build the base spec; rawSpec then shallow-overrides at
536
+ // the top spec level (Object.assign, so any field it sets wins). The
537
+ // runtime assign avoids the generated $typeName upgrading the literal and
538
+ // rejecting the curated `template: { image }` init shorthand.
539
+ const specInit = {
540
+ environment: spec.environment ?? {},
541
+ providers: spec.providers ?? [],
542
+ template: spec.image ? { image: spec.image } : undefined,
543
+ resourceRequirements: spec.gpu ? { gpu: {} } : undefined,
544
+ policy: spec.policy,
545
+ command: spec.command ?? [],
546
+ tty: spec.tty ?? false,
547
+ };
548
+ if (spec.rawSpec)
549
+ Object.assign(specInit, spec.rawSpec);
550
+ const resp = await this.grpc.createSandbox({
551
+ workspaceScope: workspaceScope(spec),
552
+ name: spec.name ?? '',
553
+ labels: spec.labels ?? {},
554
+ spec: specInit,
555
+ serviceExposures: spec.serviceExposures?.map((exposure) => ({
556
+ service: exposure.service ?? '',
557
+ targetPort: exposure.targetPort,
558
+ })) ?? [],
559
+ });
560
+ return sandboxRef(resp.sandbox, resp.serviceUrls);
561
+ }
562
+ catch (e) {
563
+ throw fromConnect(e);
564
+ }
565
+ }
566
+ async createFromTemplate(spec) {
567
+ if (spec.workloadTemplate.trim() === '')
568
+ throw new SdkError('invalid_config', 'workloadTemplate is required');
569
+ try {
570
+ const resp = await this.grpc.createSandbox({
571
+ workspaceScope: workspaceScope(spec),
572
+ name: spec.name ?? '',
573
+ labels: spec.labels ?? {},
574
+ spec: {
575
+ providers: spec.providers ?? [],
576
+ command: spec.command ?? [],
577
+ tty: spec.tty ?? false,
578
+ policy: spec.policy,
579
+ },
580
+ workloadTemplate: spec.workloadTemplate,
581
+ serviceExposures: spec.serviceExposures?.map((exposure) => ({
582
+ service: exposure.service ?? '',
583
+ targetPort: exposure.targetPort,
584
+ })) ?? [],
585
+ });
586
+ return sandboxRef(resp.sandbox, resp.serviceUrls);
587
+ }
588
+ catch (e) {
589
+ throw fromConnect(e);
590
+ }
591
+ }
592
+ async get(name, options) {
593
+ try {
594
+ const resp = await this.grpc.getSandbox({ ...namedTarget(name, options) }, requestCallOptions(options));
595
+ return sandboxRef(resp.sandbox);
596
+ }
597
+ catch (e) {
598
+ throw fromConnect(e);
599
+ }
600
+ }
601
+ list(options) {
602
+ return new Pager(async (pageToken) => {
603
+ try {
604
+ const resp = await this.grpc.listSandboxes({
605
+ pageSize: options?.pageSize ?? 0,
606
+ pageToken,
607
+ labelSelector: options?.labelSelector ?? '',
608
+ workspaceScope: listWorkspaceScope(options),
609
+ });
610
+ return {
611
+ items: resp.sandboxes.map((sandbox) => sandboxRef(sandbox)),
612
+ nextPageToken: resp.nextPageToken,
613
+ };
614
+ }
615
+ catch (e) {
616
+ throw fromConnect(e);
617
+ }
618
+ }, options?.pageToken ?? '');
619
+ }
620
+ /** List and collect every sandbox in this scope. */
621
+ async listAll(options) {
622
+ return this.list(options).all();
623
+ }
624
+ async delete(name, options) {
625
+ try {
626
+ const resp = await this.grpc.deleteSandbox({
627
+ ...namedTarget(name, options),
628
+ allowMissing: options?.allowMissing ?? false,
629
+ });
630
+ return deletionResult(resp);
631
+ }
632
+ catch (e) {
633
+ throw fromConnect(e);
634
+ }
635
+ }
636
+ // Poll until the sandbox is ready. The timeout bounds the returned promise,
637
+ // not just the sleep loop: each poll RPC carries the remaining deadline (and
638
+ // any caller signal), so a stalled get() is aborted rather than hanging.
639
+ async waitReady(name, timeoutSecs, options) {
640
+ const deadline = Date.now() + timeoutSecs * 1000;
641
+ const signal = options?.signal;
642
+ let delay = 250;
643
+ for (;;) {
644
+ if (signal?.aborted)
645
+ throw new SdkError('connect', `wait for sandbox '${name}' aborted`);
646
+ if (Date.now() >= deadline)
647
+ throw new SdkError('connect', `timed out waiting for sandbox '${name}'`);
648
+ let ref;
649
+ const pollOptions = deadlineOptions(deadline - Date.now(), signal);
650
+ try {
651
+ ref = await this.get(name, {
652
+ ...pollOptions,
653
+ workspace: options?.workspace,
654
+ });
655
+ }
656
+ catch (e) {
657
+ throw mapWaitError(e, name, deadline, signal, pollOptions.signal);
658
+ }
659
+ if (ref.phase === 'ready' || ref.phase === 'completed')
660
+ return ref;
661
+ if (ref.phase === 'stopped')
662
+ throw new SdkError('connect', `sandbox '${name}' stopped before becoming ready`);
663
+ if (ref.phase === 'error')
664
+ throw new SdkError('connect', `sandbox '${name}' entered error phase`);
665
+ if (Date.now() >= deadline)
666
+ throw new SdkError('connect', `timed out waiting for sandbox '${name}'`);
667
+ await waitSleep(delay, deadline, signal);
668
+ delay = Math.min(delay * 2, 2000);
669
+ }
670
+ }
671
+ // Poll until the sandbox is gone, or its name resolves to a different ID when
672
+ // expectedSandboxId is supplied. Timeout and cancellation work as in waitReady.
673
+ async waitDeleted(name, timeoutSecs, options) {
674
+ const deadline = Date.now() + timeoutSecs * 1000;
675
+ const signal = options?.signal;
676
+ let delay = 250;
677
+ for (;;) {
678
+ if (signal?.aborted)
679
+ throw new SdkError('connect', `wait for sandbox '${name}' aborted`);
680
+ if (Date.now() >= deadline)
681
+ throw new SdkError('connect', `timed out waiting for sandbox '${name}' to delete`);
682
+ const pollOptions = deadlineOptions(deadline - Date.now(), signal);
683
+ try {
684
+ const ref = await this.get(name, { ...pollOptions, workspace: options?.workspace });
685
+ if (options?.expectedSandboxId !== undefined && ref.id !== options.expectedSandboxId)
686
+ return;
687
+ }
688
+ catch (e) {
689
+ if (e instanceof SdkError && e.code === 'not_found')
690
+ return;
691
+ throw mapWaitError(e, name, deadline, signal, pollOptions.signal);
692
+ }
693
+ if (Date.now() >= deadline)
694
+ throw new SdkError('connect', `timed out waiting for sandbox '${name}' to delete`);
695
+ await waitSleep(delay, deadline, signal);
696
+ delay = Math.min(delay * 2, 2000);
697
+ }
698
+ }
699
+ // Stream stdout/stderr as they arrive, then a terminal exit event. The exit
700
+ // is yielded in-band (not returned) so `for await` consumers cannot silently
701
+ // discard it: a failing command is impossible to miss. If the gateway closes
702
+ // the stream without an exit event, this throws. `exec()` drains this same
703
+ // path to reconstruct the buffered result.
704
+ async *execStream(name, command, options) {
705
+ try {
706
+ // Preserve the existing preflight so lookup failures surface before the stream starts.
707
+ await this.get(name, {
708
+ workspace: options?.workspace,
709
+ ...(options?.signal ? { signal: options.signal } : {}),
710
+ });
711
+ const stream = this.grpc.execSandbox({
712
+ ...sandboxTarget(name, options),
713
+ command,
714
+ workdir: options?.workdir ?? '',
715
+ environment: options?.environment ?? {},
716
+ executionTimeout: durationFromSeconds(options?.timeoutSecs ?? 0),
717
+ stdin: options?.stdin ? new Uint8Array(options.stdin) : new Uint8Array(),
718
+ tty: false,
719
+ noLoginShell: options?.noLoginShell ?? false,
720
+ }, { signal: options?.signal });
721
+ let sawExit = false;
722
+ for await (const event of stream) {
723
+ switch (event.payload.case) {
724
+ case 'stdout':
725
+ yield {
726
+ stream: 'stdout',
727
+ data: Buffer.from(event.payload.value.data),
728
+ };
729
+ break;
730
+ case 'stderr':
731
+ yield {
732
+ stream: 'stderr',
733
+ data: Buffer.from(event.payload.value.data),
734
+ };
735
+ break;
736
+ case 'exit':
737
+ sawExit = true;
738
+ yield { type: 'exit', exitCode: event.payload.value.exitCode };
739
+ break;
740
+ }
741
+ }
742
+ if (!sawExit)
743
+ throw new SdkError('rpc', 'ExecSandbox stream ended without an exit event');
744
+ }
745
+ catch (e) {
746
+ throw e instanceof SdkError ? e : fromConnect(e);
747
+ }
748
+ }
749
+ async exec(name, command, options) {
750
+ const stdout = [];
751
+ const stderr = [];
752
+ let exitCode;
753
+ for await (const event of this.execStream(name, command, options)) {
754
+ if ('type' in event) {
755
+ exitCode = event.exitCode;
756
+ }
757
+ else if (event.stream === 'stdout') {
758
+ stdout.push(event.data);
759
+ }
760
+ else {
761
+ stderr.push(event.data);
762
+ }
763
+ }
764
+ if (exitCode === undefined)
765
+ throw new SdkError('rpc', 'ExecSandbox stream ended without an exit event');
766
+ return {
767
+ exitCode,
768
+ stdout: Buffer.concat(stdout),
769
+ stderr: Buffer.concat(stderr),
770
+ };
771
+ }
772
+ // TTY + stdin transport half of an interactive exec. The first client frame
773
+ // is the `start` variant carrying the exec request; subsequent frames are
774
+ // `stdin`/`resize`. No terminal glue: raw mode, signal forwarding, and
775
+ // SIGWINCH stay with the caller.
776
+ async execInteractive(name, command, options) {
777
+ try {
778
+ await this.get(name, { workspace: options?.workspace, ...(options?.signal ? { signal: options.signal } : {}) });
779
+ }
780
+ catch (e) {
781
+ throw e instanceof SdkError ? e : fromConnect(e);
782
+ }
783
+ const input = new Pushable();
784
+ input.push({
785
+ payload: {
786
+ case: 'start',
787
+ value: {
788
+ ...sandboxTarget(name, options),
789
+ command,
790
+ workdir: options?.workdir ?? '',
791
+ environment: options?.environment ?? {},
792
+ executionTimeout: durationFromSeconds(options?.timeoutSecs ?? 0),
793
+ stdin: new Uint8Array(),
794
+ tty: options?.tty ?? true,
795
+ cols: options?.cols ?? 0,
796
+ rows: options?.rows ?? 0,
797
+ noLoginShell: options?.noLoginShell ?? false,
798
+ },
799
+ },
800
+ });
801
+ const controller = new AbortController();
802
+ const signal = options?.signal ? AbortSignal.any([options.signal, controller.signal]) : controller.signal;
803
+ const grpc = this.grpc;
804
+ const queue = new ExecOutputQueue();
805
+ let inputClosed = false;
806
+ let exitCode;
807
+ const closeInput = () => {
808
+ inputClosed = true;
809
+ input.end();
810
+ };
811
+ const assertInputOpen = () => {
812
+ if (inputClosed || signal.aborted)
813
+ throw new SdkError('io', 'exec input is closed');
814
+ };
815
+ let resolveDone;
816
+ let rejectDone;
817
+ const done = new Promise((resolve, reject) => {
818
+ resolveDone = resolve;
819
+ rejectDone = reject;
820
+ });
821
+ // `done` may settle before (or without) anyone awaiting it. A lone handler
822
+ // keeps an unobserved rejection from surfacing as an unhandledRejection;
823
+ // real awaiters still receive it through their own handler.
824
+ void done.catch(() => { });
825
+ // The process exit and the terminal transport status are separate outcomes.
826
+ let settled = false;
827
+ const settleExit = (code) => {
828
+ if (settled)
829
+ return;
830
+ settled = true;
831
+ signal.removeEventListener('abort', onAbort);
832
+ resolveDone(code);
833
+ };
834
+ const settleError = (err) => {
835
+ if (settled)
836
+ return;
837
+ settled = true;
838
+ signal.removeEventListener('abort', onAbort);
839
+ rejectDone(err);
840
+ };
841
+ const onAbort = () => {
842
+ closeInput();
843
+ const error = new SdkError('canceled', 'exec cancelled');
844
+ queue.end(error, true);
845
+ settleError(error);
846
+ };
847
+ signal.addEventListener('abort', onAbort, { once: true });
848
+ if (signal.aborted)
849
+ onAbort();
850
+ async function receive() {
851
+ try {
852
+ if (signal.aborted)
853
+ throw new SdkError('canceled', 'exec cancelled');
854
+ // Start and observe the transport immediately, independently of output
855
+ // consumption. Backpressure bounds the queue to 16 chunks of 64 KiB.
856
+ const stream = grpc.execSandboxInteractive(input, { signal });
857
+ for await (const event of stream) {
858
+ if (signal.aborted)
859
+ throw new SdkError('canceled', 'exec cancelled');
860
+ if (exitCode !== undefined) {
861
+ throw new SdkError('rpc', 'ExecSandboxInteractive received an event after exit');
862
+ }
863
+ switch (event.payload.case) {
864
+ case 'stdout':
865
+ case 'stderr':
866
+ for (let offset = 0; offset < event.payload.value.data.length; offset += 64 * 1024) {
867
+ await queue.push({
868
+ stream: event.payload.case,
869
+ data: Buffer.from(event.payload.value.data.subarray(offset, offset + 64 * 1024)),
870
+ });
871
+ }
872
+ break;
873
+ case 'exit':
874
+ exitCode = event.payload.value.exitCode;
875
+ closeInput();
876
+ break;
877
+ default:
878
+ throw new SdkError('rpc', 'ExecSandboxInteractive received an empty or unknown event');
879
+ }
880
+ }
881
+ if (exitCode === undefined) {
882
+ throw new SdkError('rpc', 'ExecSandboxInteractive stream ended without an exit event');
883
+ }
884
+ if (signal.aborted)
885
+ throw new SdkError('canceled', 'exec cancelled before completion');
886
+ // Delay the public exit event until trailers have been consumed. A
887
+ // caller can still break on exit without losing the terminal status.
888
+ settleExit(exitCode);
889
+ await queue.push({ type: 'exit', exitCode });
890
+ queue.end();
891
+ }
892
+ catch (e) {
893
+ const err = e instanceof SdkError ? e : fromConnect(e);
894
+ settleError(err);
895
+ queue.end(err);
896
+ }
897
+ finally {
898
+ closeInput();
899
+ controller.abort();
900
+ }
901
+ }
902
+ // receive catches transport failures even when nobody consumes output/done.
903
+ const receiving = receive();
904
+ async function* output() {
905
+ try {
906
+ yield* queue;
907
+ }
908
+ finally {
909
+ const error = new SdkError('rpc', 'exec output abandoned before completion');
910
+ settleError(error);
911
+ queue.end(error, true);
912
+ closeInput();
913
+ controller.abort();
914
+ await receiving;
915
+ }
916
+ }
917
+ return {
918
+ output: output(),
919
+ write(data) {
920
+ assertInputOpen();
921
+ input.push({ payload: { case: 'stdin', value: new Uint8Array(data) } });
922
+ },
923
+ resize(cols, rows) {
924
+ assertInputOpen();
925
+ input.push({ payload: { case: 'resize', value: { cols, rows } } });
926
+ },
927
+ closeInput,
928
+ close: closeInput,
929
+ cancel() {
930
+ closeInput();
931
+ queue.end(new SdkError('canceled', 'exec cancelled'), true);
932
+ controller.abort();
933
+ settleError(new SdkError('canceled', 'exec cancelled'));
934
+ },
935
+ get exitCode() {
936
+ return exitCode;
937
+ },
938
+ done,
939
+ };
940
+ }
941
+ // Bind a local TCP listener that tunnels each accepted connection into the
942
+ // sandbox. Mirrors the CLI service forward: READY check, then per socket mint
943
+ // a short-lived SSH session token, open a forwardTcp bidi whose first frame is
944
+ // the `init` (TCP target + token), relay bytes both ways in ~64 KiB chunks,
945
+ // and revoke the token on close. Process-lifetime only.
946
+ async forward(name, opts) {
947
+ const targetHost = opts.targetHost ?? '127.0.0.1';
948
+ const targetPort = opts.targetPort;
949
+ const localHost = opts.localHost ?? '127.0.0.1';
950
+ const localPort = opts.localPort ?? 0;
951
+ let sandboxId;
952
+ try {
953
+ const ref = await this.get(name, { workspace: opts.workspace, ...(opts.signal ? { signal: opts.signal } : {}) });
954
+ if (ref.phase !== 'ready') {
955
+ throw new SdkError('connect', `sandbox '${name}' is not ready (phase: ${ref.phase})`);
956
+ }
957
+ sandboxId = ref.id;
958
+ }
959
+ catch (e) {
960
+ throw e instanceof SdkError ? e : fromConnect(e);
961
+ }
962
+ const sockets = new Set();
963
+ const controllers = new Set();
964
+ const connectionTasks = new Set();
965
+ let closing = false;
966
+ const server = net.createServer((socket) => {
967
+ sockets.add(socket);
968
+ socket.on('close', () => sockets.delete(socket));
969
+ // Guard the window before forwardConnection attaches its own handlers
970
+ // (it first awaits createSshSession). Without a synchronous 'error'
971
+ // listener a peer reset here emits an unhandled 'error' and crashes the
972
+ // process; forwardConnection's catch still tears the socket down.
973
+ socket.on('error', () => { });
974
+ const controller = new AbortController();
975
+ controllers.add(controller);
976
+ const task = this.forwardConnection(socket, sandboxId, name, opts.workspace, targetHost, targetPort, controller.signal)
977
+ .catch((error) => {
978
+ if (!closing) {
979
+ try {
980
+ opts.onConnectionError?.(error instanceof SdkError ? error : fromConnect(error));
981
+ }
982
+ catch {
983
+ // Consumer callbacks must not turn a handled connection failure
984
+ // into an unhandled rejection or prevent forward cleanup.
985
+ }
986
+ }
987
+ })
988
+ .finally(() => {
989
+ controllers.delete(controller);
990
+ connectionTasks.delete(task);
991
+ });
992
+ connectionTasks.add(task);
993
+ });
994
+ let resolveClosed;
995
+ const closed = new Promise((resolve) => {
996
+ resolveClosed = resolve;
997
+ });
998
+ await new Promise((resolve, reject) => {
999
+ const onError = (err) => {
1000
+ reject(new SdkError('io', `failed to bind local forward on ${localHost}:${localPort}: ${err instanceof Error ? err.message : String(err)}`));
1001
+ };
1002
+ server.once('error', onError);
1003
+ server.listen(localPort, localHost, () => {
1004
+ server.removeListener('error', onError);
1005
+ resolve();
1006
+ });
1007
+ });
1008
+ let teardownPromise;
1009
+ const onAbort = () => {
1010
+ void teardown();
1011
+ };
1012
+ const teardown = () => {
1013
+ if (teardownPromise)
1014
+ return teardownPromise;
1015
+ closing = true;
1016
+ opts.signal?.removeEventListener('abort', onAbort);
1017
+ teardownPromise = (async () => {
1018
+ for (const controller of controllers)
1019
+ controller.abort();
1020
+ for (const socket of sockets)
1021
+ socket.destroy();
1022
+ if (server.listening) {
1023
+ await new Promise((resolve) => server.close(() => resolve()));
1024
+ }
1025
+ await Promise.allSettled([...connectionTasks]);
1026
+ resolveClosed();
1027
+ })();
1028
+ return teardownPromise;
1029
+ };
1030
+ // Caller cancellation tears the local listener down the same way close() does.
1031
+ if (opts.signal) {
1032
+ if (opts.signal.aborted)
1033
+ void teardown();
1034
+ else
1035
+ opts.signal.addEventListener('abort', onAbort, { once: true });
1036
+ }
1037
+ const addr = server.address();
1038
+ return {
1039
+ localHost,
1040
+ localPort: addr ? addr.port : localPort,
1041
+ targetHost,
1042
+ targetPort,
1043
+ close: teardown,
1044
+ closed,
1045
+ };
1046
+ }
1047
+ async forwardConnection(socket, sandboxId, name, workspace, targetHost, targetPort, signal) {
1048
+ let token;
1049
+ const input = new Pushable();
1050
+ input.onDrain = () => socket.resume();
1051
+ try {
1052
+ const session = await this.grpc.createSshSession({ ...sandboxTarget(name, { workspace }) }, { signal });
1053
+ // Defense-in-depth: the token feeds forwardTcp authorization, so hold it
1054
+ // to the same trust-boundary contract as createSshSession. A violation
1055
+ // tears down this one socket via the catch below.
1056
+ validateSshResponse(session, sandboxId);
1057
+ token = session.token;
1058
+ input.push({
1059
+ payload: {
1060
+ case: 'init',
1061
+ value: {
1062
+ ...sandboxTarget(name, { workspace }),
1063
+ serviceId: `service-forward:${name}:${targetHost}:${targetPort}`,
1064
+ target: {
1065
+ case: 'tcp',
1066
+ value: { host: targetHost, port: targetPort },
1067
+ },
1068
+ authorizationToken: token,
1069
+ },
1070
+ },
1071
+ });
1072
+ socket.on('data', (chunk) => {
1073
+ for (let off = 0; off < chunk.length; off += FORWARD_CHUNK) {
1074
+ const slice = chunk.subarray(off, Math.min(off + FORWARD_CHUNK, chunk.length));
1075
+ input.push({
1076
+ payload: { case: 'data', value: new Uint8Array(slice) },
1077
+ });
1078
+ }
1079
+ if (input.size >= 64)
1080
+ socket.pause();
1081
+ });
1082
+ socket.on('end', () => input.end());
1083
+ socket.on('error', (error) => input.end(error));
1084
+ socket.on('close', () => input.end());
1085
+ const onAbort = () => {
1086
+ input.end(new SdkError('canceled', 'forward connection closed'));
1087
+ socket.destroy();
1088
+ };
1089
+ signal.addEventListener('abort', onAbort, { once: true });
1090
+ try {
1091
+ for await (const frame of this.grpc.forwardTcp(input, { signal })) {
1092
+ if (frame.payload.case !== 'data')
1093
+ continue;
1094
+ const data = frame.payload.value;
1095
+ if (data.length === 0)
1096
+ continue;
1097
+ // Respect backpressure: if the local socket buffer is full, stop
1098
+ // pulling sandbox data until it drains so memory stays bounded.
1099
+ if (!socket.write(Buffer.from(data)))
1100
+ await waitForDrain(socket);
1101
+ }
1102
+ }
1103
+ finally {
1104
+ signal.removeEventListener('abort', onAbort);
1105
+ }
1106
+ socket.end();
1107
+ }
1108
+ catch (e) {
1109
+ socket.destroy();
1110
+ throw e instanceof SdkError ? e : fromConnect(e);
1111
+ }
1112
+ finally {
1113
+ input.end();
1114
+ if (token !== undefined) {
1115
+ try {
1116
+ await this.grpc.revokeSshSession({ token, allowMissing: true }, { signal });
1117
+ }
1118
+ catch {
1119
+ // Best-effort revoke; the token expires on its own regardless.
1120
+ }
1121
+ }
1122
+ }
1123
+ }
1124
+ // Mint a short-lived SSH session token for the sandbox — the input side of
1125
+ // ssh-config / ProxyCommand and forwardTcp authorization.
1126
+ async createSshSession(name, options) {
1127
+ try {
1128
+ const sandbox = await this.get(name, options);
1129
+ const resp = await this.grpc.createSshSession({ ...sandboxTarget(name, options) });
1130
+ // Reject any response outside the proto trust-boundary contract before
1131
+ // handing these values to the caller (they feed OpenSSH ProxyCommand).
1132
+ validateSshResponse(resp, sandbox.id);
1133
+ return {
1134
+ sandboxId: resp.sandboxId,
1135
+ token: resp.token,
1136
+ gatewayHost: resp.gatewayHost,
1137
+ gatewayPort: resp.gatewayPort,
1138
+ gatewayScheme: resp.gatewayScheme,
1139
+ ...(resp.hostKeyFingerprint ? { hostKeyFingerprint: resp.hostKeyFingerprint } : {}),
1140
+ ...(timestampMillis(resp.expirationTime) ? { expiresAtMs: timestampMillis(resp.expirationTime) } : {}),
1141
+ };
1142
+ }
1143
+ catch (e) {
1144
+ throw e instanceof SdkError ? e : fromConnect(e);
1145
+ }
1146
+ }
1147
+ async revokeSshSession(token, options) {
1148
+ try {
1149
+ const resp = await this.grpc.revokeSshSession({ token, allowMissing: options?.allowMissing ?? false });
1150
+ return deletionResult(resp);
1151
+ }
1152
+ catch (e) {
1153
+ throw fromConnect(e);
1154
+ }
1155
+ }
1156
+ async attachProvider(name, provider, options) {
1157
+ try {
1158
+ const resp = await this.grpc.attachSandboxProvider({
1159
+ ...sandboxTarget(name, options),
1160
+ provider,
1161
+ expectedResourceVersion: versionPin(options?.expectedResourceVersion),
1162
+ });
1163
+ return { sandbox: sandboxRef(resp.sandbox), changed: resp.attached };
1164
+ }
1165
+ catch (e) {
1166
+ throw fromConnect(e);
1167
+ }
1168
+ }
1169
+ async detachProvider(name, provider, options) {
1170
+ try {
1171
+ const resp = await this.grpc.detachSandboxProvider({
1172
+ ...sandboxTarget(name, options),
1173
+ provider,
1174
+ expectedResourceVersion: versionPin(options?.expectedResourceVersion),
1175
+ });
1176
+ return { sandbox: sandboxRef(resp.sandbox), changed: resp.detached };
1177
+ }
1178
+ catch (e) {
1179
+ throw fromConnect(e);
1180
+ }
1181
+ }
1182
+ listProviders(name, options) {
1183
+ return new Pager(async (pageToken) => {
1184
+ try {
1185
+ const resp = await this.grpc.listSandboxProviders({
1186
+ ...sandboxTarget(name, options),
1187
+ pageSize: options?.pageSize ?? 0,
1188
+ pageToken,
1189
+ });
1190
+ return {
1191
+ items: resp.providers.map((provider) => providerRef(provider)),
1192
+ nextPageToken: resp.nextPageToken,
1193
+ };
1194
+ }
1195
+ catch (e) {
1196
+ throw fromConnect(e);
1197
+ }
1198
+ }, options?.pageToken ?? '');
1199
+ }
1200
+ /** List and collect every provider attached to this sandbox. */
1201
+ async listAllProviders(name, options) {
1202
+ return this.listProviders(name, options).all();
1203
+ }
1204
+ async getConfig(name, options) {
1205
+ try {
1206
+ await this.get(name, options);
1207
+ const resp = await this.grpc.getSandboxConfig({ ...namedTarget(name, options) }, requestCallOptions(options));
1208
+ return sandboxConfig(resp);
1209
+ }
1210
+ catch (e) {
1211
+ throw e instanceof SdkError ? e : fromConnect(e);
1212
+ }
1213
+ }
1214
+ // Update the sandbox-scoped policy. Sandbox scope (global=false) may only
1215
+ // change network_policies; static fields must match the create-time policy or
1216
+ // the gateway rejects the update. With `wait`, poll getConfig until the
1217
+ // applied policy hash is observed.
1218
+ async setPolicy(name, policy, options) {
1219
+ try {
1220
+ const resp = await this.grpc.updateConfig({
1221
+ ...sandboxTarget(name, options),
1222
+ policy,
1223
+ global: false,
1224
+ expectedResourceVersion: versionPin(options?.expectedResourceVersion),
1225
+ });
1226
+ const result = updateConfigResult(resp);
1227
+ if (options?.wait)
1228
+ await this.waitForPolicyHash(name, result.policyHash, options.waitTimeoutSecs, options.workspace);
1229
+ return result;
1230
+ }
1231
+ catch (e) {
1232
+ throw e instanceof SdkError ? e : fromConnect(e);
1233
+ }
1234
+ }
1235
+ // Upsert a single sandbox-scoped setting. Sandbox-scoped deletes are rejected
1236
+ // by the gateway, so there is no sandbox-scoped delete on this surface.
1237
+ async setSetting(name, key, value, options) {
1238
+ try {
1239
+ const resp = await this.grpc.updateConfig({
1240
+ ...sandboxTarget(name, options),
1241
+ settingKey: key,
1242
+ settingValue: value,
1243
+ global: false,
1244
+ });
1245
+ return updateConfigResult(resp);
1246
+ }
1247
+ catch (e) {
1248
+ throw fromConnect(e);
1249
+ }
1250
+ }
1251
+ // Poll getConfig until the applied policy hash is observed. Each poll RPC is
1252
+ // bounded by the remaining deadline (deadlineOptions), so a stalled getConfig
1253
+ // cannot make the returned promise outlive timeoutSecs.
1254
+ async waitForPolicyHash(name, policyHash, timeoutSecs = 60, workspace) {
1255
+ const deadline = Date.now() + timeoutSecs * 1000;
1256
+ let delay = 100;
1257
+ for (;;) {
1258
+ let config;
1259
+ const pollOptions = deadlineOptions(deadline - Date.now());
1260
+ try {
1261
+ config = await this.getConfig(name, { ...pollOptions, workspace });
1262
+ }
1263
+ catch (e) {
1264
+ if (pollOptions.signal?.aborted || Date.now() >= deadline) {
1265
+ throw new SdkError('connect', `timed out waiting for policy '${policyHash}' on sandbox '${name}'`);
1266
+ }
1267
+ throw e instanceof SdkError ? e : fromConnect(e);
1268
+ }
1269
+ if (config.policyHash === policyHash)
1270
+ return;
1271
+ if (Date.now() >= deadline) {
1272
+ throw new SdkError('connect', `timed out waiting for policy '${policyHash}' on sandbox '${name}'`);
1273
+ }
1274
+ await waitSleep(delay, deadline);
1275
+ delay = Math.min(delay * 2, 2000);
1276
+ }
1277
+ }
1278
+ }
1279
+ // ---- The client ------------------------------------------------------------
1280
+ export class OpenShellClient {
1281
+ /** Sandbox lifecycle + exec: create/get/list/delete, waitReady/waitDeleted, exec. */
1282
+ sandbox;
1283
+ /** Reusable sandbox workload template lifecycle. */
1284
+ sandboxTemplates;
1285
+ /**
1286
+ * Advanced escape hatch: a generated client for every gateway RPC, including
1287
+ * surface the curated sub-clients do not wrap yet (gateway config, provider
1288
+ * CRUD, policy status, watch, logs, and the full observed Sandbox). See
1289
+ * '@nvidia/openshell-sdk/raw' for the generated request/response types.
1290
+ */
1291
+ raw;
1292
+ /** The shared Connect transport, for building extra clients over the same connection. */
1293
+ transport;
1294
+ grpc;
1295
+ constructor(transport) {
1296
+ // One transport (one connection) shared across every scoped client.
1297
+ this.transport = transport;
1298
+ this.grpc = createClient(OpenShell, transport);
1299
+ this.raw = this.grpc;
1300
+ this.sandbox = new SandboxClient(transport, this.grpc);
1301
+ this.sandboxTemplates = new SandboxTemplateClient(transport, this.grpc);
1302
+ }
1303
+ /**
1304
+ * Constructs a lazy Connect client. No network request is made until the
1305
+ * first RPC; call health() when startup must verify gateway reachability.
1306
+ */
1307
+ static async connect(options) {
1308
+ return new OpenShellClient(buildTransport(options));
1309
+ }
1310
+ // Gateway-scoped, so it stays top-level rather than under a namespace.
1311
+ async health() {
1312
+ try {
1313
+ const resp = await this.grpc.health({});
1314
+ return { status: statusName(resp.status), version: resp.version };
1315
+ }
1316
+ catch (e) {
1317
+ throw fromConnect(e);
1318
+ }
1319
+ }
1320
+ }
1321
+ //# sourceMappingURL=client.js.map