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,173 @@
1
+ import { identityContext } from './security.js'
2
+ // Browser terminals. xterm.js runs in the page, a WebSocket ends here, and the
3
+ // gateway's interactive exec sits behind it: the same RPC that
4
+ // `openshell sandbox exec --tty` uses, so nothing new reaches the sandbox.
5
+ //
6
+ // A page first POSTs for a ticket, then opens the socket with it. Browsers
7
+ // cannot add the console's header to a WebSocket handshake, so the ticket
8
+ // carries the same-origin proof instead: it is issued to a checked mutation,
9
+ // used once, and expires after a minute.
10
+ import { STATUS_CODES } from 'node:http'
11
+ import { randomUUID } from 'node:crypto'
12
+ import { WebSocketServer } from 'ws'
13
+ import { defaultSession, isSession, projectOf, sessionArgv, persistentSessionArgv, persistentTerminals } from '../src/lib/sandbox-session.js'
14
+ import { contextKey, gateway, sandboxView } from './gateway.js'
15
+
16
+ const fail = (message, status = 400) => Object.assign(new Error(message), { status })
17
+ const NAME = /^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$/
18
+ const ID = /^[0-9a-f-]{36}$/
19
+ export const TERMINAL_PATH = '/api/os/terminal'
20
+ const TICKET_TTL_MS = 60_000
21
+ // Output waiting for a slow page before reading from the sandbox pauses.
22
+ const BUFFER_LIMIT = 4 * 1024 * 1024
23
+
24
+ // A terminal dimension from the page: a small positive integer, or the fallback.
25
+ export const dimension = (value, fallback) => (Number.isInteger(value) && value > 0 && value <= 1000 ? value : fallback)
26
+
27
+ // What to run for a request, from the gateway's record and the page's choice.
28
+ // The page may ask for a shell or any agent the console launches; anything
29
+ // else is refused before a ticket exists.
30
+ export function planSession(sandbox, input = {}) {
31
+ if (sandbox.phase !== 'ready') throw fail('This sandbox is not running.', 409)
32
+ const session = input.session == null || input.session === '' ? defaultSession(sandbox) : input.session
33
+ if (!isSession(session)) throw fail('Unknown session.')
34
+ const project = projectOf(sandbox)
35
+ return {
36
+ name: sandbox.name,
37
+ session,
38
+ argv: sessionArgv(session),
39
+ workdir: project ? `/sandbox/${project}` : '',
40
+ cols: dimension(input.cols, 80),
41
+ rows: dimension(input.rows, 24),
42
+ }
43
+ }
44
+
45
+ // Single-use tickets with a short life. The clock is injectable for tests.
46
+ export function createTickets({ ttl = TICKET_TTL_MS, now = Date.now } = {}) {
47
+ const tickets = new Map()
48
+ return {
49
+ issue(plan) {
50
+ const ticket = randomUUID()
51
+ tickets.set(ticket, { ...plan, expires: now() + ttl })
52
+ setTimeout(() => tickets.delete(ticket), ttl).unref?.()
53
+ return ticket
54
+ },
55
+ claim(ticket, principal) {
56
+ const plan = ID.test(ticket ?? '') ? tickets.get(ticket) : undefined
57
+ if (!plan) return null
58
+ tickets.delete(ticket)
59
+ return plan.expires > now() && plan.principal === principal ? plan : null
60
+ },
61
+ get size() { return tickets.size },
62
+ }
63
+ }
64
+
65
+ const tickets = createTickets()
66
+
67
+ export async function terminalRoute(method, parts, input) {
68
+ if (method === 'POST' && parts[0] === 'sandboxes' && parts.length === 3 && NAME.test(parts[1]) && parts[2] === 'terminal-session') {
69
+ const { client, target, workspace, workspaceScope } = await gateway()
70
+ const sandbox = { ...sandboxView((await client.raw.getSandbox({ name: parts[1], workspaceScope })).sandbox), workspace }
71
+ const plan = { ...planSession(sandbox, input ?? {}), gateway: target.name, workspace }
72
+ if (persistentTerminals(target, sandbox) && !input?.setupLogin) plan.argv = persistentSessionArgv(plan.session)
73
+ if (input?.setupLogin) {
74
+ const { getSetupStore } = await import('./setups.js')
75
+ const { executeInstaller } = await import('./setup-deployment.js')
76
+ const setup = await getSetupStore().get(input.setupLogin)
77
+ const item = setup.items.find(i => i.id === input.mcp)
78
+ plan.argv = setupLoginArgv(item, setup.id, plan.session)
79
+ const probe = await executeInstaller(client, sandbox, setup, ['codex'], 'probe')
80
+ if (!probe.installed || !probe.targets.includes('codex') || !probe.items.includes(item.id) || probe.revision !== setup.revision) throw fail('Enable this Setup for Codex in the sandbox first.', 409)
81
+ plan.argv = setupLoginArgv(item, setup.id, plan.session, probe.mcpNames?.codex?.[item.id])
82
+ const help = await client.sandbox.exec(sandbox.name, ['codex', 'mcp', 'login', '--help'], {workspace,noLoginShell:true,timeoutSecs:10})
83
+ if (!help.stdout.toString().includes('--no-browser')) throw fail('Update Codex in this image to a version with MCP --no-browser sign-in.',409)
84
+ plan.workdir = '/sandbox'
85
+ }
86
+ return { ticket: tickets.issue({ ...plan, principal: identityContext.getStore()?.uid }), session: plan.session }
87
+ }
88
+ return undefined
89
+ }
90
+
91
+ function refuse(socket, status) {
92
+ socket.write(`HTTP/1.1 ${status} ${STATUS_CODES[status]}\r\nConnection: close\r\n\r\n`)
93
+ socket.destroy()
94
+ }
95
+
96
+ const wss = new WebSocketServer({ noServer: true, maxPayload: 1024 * 1024 })
97
+
98
+ // Handles the console's own upgrade requests and leaves every other one (Vite's
99
+ // HMR socket) alone. `isLocal` is the same check the HTTP routes apply.
100
+ export function terminalUpgrade(req, socket, head, isLocal, principal, allowContext = () => true) {
101
+ const url = new URL(req.url ?? '/', 'http://local')
102
+ if (url.pathname !== TERMINAL_PATH) return false
103
+ if (!isLocal(req)) { refuse(socket, 403); return true }
104
+ const plan = tickets.claim(url.searchParams.get('ticket'), principal)
105
+ if (!plan || plan.principal !== principal) { refuse(socket, 403); return true }
106
+ const requestedContext = url.searchParams.get('context')
107
+ if (!allowContext(plan) || (requestedContext != null && requestedContext !== contextKey(plan))) { refuse(socket, 409); return true }
108
+ wss.handleUpgrade(req, socket, head, (ws) => { run(ws, plan).catch(() => { try { ws.close(1011) } catch {} }) })
109
+ return true
110
+ }
111
+
112
+ // Frames from the page: binary is keyboard input, text is a control message.
113
+ export function controlOf(data, isBinary) {
114
+ if (isBinary) return { type: 'stdin', data }
115
+ let message
116
+ try { message = JSON.parse(data.toString()) } catch { return null }
117
+ if (message?.type === 'resize') return { type: 'resize', cols: dimension(message.cols, 0), rows: dimension(message.rows, 0) }
118
+ return null
119
+ }
120
+
121
+ async function run(ws, plan) {
122
+ const send = (message) => { if (ws.readyState === ws.OPEN) ws.send(JSON.stringify(message)) }
123
+ const { client } = await gateway(plan)
124
+ let session
125
+ try {
126
+ session = await client.sandbox.execInteractive(plan.name, plan.argv, {
127
+ workspace: plan.workspace,
128
+ tty: true, cols: plan.cols, rows: plan.rows, workdir: plan.workdir,
129
+ environment: { TERM: 'xterm-256color', COLORTERM: 'truecolor' },
130
+ })
131
+ } catch (error) {
132
+ send({ type: 'error', message: error.message })
133
+ ws.close(1011)
134
+ return
135
+ }
136
+ const running = () => session.exitCode === undefined
137
+ // The tab may have closed while the exec was starting; a program that
138
+ // prints nothing would otherwise keep the exec alive with nobody attached.
139
+ if (ws.readyState !== ws.OPEN) { session.cancel(); return }
140
+ ws.on('message', (data, isBinary) => {
141
+ const frame = controlOf(data, isBinary)
142
+ if (!frame || !running()) return
143
+ try {
144
+ if (frame.type === 'stdin') session.write(data)
145
+ else if (frame.cols && frame.rows) session.resize(frame.cols, frame.rows)
146
+ } catch { /* input raced the exit */ }
147
+ })
148
+ ws.on('close', () => { if (running()) session.cancel() })
149
+ send({ type: 'ready' })
150
+ const ping = setInterval(() => { if (ws.readyState === ws.OPEN) ws.ping() }, 30_000)
151
+ try {
152
+ for await (const event of session.output) {
153
+ if (ws.readyState !== ws.OPEN) break
154
+ if (event.type === 'exit') { send({ type: 'exit', exitCode: event.exitCode }); break }
155
+ ws.send(event.data, { binary: true })
156
+ while (ws.bufferedAmount > BUFFER_LIMIT && ws.readyState === ws.OPEN) await new Promise((resolve) => setTimeout(resolve, 20))
157
+ }
158
+ if (ws.readyState === ws.OPEN) ws.close(1000)
159
+ } catch (error) {
160
+ send({ type: 'error', message: error.message })
161
+ if (ws.readyState === ws.OPEN) ws.close(1011)
162
+ } finally {
163
+ clearInterval(ping)
164
+ if (running()) session.cancel()
165
+ }
166
+ }
167
+
168
+ // Fixed argv only: neither the browser nor imported configuration supplies a shell command.
169
+ export function setupLoginArgv(item, setupId, session, installedName) {
170
+ if (session !== 'codex' || !/^[a-f0-9]{24}$/.test(setupId) || !item?.config?.url || !/^[a-zA-Z0-9-]{1,100}$/.test(item.id) || item.disabled || item.issues?.length || item.credentialRef) throw fail('Choose an installed remote MCP for Codex sign-in.')
171
+ if (installedName !== undefined && !/^[a-zA-Z0-9_][a-zA-Z0-9_-]{0,99}$/.test(installedName)) throw fail('Invalid installed MCP name.')
172
+ return ['codex', 'mcp', 'login', '--no-browser', installedName ?? `os-${setupId.slice(0,8)}-${item.id.slice(0,8)}`]
173
+ }
@@ -0,0 +1,18 @@
1
+ import { createHmac, timingSafeEqual } from 'node:crypto'
2
+ const denied=()=>Object.assign(Error('Worker request rejected'),{status:403})
3
+ export function signWorkerRequest(key,identity,req,now=Date.now()) {
4
+ const payload=Buffer.from(JSON.stringify({...identity,method:req.method,target:req.url,validUntil:now+30000})).toString('base64url')
5
+ return `${payload}.${createHmac('sha256',key).update(payload).digest('base64url')}`
6
+ }
7
+ export function verifyWorkerRequest(key,owner,req,now=Date.now()) {
8
+ const token=req.headers['x-openrod-worker-auth']
9
+ if(typeof token!=='string'||token.length>5000)throw denied()
10
+ const [payload,mac,extra]=token.split('.')
11
+ if(!payload||!mac||extra)throw denied()
12
+ const expected=createHmac('sha256',key).update(payload).digest(),actual=Buffer.from(mac,'base64url')
13
+ if(actual.length!==expected.length||!timingSafeEqual(actual,expected))throw denied()
14
+ let value
15
+ try{value=JSON.parse(Buffer.from(payload,'base64url').toString())}catch{throw denied()}
16
+ if(value.uid!==owner||value.method!==req.method||value.target!==req.url||!Number.isFinite(value.validUntil)||value.validUntil<=now||value.validUntil>now+60000||!Number.isFinite(value.expires)||value.expires<=now)throw denied()
17
+ return {uid:value.uid,email:value.email,org:value.org,role:value.role,expires:value.expires}
18
+ }
@@ -0,0 +1,103 @@
1
+ // Built-in agent requirements, composed automatically when launching a built template.
2
+ // Image recipes declare agent IDs; they cannot supply arbitrary network permissions.
3
+ const endpoint = (host, access = 'read-write') => ({ host, ports: [443], protocol: 'rest', access, enforcement: 'enforce' })
4
+ // Script-based CLIs use their interpreter as the kernel executable identity.
5
+ // These rules consequently also cover other code run by that interpreter, but
6
+ // only to the listed destinations. Never substitute an all-hosts allow rule.
7
+ const node = ['/usr/local/bin/node', '/usr/bin/node']
8
+ const google = ['generativelanguage.googleapis.com', 'cloudcode-pa.googleapis.com', 'oauth2.googleapis.com', 'accounts.google.com', 'www.googleapis.com', 'aiplatform.googleapis.com', '*.aiplatform.googleapis.com']
9
+ const codeAssistHosts = new Set(['cloudcode-pa.googleapis.com', 'daily-cloudcode-pa.googleapis.com', 'daily-cloudcode-pa.sandbox.googleapis.com'])
10
+ // These RPCs retrieve arbitrary websites through Google's backend, outside
11
+ // sandbox destination enforcement. The installed CLI's search_web uses the
12
+ // non-streaming generateContent RPC; normal chat uses streamGenerateContent.
13
+ // This blocks those built-in tools, not grounding in arbitrary model bodies.
14
+ const antigravityEndpoint = (host) => ({
15
+ ...endpoint(host),
16
+ ...(codeAssistHosts.has(host) ? { deny: ['fetchFromTrawlerCache', 'rewriteUri', 'generateContent'].map(rpc => ({ method: '*', path: `/**:${rpc}*` })) } : {}),
17
+ })
18
+ const modelProviders = ['api.anthropic.com', 'api.openai.com', 'openrouter.ai', 'api.groq.com', 'api.deepseek.com', 'api.mistral.ai', 'api.x.ai', 'generativelanguage.googleapis.com']
19
+ const profile = (name, binaries, hosts) => ({ name, binaries, endpoints: [...new Set(hosts)].map(host => endpoint(host)) })
20
+ // Sources: Gemini CLI code_assist/server.ts and oauth2.ts; NVIDIA provider
21
+ // profiles; kiro.dev/docs/privacy-and-security/firewalls/;
22
+ // cursor.com/docs/enterprise/network-configuration;
23
+ // docs.factory.ai/enterprise/network-and-deployment.
24
+ export const AGENT_ACCESS = {
25
+ claude: {
26
+ name: 'Claude Code',
27
+ binaries: ['/usr/bin/claude', '/usr/local/bin/claude'],
28
+ endpoints: ['api.anthropic.com', 'platform.claude.com', 'claude.ai'].map(host => endpoint(host)),
29
+ authentication: 'Attach a Claude credential or sign in with your subscription after connecting.',
30
+ },
31
+ opencode: {
32
+ name: 'OpenCode',
33
+ // The npm launcher executes this native binary (verified in the built image).
34
+ binaries: ['/usr/local/lib/node_modules/opencode-ai/bin/opencode.exe', '/usr/local/bin/opencode', '/sandbox/.opencode/bin/opencode'],
35
+ endpoints: [endpoint('models.opencode.ai', 'read-only'), endpoint('models.dev', 'read-only'), endpoint('opencode.ai'), ...modelProviders.map(host => endpoint(host))],
36
+ authentication: 'Includes connections for OpenCode’s hosted models. Use /connect for models that require an account. Other model providers need their own network rules and credentials.',
37
+ },
38
+ codex: {
39
+ name: 'Codex',
40
+ binaries: ['/usr/bin/codex', '/usr/local/bin/codex', '/usr/local/lib/node_modules/@openai/**/codex', '/usr/lib/node_modules/@openai/**/codex'],
41
+ endpoints: ['api.openai.com', 'auth.openai.com', 'chatgpt.com', 'ab.chatgpt.com'].map(host => endpoint(host)),
42
+ // Codex's "Sign in with ChatGPT" redirects the host browser to a callback
43
+ // server inside the sandbox, which the browser cannot reach.
44
+ authentication: 'Attach a Codex credential, or run codex after connecting and choose “Sign in with Device Code” (ChatGPT plan) or “Provide your own API key”. “Sign in with ChatGPT” can’t complete from a sandbox.',
45
+ },
46
+ gemini: profile('Gemini CLI', [...node, '/usr/local/bin/gemini'], google),
47
+ // Hosts for Pi's built-in /login flows (pi-ai dist/auth/oauth/*.js).
48
+ pi: {
49
+ ...profile('Pi', [...node, '/usr/local/bin/pi'], [...modelProviders, ...google, 'platform.claude.com', 'claude.ai', 'auth.openai.com', 'chatgpt.com', 'github.com', 'api.github.com', 'api.githubcopilot.com', '*.githubcopilot.com', 'auth.x.ai', 'auth.kimi.com', 'api.kimi.com', 'auth.meta.com', 'api.meta.ai', 'radius.pi.dev']),
50
+ authentication: 'Use /login inside Pi. If sign-in ends on a "site can’t be reached" page, copy the full URL from the address bar, paste it into Pi and press Enter.',
51
+ },
52
+ aider: profile('Aider', ['/usr/local/bin/aider', '/opt/aider/bin/python*', '/usr/bin/python3*', '/usr/local/bin/python3*'], modelProviders),
53
+ copilot: profile('GitHub Copilot', [...node, '/usr/local/bin/copilot', '/usr/local/lib/node_modules/@github/**/copilot', '/usr/lib/node_modules/@github/**/copilot'], ['github.com', 'api.github.com', 'api.githubcopilot.com', '*.githubcopilot.com', 'copilot-proxy.githubusercontent.com']),
54
+ cursor: {
55
+ ...profile('Cursor', ['/sandbox/.local/bin/cursor-agent', '/sandbox/.local/share/cursor-agent/**', '/usr/local/bin/cursor-agent'], []),
56
+ endpoints: [
57
+ ...['cursor.com', 'api2.cursor.sh', 'api3.cursor.sh', '*.cursor.sh', '*.cursorapi.com'].map(host => endpoint(host)),
58
+ // The nested agent host needs an explicit rule. REST inspection rejects
59
+ // its TLS ALPN negotiation; keep its encrypted transport intact.
60
+ { host: 'agentn.global.api5.cursor.sh', ports: [443], protocol: 'tcp', tlsSkip: true },
61
+ ],
62
+ },
63
+ antigravity: {
64
+ ...profile('Antigravity', ['/sandbox/.local/bin/agy', '/sandbox/.antigravity/**', '/sandbox/.local/share/antigravity/**', '/usr/local/bin/agy', ...node], []),
65
+ endpoints: [
66
+ ...[...google, 'antigravity.google', 'daily-cloudcode-pa.googleapis.com', 'daily-cloudcode-pa.sandbox.googleapis.com'].map(antigravityEndpoint),
67
+ // Sign-in eligibility fetches the Google account's profile picture.
68
+ endpoint('lh3.googleusercontent.com', 'read-only'),
69
+ ],
70
+ },
71
+ kiro: profile('Kiro', ['/sandbox/.local/bin/kiro-cli', '/sandbox/.local/bin/kiro-cli-chat', '/usr/local/bin/kiro-cli'], ['app.kiro.dev', 'prod.us-east-1.auth.desktop.kiro.dev', 'runtime.us-east-1.kiro.dev', 'runtime.eu-central-1.kiro.dev', 'management.us-east-1.kiro.dev', 'management.eu-central-1.kiro.dev', 'q.us-east-1.amazonaws.com', 'q.eu-central-1.amazonaws.com', 'oidc.us-east-1.amazonaws.com', 'oidc.eu-central-1.amazonaws.com', 'cognito-identity.us-east-1.amazonaws.com', 'view.awsapps.com']),
72
+ droid: profile('Factory Droid', ['/sandbox/.local/bin/droid', '/sandbox/.factory/bin/**', '/usr/local/bin/droid'], ['factory.ai', '*.factory.ai', ...modelProviders]),
73
+ }
74
+
75
+ // Image tools chosen as recipe runtimes. VS Code Remote-SSH downloads a server
76
+ // matching the user's VS Code version when it connects, so the image cannot
77
+ // ship it: the sandbox fetches it with curl (or wget), then the server's CLI.
78
+ const download = (host) => ({ host, ports: [443], protocol: 'rest', enforcement: 'enforce', allow: [{ method: 'GET', path: '/**' }] })
79
+ export const TOOL_ACCESS = {
80
+ vscode: {
81
+ name: 'VS Code Server',
82
+ rule: 'tool-vscode-server',
83
+ binaries: ['/usr/bin/curl', '/usr/bin/wget', '/sandbox/.vscode-server/**'],
84
+ endpoints: ['update.code.visualstudio.com', 'vscode.download.prss.microsoft.com'].map(download),
85
+ },
86
+ }
87
+
88
+ export function agentAccessFor(recipe) {
89
+ // Only built recipes have known installation locations. An existing image
90
+ // keeps its policy as chosen; we do not guess what it contains.
91
+ if (recipe?.source !== 'build') return { profiles: [], unsupported: [] }
92
+ const ids = [...new Set(recipe.agents ?? [])]
93
+ return {
94
+ profiles: [...ids.filter(id => AGENT_ACCESS[id]).map(id => ({ id, rule: `agent-${id}`, ...AGENT_ACCESS[id] })), ...[...new Set(recipe.runtimes ?? [])].filter(id => TOOL_ACCESS[id]).map(id => ({ id, ...TOOL_ACCESS[id] }))],
95
+ unsupported: ids.filter(id => !AGENT_ACCESS[id]),
96
+ }
97
+ }
98
+
99
+ export function agentAccessRules(recipe) {
100
+ const { profiles, unsupported } = agentAccessFor(recipe)
101
+ if (unsupported.length) throw new Error(`Automatic network access is not configured for: ${unsupported.join(', ')}. Add a reviewed agent access profile before launching this template.`)
102
+ return profiles.map(({ rule, binaries, endpoints }) => ({ name: rule, binaries, endpoints }))
103
+ }
@@ -0,0 +1,9 @@
1
+ // Behavioral guidance only. The gateway policy remains the enforcement boundary.
2
+ export const ANTIGRAVITY_NETWORK_GUIDANCE = `
3
+ ## OpenShell website access
4
+
5
+ Network access is restricted per destination, not globally offline. A denied website or hosted search request does not mean another website is blocked.
6
+ For a user-requested website, call read_url_content for that website. Hosted URL fetch and search services are deliberately blocked because they bypass the sandbox destination policy. read_url_content can fall back to a direct request from this sandbox, where the website policy applies.
7
+ If a request is denied, report that specific destination or service as blocked. On a later request for a different website, try that website independently; do not reuse an earlier denial as evidence that all internet access is unavailable. Do not claim to have fetched current content without a successful tool result.
8
+ Do not use hosted search, external proxies, or other relay services to bypass a blocked destination. Never change network policy to complete a browsing request.
9
+ `
@@ -0,0 +1,33 @@
1
+ export const GROUP_LABEL = 'openshell.console/group'
2
+ export const GROUP_LABEL_PREFIX = 'openshell.console/group-'
3
+
4
+ // Accept the original single-group format when reading saved state or requests.
5
+ export function groupIds(value) {
6
+ if (value == null) return []
7
+ const ids = Array.isArray(value) ? value : [value]
8
+ if (ids.some((id) => typeof id !== 'string' || !id)) throw new Error('Groups must be a list of group IDs.')
9
+ return [...new Set(ids)]
10
+ }
11
+
12
+ export function groupsFromLabels(labels = {}) {
13
+ const ids = Object.entries(labels).filter(([key, value]) => key.startsWith(GROUP_LABEL_PREFIX) && value === 'true').map(([key]) => key.slice(GROUP_LABEL_PREFIX.length))
14
+ return ids.length ? ids : groupIds(labels[GROUP_LABEL])
15
+ }
16
+
17
+ // One label per group avoids the size and character limits of label values.
18
+ export function labelsForGroups(value) {
19
+ return Object.fromEntries(groupIds(value).map((id) => [`${GROUP_LABEL_PREFIX}${id}`, 'true']))
20
+ }
21
+
22
+ export function groupsOf(sandbox, members, groups) {
23
+ const ids = Object.hasOwn(members, sandbox.name) ? groupIds(members[sandbox.name]) : groupsFromLabels(sandbox.labels)
24
+ return ids.filter((id) => groups.some((g) => g.id === id))
25
+ }
26
+
27
+ export function changeGroups(current, requested, mode = 'replace') {
28
+ const ids = groupIds(requested)
29
+ if (mode === 'add') return groupIds([...groupIds(current), ...ids])
30
+ if (mode === 'remove') return groupIds(current).filter((id) => !ids.includes(id))
31
+ if (mode === 'replace') return ids
32
+ throw new Error('Unknown membership operation.')
33
+ }
@@ -0,0 +1,29 @@
1
+ import { groupIds } from './group-membership.js'
2
+
3
+ // Shared by launch previews and the server. Legacy global/per-sandbox rules
4
+ // remain readable, but do not satisfy the required group policy assignment.
5
+ export function groupNetworkPolicies(policies = [], group) {
6
+ const ids = groupIds(group)
7
+ return policies.filter((p) => !p.appliesTo.everyone && p.appliesTo.groups.some((id) => ids.includes(id)))
8
+ }
9
+
10
+ export function assertPolicyGroup(policy, groups) {
11
+ const to = policy.appliesTo
12
+ if (to.everyone || to.sandboxes.length || !to.groups.length) throw new Error('Choose at least one group for this network rule.')
13
+ if (to.groups.some((id) => !groups.some((g) => g.id === id))) throw new Error('Unknown group.')
14
+ }
15
+
16
+ export function assertSandboxGroup(group, groups, policies) {
17
+ const ids = groupIds(group)
18
+ if (!ids.length) throw new Error('Choose at least one group for this sandbox.')
19
+ if (ids.some((id) => !groups.some((g) => g.id === id))) throw new Error('Unknown group.')
20
+ if (!groupNetworkPolicies(policies, group).length) throw new Error('Add a network rule to at least one selected group before creating or updating a sandbox.')
21
+ }
22
+
23
+ export function assertPolicyCoverage(before, after, memberships) {
24
+ for (const group of memberships) {
25
+ if (groupNetworkPolicies(before, group).length && !groupNetworkPolicies(after, group).length) {
26
+ throw new Error('This is the last network rule inherited by a sandbox. Add another rule or update its groups first.')
27
+ }
28
+ }
29
+ }
@@ -0,0 +1,79 @@
1
+ // Network additions share the Restricted filesystem baseline. Agent and secret
2
+ // connections are composed separately at launch, regardless of these choices.
3
+ const filesystem = {
4
+ workdir: true,
5
+ readOnly: ['/bin', '/usr', '/lib', '/proc', '/dev/urandom', '/etc', '/var/log'],
6
+ readWrite: ['/tmp', '/dev/null'],
7
+ }
8
+ const https = (host, access = 'read-only') => ({ host, ports: [443], protocol: 'rest', access, enforcement: 'enforce' })
9
+ const gitPrograms = [
10
+ '/usr/lib/git-core/git-remote-http', '/usr/lib/git-core/git-remote-https',
11
+ '/usr/libexec/git-core/git-remote-http', '/usr/libexec/git-core/git-remote-https',
12
+ '/usr/bin/gh', '/usr/local/bin/gh', '/usr/bin/curl', '/usr/local/bin/curl',
13
+ ]
14
+ const preset = (id, name, description, rules, kind = 'access') => ({
15
+ id, name, description, kind, builtin: true, filesystem, landlock: 'best_effort', rules,
16
+ })
17
+
18
+ export const BUILTIN_TEMPLATES = [
19
+ // Keep the persisted ID so existing group and API references still resolve.
20
+ preset('locked-down', 'Restricted',
21
+ 'Workspace and temporary files are writable; system folders are read-only. Includes selected agent connections and attached-secret access. Additional network access must be explicitly allowed.', [], 'baseline'),
22
+ preset('github-read', 'GitHub - Read',
23
+ 'Clone and fetch repositories, read GitHub API data, and download repository files over HTTPS using Git, gh, or curl. Private repositories require credentials. This addition grants no push or API-write access.', [
24
+ { name: 'github-access', binaries: gitPrograms, endpoints: [
25
+ { host: 'github.com', ports: [443], protocol: 'rest', enforcement: 'enforce',
26
+ allow: [{ method: 'GET', path: '/**' }, { method: 'HEAD', path: '/**' }, { method: 'OPTIONS', path: '/**' }, { method: 'POST', path: '/*/*/git-upload-pack' }],
27
+ deny: [{ method: '*', path: '/*/*/git-receive-pack' }] },
28
+ https('api.github.com'), https('codeload.github.com'), https('raw.githubusercontent.com'),
29
+ ] },
30
+ ]),
31
+ preset('github-write', 'GitHub - Read & Write',
32
+ 'Read and push repositories and write GitHub API data, including pull requests, issues, and comments, over HTTPS using Git, gh, or curl. Credentials determine which repositories and actions are available.', [
33
+ { name: 'github-access', binaries: gitPrograms, endpoints: [
34
+ https('github.com', 'read-write'), https('api.github.com', 'read-write'),
35
+ https('codeload.github.com'), https('raw.githubusercontent.com'),
36
+ ] },
37
+ ]),
38
+ preset('python-packages', 'Python - Packages',
39
+ 'Download packages from PyPI and files.pythonhosted.org using Python. No publishing access is added. Other sources and destinations used by install scripts require separate rules.', [
40
+ { name: 'pypi', binaries: ['/usr/bin/python3*', '/usr/local/bin/python3*', '/usr/local/venv/bin/python*', '/opt/aider/bin/python*'],
41
+ endpoints: [https('pypi.org'), https('files.pythonhosted.org')] },
42
+ ]),
43
+ preset('node-packages', 'Node.js - Packages',
44
+ 'Download packages from registry.npmjs.org using Node.js. No publishing access is added. Git dependencies and destinations used by install scripts require separate rules.', [
45
+ { name: 'npm', binaries: ['/usr/bin/node', '/usr/local/bin/node'], endpoints: [https('registry.npmjs.org')] },
46
+ ]),
47
+ ]
48
+
49
+ export const ACCESS_TEMPLATES = BUILTIN_TEMPLATES.filter((template) => template.kind === 'access')
50
+
51
+ export function normalizeAccessTemplates(ids = [], catalog = BUILTIN_TEMPLATES) {
52
+ if (!Array.isArray(ids) || ids.length > 16 || ids.some((id) => !catalog.some((template) => template.kind === 'access' && template.id === id))) {
53
+ throw new Error('Choose valid additional access templates.')
54
+ }
55
+ // Write includes read. Never retain the read rule's push denial alongside it.
56
+ return [...new Set(ids)].filter((id) => id !== 'github-read' || !ids.includes('github-write'))
57
+ }
58
+
59
+ export function toggleAccessTemplate(ids, id, catalog = BUILTIN_TEMPLATES) {
60
+ if (ids.includes(id)) return ids.filter((value) => value !== id)
61
+ const other = id === 'github-read' ? 'github-write' : id === 'github-write' ? 'github-read' : null
62
+ return normalizeAccessTemplates([...ids.filter((value) => value !== other), id], catalog)
63
+ }
64
+
65
+ export function composeTemplate(template, additional = [], catalog = BUILTIN_TEMPLATES) {
66
+ const ids = normalizeAccessTemplates([
67
+ ...normalizeAccessTemplates(template.accessTemplates, catalog),
68
+ ...normalizeAccessTemplates(additional, catalog),
69
+ ...(template.kind === 'access' ? [template.id] : []),
70
+ ], catalog)
71
+ const rules = new Map((template.kind === 'access' ? [] : template.rules).map((rule) => [rule.name, rule]))
72
+ for (const id of ids) {
73
+ for (const rule of catalog.find((item) => item.id === id).rules) {
74
+ if (rules.has(rule.name)) throw new Error(`Additional access conflicts with rule "${rule.name}". Edit the saved policy or choose another addition.`)
75
+ rules.set(rule.name, rule)
76
+ }
77
+ }
78
+ return { ...template, rules: [...rules.values()], accessTemplates: ids }
79
+ }
@@ -0,0 +1,35 @@
1
+ // Uses the installed gateway profile, including its required flags and aliases.
2
+ export function setupIssue(profile) {
3
+ if (profile.id === 'aws-bedrock') return 'This profile requires an upstream Bedrock bridge. Direct AWS credential authentication is not implemented by this profile; this form cannot configure the bridge.'
4
+ if ((profile.credentials ?? []).some((c) => c.refresh === true || c.refresh?.strategy)) return 'This profile requires managed credential refresh setup. Configure it with the OpenShell CLI; this form does not yet support its refresh material.'
5
+ if ((profile.credentials ?? []).some((c) => !c.envVars?.length)) return 'This profile has credentials without environment mappings and cannot be configured in this form.'
6
+ return null
7
+ }
8
+ export function credentialFields(profile) {
9
+ return (profile.credentials ?? []).map((c) => ({ ...c, key: c.envVars?.[0], label: c.description || c.name,
10
+ placeholder: c.name === 'account_id' ? 'Enter account ID' : /token/.test(c.name) ? 'Paste token' : 'Paste API key',
11
+ inputType: c.name === 'account_id' ? 'text' : 'password' }))
12
+ }
13
+ export function validateSecretCredentials(profile, input) {
14
+ const issue = setupIssue(profile)
15
+ if (issue) throw new Error(issue)
16
+ if (!input || typeof input !== 'object' || Array.isArray(input)) throw new Error('Credentials must be an object.')
17
+ const definitions = profile.credentials ?? []
18
+ const allowed = new Set(definitions.flatMap((c) => c.envVars ?? []))
19
+ const result = {}
20
+ for (const [key, value] of Object.entries(input)) {
21
+ if (!allowed.has(key)) throw new Error(`${key} is not a credential of this profile.`)
22
+ if (typeof value !== 'string') throw new Error(`${key} must be text.`)
23
+ if (!value) continue
24
+ if (!value.trim() || value !== value.trim() || /[\r\n\x00]/.test(value)) throw new Error(`${key} contains whitespace or line breaks. Paste only the credential value.`)
25
+ if (value.length > 8192) throw new Error(`${key} is too long.`)
26
+ result[key] = value
27
+ }
28
+ for (const c of definitions) {
29
+ const supplied = c.envVars.filter((key) => result[key])
30
+ if (c.required && !supplied.length) throw new Error(`${c.description || c.name} is required.`)
31
+ if (new Set(supplied.map((key) => result[key])).size > 1) throw new Error(`Aliases for ${c.name} must contain the same value.`)
32
+ }
33
+ if (definitions.length && !Object.keys(result).length) throw new Error('Enter at least one credential.')
34
+ return result
35
+ }
@@ -0,0 +1,25 @@
1
+ // Shared presentation/eligibility rules; the server still checks policy and pins.
2
+ export const PACKAGE_PENDING = 'Not downloaded yet. Import downloads this npm package and checks that it starts, in a temporary sandbox.'
3
+ // The legacy prefix keeps Setups saved before PACKAGE_PENDING preparable.
4
+ export const isPackagePending = issue => issue === PACKAGE_PENDING || issue.startsWith('Prepare package')
5
+ export const cannotRun = item => item.kind === 'mcp' && !item.disabled && !item.config && !item.configuration && !item.package
6
+ export function packageRuntimeRequirements(plan) {
7
+ const host = new Map([['shadcn', 'ui.shadcn.com'], ['@magicuidesign/mcp', 'magicui.design']]).get(plan?.name)
8
+ return host ? [{ phase: 'runtime', host, port: 443, reason: 'Default component registry this MCP reads from.' }] : []
9
+ }
10
+ export function canPrepareAtLaunch(item) {
11
+ const retryable = new Set(item.preparationIssues || [])
12
+ return Boolean(!item.disabled && item.package && !item.artifact && !item.credentialFields?.length && item.issues.every(issue => isPackagePending(issue) || retryable.has(issue)))
13
+ }
14
+ export function launchableItem(item) {
15
+ return !item.disabled && (!item.issues.length || canPrepareAtLaunch(item))
16
+ }
17
+ export function launchRequirements(item) {
18
+ const requirements = item.requirements || []
19
+ return [...requirements, ...packageRuntimeRequirements(item.package).filter(r => !requirements.some(old => old.host === r.host && old.phase === r.phase))]
20
+ }
21
+
22
+ export function assertPackagesPrepared(setups) {
23
+ const pending = setups.flatMap(setup => setup.items.filter(canPrepareAtLaunch).map(item => item.name))
24
+ if (pending.length) throw Object.assign(new Error(`MCP packages are not prepared: ${pending.join(', ')}. Retry creation with automatic preparation, or rebuild the selected image template. No sandbox was created.`), { status: 409 })
25
+ }
@@ -0,0 +1,11 @@
1
+ import catalog from './setup-targets.json' with { type: 'json' }
2
+
3
+ export const SETUP_AGENTS = catalog
4
+ export const SETUP_TARGETS = catalog.filter(agent => agent.config && agent.skills)
5
+ export const setupTarget = id => SETUP_TARGETS.find(agent => agent.id === id)
6
+ export const setupTargetsFor = ids => ids.filter(id => Boolean(setupTarget(id)))
7
+ export function validateSetupTargets(targets) {
8
+ if (!Array.isArray(targets) || !targets.length || targets.length > SETUP_TARGETS.length || new Set(targets).size !== targets.length) throw new Error('Choose one or more supported agents for this Setup.')
9
+ for (const id of targets) if (!setupTarget(id)) throw new Error(catalog.find(agent => agent.id === id)?.reason || 'Unknown Setup agent.')
10
+ return targets
11
+ }
@@ -0,0 +1,12 @@
1
+ [
2
+ { "id": "claude", "name": "Claude Code", "command": "claude", "config": ".claude.json", "key": "mcpServers", "format": "claude", "skills": ".claude/skills" },
3
+ { "id": "codex", "name": "Codex", "command": "codex", "config": ".codex/config.toml", "key": "mcp_servers", "format": "codex", "skills": ".agents/skills", "extraSkillRoots": [".codex/skills"] },
4
+ { "id": "opencode", "name": "OpenCode", "command": "opencode", "config": ".config/opencode/opencode.json", "alternateConfig": ".config/opencode/opencode.jsonc", "key": "mcp", "format": "opencode", "skills": ".config/opencode/skills", "extraSkillRoots": [".claude/skills", ".agents/skills"] },
5
+ { "id": "pi", "name": "Pi", "command": "pi", "config": ".pi/agent/mcp.json", "key": "mcpServers", "format": "json", "skills": ".pi/agent/skills", "extraSkillRoots": [".agents/skills"], "note": "Requires a Pi version with built-in MCP support; MCP extensions can override it." },
6
+ { "id": "cursor", "name": "Cursor", "command": "cursor-agent", "config": ".cursor/mcp.json", "key": "mcpServers", "format": "json", "skills": ".cursor/skills" },
7
+ { "id": "antigravity", "name": "Antigravity CLI", "command": "agy", "config": ".gemini/config/mcp_config.json", "key": "mcpServers", "format": "antigravity", "skills": ".gemini/config/skills" },
8
+ { "id": "copilot", "name": "GitHub Copilot", "command": "copilot", "config": ".copilot/mcp-config.json", "key": "mcpServers", "format": "copilot", "skills": ".copilot/skills" },
9
+ { "id": "kiro", "name": "Kiro CLI", "command": "kiro-cli", "config": ".kiro/settings/mcp.json", "key": "mcpServers", "format": "json", "skills": ".kiro/skills" },
10
+ { "id": "droid", "name": "Factory Droid", "command": "droid", "config": ".factory/mcp.json", "key": "mcpServers", "format": "droid", "skills": ".factory/skills" },
11
+ { "id": "aider", "name": "Aider", "command": "aider", "reason": "Aider has no supported native MCP or SKILL.md setup integration. Choose another agent to use this Setup." }
12
+ ]
@@ -0,0 +1,52 @@
1
+ import { activityRow } from './activity-inventory.js'
2
+
3
+ // Pinned contract: https://github.com/ocsf/ocsf-schema/tree/v1.4.0
4
+ // Base Event is deliberately used: shorthand lacks the evidence required to
5
+ // faithfully populate specialized network/process/authentication classes.
6
+ export const OCSF_VERSION = '1.4.0'
7
+ export function toOCSF(event) {
8
+ const sourceTime = Date.parse(event.at)
9
+ const receivedTime = Date.parse(event.receivedAt)
10
+ if (!Number.isFinite(sourceTime) && !Number.isFinite(receivedTime)) throw new Error('OCSF export requires an event or collection timestamp')
11
+ const severity = { INFO: 1, INFORMATIONAL: 1, LOW: 2, MED: 3, MEDIUM: 3, HIGH: 4, CRITICAL: 5, FATAL: 6 }[String(event.severity).toUpperCase()] ?? 0
12
+ const action = event.action || event.method
13
+ return {
14
+ category_uid: 0, class_uid: 0, activity_id: action ? 99 : 0, type_uid: action ? 99 : 0,
15
+ ...(action ? { activity_name: action } : {}),
16
+ severity_id: severity,
17
+ time: Number.isFinite(sourceTime) ? sourceTime : receivedTime,
18
+ metadata: {
19
+ version: OCSF_VERSION,
20
+ product: { name: 'OpenRod', vendor_name: 'OpenRod' },
21
+ ...(event.id ? { uid: event.id } : {}),
22
+ ...(Number.isFinite(receivedTime) ? { logged_time: receivedTime } : {}),
23
+ ...(event.correlationId ? { correlation_uid: event.correlationId } : {}),
24
+ },
25
+ ...(event.message ? { message: event.message } : {}),
26
+ status_id: event.outcome === 'success' ? 1 : event.outcome === 'failure' ? 2 : 0,
27
+ raw_data: JSON.stringify(event.original ?? event),
28
+ unmapped: { openshell: event, time_basis: Number.isFinite(sourceTime) ? 'source_event' : 'collection_time; source timestamp unavailable' },
29
+ }
30
+ }
31
+ export function exportEvent(event, format = 'json', columns) {
32
+ if (!Array.isArray(columns)) return format === 'ocsf' ? toOCSF(event) : event
33
+ const values = activityRow(event).values
34
+ const selected = Object.fromEntries(columns.filter((key) => Object.hasOwn(values, key)).map((key) => [key, values[key]]))
35
+ if (format !== 'ocsf') return selected
36
+ const base = toOCSF(event)
37
+ return {
38
+ category_uid: 0, class_uid: 0,
39
+ activity_id: columns.includes('action') ? base.activity_id : 0,
40
+ type_uid: columns.includes('action') ? base.type_uid : 0,
41
+ ...(columns.includes('action') && base.activity_name ? { activity_name: base.activity_name } : {}),
42
+ severity_id: columns.includes('severity') ? base.severity_id : 0,
43
+ time: base.time,
44
+ metadata: { version: OCSF_VERSION, product: base.metadata.product },
45
+ unmapped: { openshell: selected, time_basis: base.unmapped.time_basis },
46
+ }
47
+ }
48
+ export function exportDocument(events, context, format = 'json') {
49
+ const selected = events.map((event) => exportEvent(event, format, context?.columns))
50
+ if (format === 'ocsf') return selected
51
+ return { exportedAt: new Date().toISOString(), context, events: selected }
52
+ }