@bolt-foundry/gambit 0.8.1 → 0.8.5-rc.4

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 (291) hide show
  1. package/CHANGELOG.md +110 -2
  2. package/README.md +108 -23
  3. package/esm/_dnt.polyfills.d.ts +17 -0
  4. package/esm/_dnt.polyfills.d.ts.map +1 -1
  5. package/esm/_dnt.polyfills.js +122 -0
  6. package/esm/deps/jsr.io/@std/collections/1.1.5/deep_merge.d.ts +322 -0
  7. package/esm/deps/jsr.io/@std/collections/1.1.5/deep_merge.d.ts.map +1 -0
  8. package/esm/deps/jsr.io/@std/collections/1.1.5/deep_merge.js +105 -0
  9. package/esm/deps/jsr.io/@std/fs/1.0.22/_create_walk_entry.d.ts +14 -0
  10. package/esm/deps/jsr.io/@std/fs/1.0.22/_create_walk_entry.d.ts.map +1 -0
  11. package/esm/deps/jsr.io/@std/fs/1.0.22/_create_walk_entry.js +34 -0
  12. package/esm/deps/jsr.io/@std/fs/1.0.22/_get_file_info_type.d.ts +13 -0
  13. package/esm/deps/jsr.io/@std/fs/1.0.22/_get_file_info_type.d.ts.map +1 -0
  14. package/esm/deps/jsr.io/@std/fs/1.0.22/_get_file_info_type.js +18 -0
  15. package/esm/deps/jsr.io/@std/fs/1.0.22/_is_same_path.d.ts +10 -0
  16. package/esm/deps/jsr.io/@std/fs/1.0.22/_is_same_path.d.ts.map +1 -0
  17. package/esm/deps/jsr.io/@std/fs/1.0.22/_is_same_path.js +17 -0
  18. package/esm/deps/jsr.io/@std/fs/1.0.22/_is_subdir.d.ts +12 -0
  19. package/esm/deps/jsr.io/@std/fs/1.0.22/_is_subdir.d.ts.map +1 -0
  20. package/esm/deps/jsr.io/@std/fs/1.0.22/_is_subdir.js +25 -0
  21. package/esm/deps/jsr.io/@std/fs/1.0.22/_to_path_string.d.ts +9 -0
  22. package/esm/deps/jsr.io/@std/fs/1.0.22/_to_path_string.d.ts.map +1 -0
  23. package/esm/deps/jsr.io/@std/fs/1.0.22/_to_path_string.js +13 -0
  24. package/esm/deps/jsr.io/@std/fs/1.0.22/copy.d.ts +117 -0
  25. package/esm/deps/jsr.io/@std/fs/1.0.22/copy.d.ts.map +1 -0
  26. package/esm/deps/jsr.io/@std/fs/1.0.22/copy.js +313 -0
  27. package/esm/deps/jsr.io/@std/fs/1.0.22/empty_dir.d.ts +48 -0
  28. package/esm/deps/jsr.io/@std/fs/1.0.22/empty_dir.d.ts.map +1 -0
  29. package/esm/deps/jsr.io/@std/fs/1.0.22/empty_dir.js +87 -0
  30. package/esm/deps/jsr.io/@std/fs/1.0.22/ensure_dir.d.ts +49 -0
  31. package/esm/deps/jsr.io/@std/fs/1.0.22/ensure_dir.d.ts.map +1 -0
  32. package/esm/deps/jsr.io/@std/fs/1.0.22/ensure_dir.js +102 -0
  33. package/esm/deps/jsr.io/@std/fs/1.0.22/ensure_file.d.ts +47 -0
  34. package/esm/deps/jsr.io/@std/fs/1.0.22/ensure_file.d.ts.map +1 -0
  35. package/esm/deps/jsr.io/@std/fs/1.0.22/ensure_file.js +90 -0
  36. package/esm/deps/jsr.io/@std/fs/1.0.22/ensure_link.d.ts +49 -0
  37. package/esm/deps/jsr.io/@std/fs/1.0.22/ensure_link.d.ts.map +1 -0
  38. package/esm/deps/jsr.io/@std/fs/1.0.22/ensure_link.js +61 -0
  39. package/esm/deps/jsr.io/@std/fs/1.0.22/ensure_symlink.d.ts +70 -0
  40. package/esm/deps/jsr.io/@std/fs/1.0.22/ensure_symlink.d.ts.map +1 -0
  41. package/esm/deps/jsr.io/@std/fs/1.0.22/ensure_symlink.js +156 -0
  42. package/esm/deps/jsr.io/@std/fs/1.0.22/eol.d.ts +52 -0
  43. package/esm/deps/jsr.io/@std/fs/1.0.22/eol.d.ts.map +1 -0
  44. package/esm/deps/jsr.io/@std/fs/1.0.22/eol.js +67 -0
  45. package/esm/deps/jsr.io/@std/fs/1.0.22/exists.d.ts +218 -0
  46. package/esm/deps/jsr.io/@std/fs/1.0.22/exists.d.ts.map +1 -0
  47. package/esm/deps/jsr.io/@std/fs/1.0.22/exists.js +271 -0
  48. package/esm/deps/jsr.io/@std/fs/1.0.22/expand_glob.d.ts +267 -0
  49. package/esm/deps/jsr.io/@std/fs/1.0.22/expand_glob.d.ts.map +1 -0
  50. package/esm/deps/jsr.io/@std/fs/1.0.22/expand_glob.js +442 -0
  51. package/esm/deps/jsr.io/@std/fs/1.0.22/mod.d.ts +29 -0
  52. package/esm/deps/jsr.io/@std/fs/1.0.22/mod.d.ts.map +1 -0
  53. package/esm/deps/jsr.io/@std/fs/1.0.22/mod.js +29 -0
  54. package/esm/deps/jsr.io/@std/fs/1.0.22/move.d.ts +86 -0
  55. package/esm/deps/jsr.io/@std/fs/1.0.22/move.d.ts.map +1 -0
  56. package/esm/deps/jsr.io/@std/fs/1.0.22/move.js +142 -0
  57. package/esm/deps/jsr.io/@std/fs/1.0.22/walk.d.ts +777 -0
  58. package/esm/deps/jsr.io/@std/fs/1.0.22/walk.d.ts.map +1 -0
  59. package/esm/deps/jsr.io/@std/fs/1.0.22/walk.js +846 -0
  60. package/esm/deps/jsr.io/@std/json/1.0.2/types.d.ts +5 -0
  61. package/esm/deps/jsr.io/@std/json/1.0.2/types.d.ts.map +1 -0
  62. package/esm/deps/jsr.io/@std/json/1.0.2/types.js +3 -0
  63. package/esm/deps/jsr.io/@std/jsonc/1.0.2/mod.d.ts +20 -0
  64. package/esm/deps/jsr.io/@std/jsonc/1.0.2/mod.d.ts.map +1 -0
  65. package/esm/deps/jsr.io/@std/jsonc/1.0.2/mod.js +21 -0
  66. package/esm/deps/jsr.io/@std/jsonc/1.0.2/parse.d.ts +21 -0
  67. package/esm/deps/jsr.io/@std/jsonc/1.0.2/parse.d.ts.map +1 -0
  68. package/esm/deps/jsr.io/@std/jsonc/1.0.2/parse.js +320 -0
  69. package/esm/deps/jsr.io/@std/toml/1.0.11/_parser.d.ts +93 -0
  70. package/esm/deps/jsr.io/@std/toml/1.0.11/_parser.d.ts.map +1 -0
  71. package/esm/deps/jsr.io/@std/toml/1.0.11/_parser.js +753 -0
  72. package/esm/deps/jsr.io/@std/toml/1.0.11/mod.d.ts +109 -0
  73. package/esm/deps/jsr.io/@std/toml/1.0.11/mod.d.ts.map +1 -0
  74. package/esm/deps/jsr.io/@std/toml/1.0.11/mod.js +110 -0
  75. package/esm/deps/jsr.io/@std/toml/1.0.11/parse.d.ts +21 -0
  76. package/esm/deps/jsr.io/@std/toml/1.0.11/parse.d.ts.map +1 -0
  77. package/esm/deps/jsr.io/@std/toml/1.0.11/parse.js +25 -0
  78. package/esm/deps/jsr.io/@std/toml/1.0.11/stringify.d.ts +35 -0
  79. package/esm/deps/jsr.io/@std/toml/1.0.11/stringify.d.ts.map +1 -0
  80. package/esm/deps/jsr.io/@std/toml/1.0.11/stringify.js +283 -0
  81. package/esm/gambit/simulator-ui/dist/bundle.js +12085 -5691
  82. package/esm/gambit/simulator-ui/dist/bundle.js.map +4 -4
  83. package/esm/gambit/simulator-ui/dist/favicon.ico +0 -0
  84. package/esm/mod.d.ts +21 -7
  85. package/esm/mod.d.ts.map +1 -1
  86. package/esm/mod.js +14 -4
  87. package/esm/src/cli_utils.d.ts +1 -0
  88. package/esm/src/cli_utils.d.ts.map +1 -1
  89. package/esm/src/cli_utils.js +52 -4
  90. package/esm/src/default_runtime.d.ts +46 -0
  91. package/esm/src/default_runtime.d.ts.map +1 -0
  92. package/esm/src/default_runtime.js +415 -0
  93. package/esm/src/durable_streams.js +26 -1
  94. package/esm/src/model_matchers.d.ts +10 -0
  95. package/esm/src/model_matchers.d.ts.map +1 -0
  96. package/esm/src/model_matchers.js +26 -0
  97. package/esm/src/openai_compat.d.ts +74 -0
  98. package/esm/src/openai_compat.d.ts.map +1 -0
  99. package/esm/src/openai_compat.js +329 -0
  100. package/esm/src/project_config.d.ts +47 -0
  101. package/esm/src/project_config.d.ts.map +1 -0
  102. package/esm/src/project_config.js +134 -0
  103. package/esm/src/providers/codex.d.ts +37 -0
  104. package/esm/src/providers/codex.d.ts.map +1 -0
  105. package/esm/src/providers/codex.js +810 -0
  106. package/esm/src/providers/google.d.ts +18 -0
  107. package/esm/src/providers/google.d.ts.map +1 -0
  108. package/esm/src/providers/google.js +428 -0
  109. package/esm/src/providers/ollama.d.ts +19 -0
  110. package/esm/src/providers/ollama.d.ts.map +1 -0
  111. package/esm/src/providers/ollama.js +732 -0
  112. package/esm/src/providers/openrouter.d.ts +26 -0
  113. package/esm/src/providers/openrouter.d.ts.map +1 -0
  114. package/esm/src/providers/openrouter.js +829 -0
  115. package/esm/src/providers/router.d.ts +19 -0
  116. package/esm/src/providers/router.d.ts.map +1 -0
  117. package/esm/src/providers/router.js +93 -0
  118. package/esm/src/server.d.ts +11 -0
  119. package/esm/src/server.d.ts.map +1 -1
  120. package/esm/src/server.js +3764 -647
  121. package/esm/src/server_feedback_grading_routes.d.ts +32 -0
  122. package/esm/src/server_feedback_grading_routes.d.ts.map +1 -0
  123. package/esm/src/server_feedback_grading_routes.js +305 -0
  124. package/esm/src/server_helpers.d.ts +4 -0
  125. package/esm/src/server_helpers.d.ts.map +1 -0
  126. package/esm/src/server_helpers.js +46 -0
  127. package/esm/src/server_session_store.d.ts +87 -0
  128. package/esm/src/server_session_store.d.ts.map +1 -0
  129. package/esm/src/server_session_store.js +873 -0
  130. package/esm/src/server_types.d.ts +110 -0
  131. package/esm/src/server_types.d.ts.map +1 -0
  132. package/esm/src/server_types.js +1 -0
  133. package/esm/src/server_ui_routes.d.ts +33 -0
  134. package/esm/src/server_ui_routes.d.ts.map +1 -0
  135. package/esm/src/server_ui_routes.js +135 -0
  136. package/esm/src/session_artifacts.d.ts +22 -0
  137. package/esm/src/session_artifacts.d.ts.map +1 -0
  138. package/esm/src/session_artifacts.js +243 -0
  139. package/esm/src/trace.d.ts.map +1 -1
  140. package/esm/src/trace.js +8 -5
  141. package/esm/src/workspace.d.ts +19 -0
  142. package/esm/src/workspace.d.ts.map +1 -0
  143. package/esm/src/workspace.js +164 -0
  144. package/esm/src/workspace_contract.d.ts +76 -0
  145. package/esm/src/workspace_contract.d.ts.map +1 -0
  146. package/esm/src/workspace_contract.js +74 -0
  147. package/package.json +3 -2
  148. package/script/_dnt.polyfills.d.ts +17 -0
  149. package/script/_dnt.polyfills.d.ts.map +1 -1
  150. package/script/_dnt.polyfills.js +122 -0
  151. package/script/deps/jsr.io/@std/collections/1.1.5/deep_merge.d.ts +322 -0
  152. package/script/deps/jsr.io/@std/collections/1.1.5/deep_merge.d.ts.map +1 -0
  153. package/script/deps/jsr.io/@std/collections/1.1.5/deep_merge.js +108 -0
  154. package/script/deps/jsr.io/@std/fs/1.0.22/_create_walk_entry.d.ts +14 -0
  155. package/script/deps/jsr.io/@std/fs/1.0.22/_create_walk_entry.d.ts.map +1 -0
  156. package/script/deps/jsr.io/@std/fs/1.0.22/_create_walk_entry.js +71 -0
  157. package/script/deps/jsr.io/@std/fs/1.0.22/_get_file_info_type.d.ts +13 -0
  158. package/script/deps/jsr.io/@std/fs/1.0.22/_get_file_info_type.d.ts.map +1 -0
  159. package/script/deps/jsr.io/@std/fs/1.0.22/_get_file_info_type.js +21 -0
  160. package/script/deps/jsr.io/@std/fs/1.0.22/_is_same_path.d.ts +10 -0
  161. package/script/deps/jsr.io/@std/fs/1.0.22/_is_same_path.d.ts.map +1 -0
  162. package/script/deps/jsr.io/@std/fs/1.0.22/_is_same_path.js +20 -0
  163. package/script/deps/jsr.io/@std/fs/1.0.22/_is_subdir.d.ts +12 -0
  164. package/script/deps/jsr.io/@std/fs/1.0.22/_is_subdir.d.ts.map +1 -0
  165. package/script/deps/jsr.io/@std/fs/1.0.22/_is_subdir.js +28 -0
  166. package/script/deps/jsr.io/@std/fs/1.0.22/_to_path_string.d.ts +9 -0
  167. package/script/deps/jsr.io/@std/fs/1.0.22/_to_path_string.d.ts.map +1 -0
  168. package/script/deps/jsr.io/@std/fs/1.0.22/_to_path_string.js +16 -0
  169. package/script/deps/jsr.io/@std/fs/1.0.22/copy.d.ts +117 -0
  170. package/script/deps/jsr.io/@std/fs/1.0.22/copy.d.ts.map +1 -0
  171. package/script/deps/jsr.io/@std/fs/1.0.22/copy.js +350 -0
  172. package/script/deps/jsr.io/@std/fs/1.0.22/empty_dir.d.ts +48 -0
  173. package/script/deps/jsr.io/@std/fs/1.0.22/empty_dir.d.ts.map +1 -0
  174. package/script/deps/jsr.io/@std/fs/1.0.22/empty_dir.js +124 -0
  175. package/script/deps/jsr.io/@std/fs/1.0.22/ensure_dir.d.ts +49 -0
  176. package/script/deps/jsr.io/@std/fs/1.0.22/ensure_dir.d.ts.map +1 -0
  177. package/script/deps/jsr.io/@std/fs/1.0.22/ensure_dir.js +139 -0
  178. package/script/deps/jsr.io/@std/fs/1.0.22/ensure_file.d.ts +47 -0
  179. package/script/deps/jsr.io/@std/fs/1.0.22/ensure_file.d.ts.map +1 -0
  180. package/script/deps/jsr.io/@std/fs/1.0.22/ensure_file.js +127 -0
  181. package/script/deps/jsr.io/@std/fs/1.0.22/ensure_link.d.ts +49 -0
  182. package/script/deps/jsr.io/@std/fs/1.0.22/ensure_link.d.ts.map +1 -0
  183. package/script/deps/jsr.io/@std/fs/1.0.22/ensure_link.js +98 -0
  184. package/script/deps/jsr.io/@std/fs/1.0.22/ensure_symlink.d.ts +70 -0
  185. package/script/deps/jsr.io/@std/fs/1.0.22/ensure_symlink.d.ts.map +1 -0
  186. package/script/deps/jsr.io/@std/fs/1.0.22/ensure_symlink.js +193 -0
  187. package/script/deps/jsr.io/@std/fs/1.0.22/eol.d.ts +52 -0
  188. package/script/deps/jsr.io/@std/fs/1.0.22/eol.d.ts.map +1 -0
  189. package/script/deps/jsr.io/@std/fs/1.0.22/eol.js +105 -0
  190. package/script/deps/jsr.io/@std/fs/1.0.22/exists.d.ts +218 -0
  191. package/script/deps/jsr.io/@std/fs/1.0.22/exists.d.ts.map +1 -0
  192. package/script/deps/jsr.io/@std/fs/1.0.22/exists.js +308 -0
  193. package/script/deps/jsr.io/@std/fs/1.0.22/expand_glob.d.ts +267 -0
  194. package/script/deps/jsr.io/@std/fs/1.0.22/expand_glob.d.ts.map +1 -0
  195. package/script/deps/jsr.io/@std/fs/1.0.22/expand_glob.js +479 -0
  196. package/script/deps/jsr.io/@std/fs/1.0.22/mod.d.ts +29 -0
  197. package/script/deps/jsr.io/@std/fs/1.0.22/mod.d.ts.map +1 -0
  198. package/script/deps/jsr.io/@std/fs/1.0.22/mod.js +45 -0
  199. package/script/deps/jsr.io/@std/fs/1.0.22/move.d.ts +86 -0
  200. package/script/deps/jsr.io/@std/fs/1.0.22/move.d.ts.map +1 -0
  201. package/script/deps/jsr.io/@std/fs/1.0.22/move.js +179 -0
  202. package/script/deps/jsr.io/@std/fs/1.0.22/walk.d.ts +777 -0
  203. package/script/deps/jsr.io/@std/fs/1.0.22/walk.d.ts.map +1 -0
  204. package/script/deps/jsr.io/@std/fs/1.0.22/walk.js +883 -0
  205. package/script/deps/jsr.io/@std/json/1.0.2/types.d.ts +5 -0
  206. package/script/deps/jsr.io/@std/json/1.0.2/types.d.ts.map +1 -0
  207. package/script/deps/jsr.io/@std/json/1.0.2/types.js +4 -0
  208. package/script/deps/jsr.io/@std/jsonc/1.0.2/mod.d.ts +20 -0
  209. package/script/deps/jsr.io/@std/jsonc/1.0.2/mod.d.ts.map +1 -0
  210. package/script/deps/jsr.io/@std/jsonc/1.0.2/mod.js +37 -0
  211. package/script/deps/jsr.io/@std/jsonc/1.0.2/parse.d.ts +21 -0
  212. package/script/deps/jsr.io/@std/jsonc/1.0.2/parse.d.ts.map +1 -0
  213. package/script/deps/jsr.io/@std/jsonc/1.0.2/parse.js +323 -0
  214. package/script/deps/jsr.io/@std/toml/1.0.11/_parser.d.ts +93 -0
  215. package/script/deps/jsr.io/@std/toml/1.0.11/_parser.d.ts.map +1 -0
  216. package/script/deps/jsr.io/@std/toml/1.0.11/_parser.js +781 -0
  217. package/script/deps/jsr.io/@std/toml/1.0.11/mod.d.ts +109 -0
  218. package/script/deps/jsr.io/@std/toml/1.0.11/mod.d.ts.map +1 -0
  219. package/script/deps/jsr.io/@std/toml/1.0.11/mod.js +126 -0
  220. package/script/deps/jsr.io/@std/toml/1.0.11/parse.d.ts +21 -0
  221. package/script/deps/jsr.io/@std/toml/1.0.11/parse.d.ts.map +1 -0
  222. package/script/deps/jsr.io/@std/toml/1.0.11/parse.js +28 -0
  223. package/script/deps/jsr.io/@std/toml/1.0.11/stringify.d.ts +35 -0
  224. package/script/deps/jsr.io/@std/toml/1.0.11/stringify.d.ts.map +1 -0
  225. package/script/deps/jsr.io/@std/toml/1.0.11/stringify.js +286 -0
  226. package/script/gambit/simulator-ui/dist/bundle.js +12085 -5691
  227. package/script/gambit/simulator-ui/dist/bundle.js.map +4 -4
  228. package/script/gambit/simulator-ui/dist/favicon.ico +0 -0
  229. package/script/mod.d.ts +21 -7
  230. package/script/mod.d.ts.map +1 -1
  231. package/script/mod.js +22 -7
  232. package/script/src/cli_utils.d.ts +1 -0
  233. package/script/src/cli_utils.d.ts.map +1 -1
  234. package/script/src/cli_utils.js +52 -3
  235. package/script/src/default_runtime.d.ts +46 -0
  236. package/script/src/default_runtime.d.ts.map +1 -0
  237. package/script/src/default_runtime.js +452 -0
  238. package/script/src/durable_streams.js +26 -1
  239. package/script/src/model_matchers.d.ts +10 -0
  240. package/script/src/model_matchers.d.ts.map +1 -0
  241. package/script/src/model_matchers.js +29 -0
  242. package/script/src/openai_compat.d.ts +74 -0
  243. package/script/src/openai_compat.d.ts.map +1 -0
  244. package/script/src/openai_compat.js +366 -0
  245. package/script/src/project_config.d.ts +47 -0
  246. package/script/src/project_config.d.ts.map +1 -0
  247. package/script/src/project_config.js +173 -0
  248. package/script/src/providers/codex.d.ts +37 -0
  249. package/script/src/providers/codex.d.ts.map +1 -0
  250. package/script/src/providers/codex.js +850 -0
  251. package/script/src/providers/google.d.ts +18 -0
  252. package/script/src/providers/google.d.ts.map +1 -0
  253. package/script/src/providers/google.js +435 -0
  254. package/script/src/providers/ollama.d.ts +19 -0
  255. package/script/src/providers/ollama.d.ts.map +1 -0
  256. package/script/src/providers/ollama.js +774 -0
  257. package/script/src/providers/openrouter.d.ts +26 -0
  258. package/script/src/providers/openrouter.d.ts.map +1 -0
  259. package/script/src/providers/openrouter.js +869 -0
  260. package/script/src/providers/router.d.ts +19 -0
  261. package/script/src/providers/router.d.ts.map +1 -0
  262. package/script/src/providers/router.js +96 -0
  263. package/script/src/server.d.ts +11 -0
  264. package/script/src/server.d.ts.map +1 -1
  265. package/script/src/server.js +3768 -651
  266. package/script/src/server_feedback_grading_routes.d.ts +32 -0
  267. package/script/src/server_feedback_grading_routes.d.ts.map +1 -0
  268. package/script/src/server_feedback_grading_routes.js +343 -0
  269. package/script/src/server_helpers.d.ts +4 -0
  270. package/script/src/server_helpers.d.ts.map +1 -0
  271. package/script/src/server_helpers.js +84 -0
  272. package/script/src/server_session_store.d.ts +87 -0
  273. package/script/src/server_session_store.d.ts.map +1 -0
  274. package/script/src/server_session_store.js +910 -0
  275. package/script/src/server_types.d.ts +110 -0
  276. package/script/src/server_types.d.ts.map +1 -0
  277. package/script/src/server_types.js +2 -0
  278. package/script/src/server_ui_routes.d.ts +33 -0
  279. package/script/src/server_ui_routes.d.ts.map +1 -0
  280. package/script/src/server_ui_routes.js +172 -0
  281. package/script/src/session_artifacts.d.ts +22 -0
  282. package/script/src/session_artifacts.d.ts.map +1 -0
  283. package/script/src/session_artifacts.js +279 -0
  284. package/script/src/trace.d.ts.map +1 -1
  285. package/script/src/trace.js +8 -5
  286. package/script/src/workspace.d.ts +19 -0
  287. package/script/src/workspace.d.ts.map +1 -0
  288. package/script/src/workspace.js +201 -0
  289. package/script/src/workspace_contract.d.ts +76 -0
  290. package/script/src/workspace_contract.d.ts.map +1 -0
  291. package/script/src/workspace_contract.js +82 -0
package/CHANGELOG.md CHANGED
@@ -1,14 +1,122 @@
1
1
  +++
2
2
  [release]
3
- since = "769d3de436e4542ed7d0d80201f665657d93efb2"
3
+ since = "23ccdd7fdda8909a1395dff3eb2bbbaae8cba692"
4
4
  +++
5
5
 
6
6
  # Changelog
7
7
 
8
- ## Unreleased (v0.8.2)
8
+ ## Unreleased (v0.8.5)
9
9
 
10
10
  - TBD
11
11
 
12
+ ## v0.8.5-rc.4
13
+
14
+ - chore(infra): run `deno task build_npm` for gambit during `bft precommit`
15
+ - fix(gambit): ignore dnt TS2345 diagnostics from vendored `@std/fs` and
16
+ `@std/toml` npm-compat sources
17
+
18
+ ## v0.8.5-rc.3
19
+
20
+ - fix(gambit-release): support nested core path and cut 0.8.5-rc.2
21
+ - refactor(gambit-core): remove built-in exec tool from runtime
22
+ - fix(gambit-core): partition worker sandbox by runtime host
23
+ - test(gambit-core): add unsupported worker sandbox coverage
24
+ - docs(gambit-core): document worker sandbox host contract
25
+ - ci(gambit-core): gate npm compatibility in core CI
26
+
27
+ ## v0.8.5-rc.2
28
+
29
+ - TBD
30
+
31
+ ## v0.8.5-rc.1
32
+
33
+ - feat(gambit): remove `gambit init`; onboarding now routes through
34
+ `gambit serve`
35
+ - feat(gambit): add `createDefaultedRuntime` and defaulted `runDeck` wrapper
36
+ with CLI-equivalent provider/model routing for library callers
37
+ - refactor(gambit): route CLI runtime/provider setup through shared
38
+ `default_runtime` construction path
39
+ - feat(demo-runner): migrate demo test-deck prompt generation to Gambit default
40
+ runtime wrapper (no hardwired OpenRouter provider)
41
+ - docs(gambit): add migration guidance for `runDeck` wrapper and `runDeckCore`
42
+ replacement mapping
43
+
44
+ ## v0.8.3
45
+
46
+ - fix(gambit): include CLI docs/reference files in binary builds
47
+ - chore(infra): run the Gambit compile check during `bft gambit:release`
48
+
49
+ ## v0.8.2
50
+
51
+ - chore(gambit): release 0.8.1
52
+ - revert(gambit): back out Open Responses runtime
53
+ - fix(gambit): resolve gambit-core include paths
54
+ - docs(gambit): add ABOUT files and move public posts
55
+ - docs(gambit): split external docs and align readmes
56
+ - docs(gambit): add ABOUT/README pairs for doc hubs
57
+ - Phase 0: rename deck schema terms
58
+ - feat(gambit-core): add Open Responses v1 types
59
+ - feat(gambit): add OpenRouter responses adapter and flag
60
+ - test(gambit): add OpenRouter provider conformance coverage
61
+ - docs(gambit): document responses flag and Phase 2 progress
62
+ - test(gambit): fix lint in OpenRouter provider tests
63
+ - fix(gambit): preserve response parts and validate tool schemas
64
+ - feat(gambit): add responses mode for runtime/state
65
+ - fix(gambit): preserve optional tool args in responses schemas
66
+ - fix(gambit): avoid coercing non-type tool schemas
67
+ - fix(gambit): only normalize object tool schemas
68
+ - test(gambit): add responses CLI smoke coverage
69
+ - docs(gambit): expand phase 4 checklist
70
+ - docs(gambit): note phase 4 test-bot validation
71
+ - docs(gambit): note 0.8.2 release plan
72
+ - docs(gambit): expand phase 5 checklist
73
+ - chore(gambit): set 0.8.2-dev version
74
+ - chore(gambit-core): align version to 0.8.2-dev
75
+ - fix(gambit): widen context tool name set types
76
+ - [gambit] update simpsons explainer example
77
+ - [gambit] extract Test Bot page and shared helpers
78
+ - [gambit] test bot page updates
79
+ - [gambit] refactor headers/nav, add Button component
80
+ - fix(gambit-core): treat empty responses output as empty string
81
+ - chore(gambit): align grader models and schemas
82
+ - docs(gambit): align openresponses migration status
83
+ - refactor(gambit): move chat compat out of core
84
+ - refactor(gambit): move chat compat out of core
85
+ - fix(simulator-ui): stabilize test bot nav handlers
86
+ - chore(simulator-ui): bundle favicon for distribution
87
+ - refactor(simulator-ui): extract calibrate page
88
+ - feat(simulator-ui): standardize simulator page layout
89
+ - docs(gambit): defer phase 5 and move migration tracker
90
+ - docs(docs): align docs structure and links
91
+ - docs(gambit): add internal project and post docs
92
+ - docs reorg
93
+ - feat(gambit): wire init chat flow and init-only tools
94
+ - feat(simulator-ui): add icon system and grader UI polish
95
+ - refactor(simulator-ui): rename calibrate route to grade
96
+ - refactor(simulator-ui): rename test bot labels to test
97
+ - refactor(simulator-ui): drop copy ref button
98
+ - refactor(simulator-ui): drop reference sample overlays
99
+ - refactor(simulator-ui): simplify raw input details
100
+ - refactor(simulator-ui): remove session metadata display
101
+ - docs(gambit): update simulator links for test/grade
102
+ - feat(simulator-ui): make run header toggleable with icon cue
103
+ - fix(simulator-ui): normalize color tokens
104
+ - chore(simulator-ui): add "+" to positive scores
105
+ - feat(simulator-ui): add status badge component
106
+ - feat(simulator-ui): refine calibrate summary cards
107
+ - feat(simulator-ui): refine tool call display
108
+ - fix(simulator-ui): format json consistently
109
+ - nits(simulator-ui): small tweaks
110
+ - docs(gambit): document Gambit-first strategy shift
111
+ - feat(gambit): add ollama provider routing
112
+ - feat(gambit): auto-pull missing ollama models
113
+ - feat(gambit): add model availability check
114
+ - infra: add obsidian bft command and fix gambit check mocks
115
+ - fix(gambit): include handler decks in model check
116
+ - feat(gambit): add gambit.toml model aliases
117
+ - feat(gambit): default responses mode with chat fallback
118
+ - fix(gambit): publish scaffolds for jsr demo/init commands
119
+
12
120
  ## v0.8.1
13
121
 
14
122
  - fix(gambit): include gambit-core cards/schemas in compiled binary
package/README.md CHANGED
@@ -1,6 +1,7 @@
1
1
  # <img src="./gambit_1color_bg.png" alt="Gambit logo" height="50" />
2
2
 
3
- Gambit helps you build reliable LLM workflows by composing small, typed “decks”\
3
+ Gambit is an open-source, developer-first framework that helps you build\
4
+ reliable LLM workflows by composing small, typed “decks”\
4
5
  with clear inputs/outputs and guardrails. Run decks locally, stream traces, and\
5
6
  debug with a built-in UI.
6
7
 
@@ -21,15 +22,14 @@ npx @bolt-foundry/gambit demo
21
22
  Downloads example files (hello decks plus the `examples/` gallery) and sets
22
23
  environment variables.
23
24
 
24
- To scaffold a starter project that you can customize, run:
25
+ To start onboarding with the simulator, run:
25
26
 
26
27
  ```
27
- npx @bolt-foundry/gambit init my-project
28
+ npx @bolt-foundry/gambit serve gambit/hello.deck.md
29
+ open http://localhost:8000/debug
28
30
  ```
29
31
 
30
- This creates a structured skeleton (`decks/`, `actions/`, `graders/`, `tests/`,
31
- `schemas/`, `.gambit/`) with README guides so you can start authoring your own
32
- workflows immediately.
32
+ Use the Build tab to draft your own workspace decks and scenarios.
33
33
 
34
34
  Run an example in the terminal (`repl`):
35
35
 
@@ -99,10 +99,10 @@ Drop into a REPL (streams by default):
99
99
  npx @bolt-foundry/gambit repl <deck>
100
100
  ```
101
101
 
102
- Run a persona against a root deck (test bot):
102
+ Run a persona against a root deck (scenario):
103
103
 
104
104
  ```
105
- npx @bolt-foundry/gambit test-bot <root-deck> --test-deck <persona-deck>
105
+ npx @bolt-foundry/gambit scenario <root-deck> --test-deck <persona-deck>
106
106
  ```
107
107
 
108
108
  Grade a saved session:
@@ -123,6 +123,23 @@ Tracing and state: 
123
123
  `--verbose` to print events\
124
124
  `--state <file>` to persist a session.
125
125
 
126
+ ### Worker sandbox defaults
127
+
128
+ - Deck-executing CLI surfaces default to worker sandbox execution.
129
+ - Use `--no-worker-sandbox` (or `--legacy-exec`) to force legacy in-process
130
+ execution.
131
+ - `--worker-sandbox` explicitly forces worker execution on.
132
+ - `--sandbox` / `--no-sandbox` are deprecated aliases.
133
+ - `gambit.toml` equivalent:
134
+ ```toml
135
+ [execution]
136
+ worker_sandbox = false # same as --no-worker-sandbox
137
+ # legacy_exec = true # equivalent rollback toggle
138
+ ```
139
+
140
+ The npm launcher (`npx @bolt-foundry/gambit ...`) runs the Gambit CLI binary for
141
+ your platform, so these defaults and flags apply there as well.
142
+
126
143
  ## Using the Simulator
127
144
 
128
145
  The simulator is the local Debug UI that streams runs and renders traces.
@@ -148,12 +165,13 @@ http://localhost:8000/
148
165
  It also serves:
149
166
 
150
167
  ```
151
- http://localhost:8000/test-bot
152
- http://localhost:8000/calibrate
168
+ http://localhost:8000/test
169
+ http://localhost:8000/grade
153
170
  ```
154
171
 
155
172
  The Debug UI shows transcript lanes plus a trace/tools feed. If the deck has an\
156
- `inputSchema`, the UI renders a schema-driven form with defaults and a raw JSON\
173
+ `contextSchema`, the UI renders a schema-driven form with defaults and a raw
174
+ JSON\
157
175
  tab. Local-first state is stored under `.gambit/` (sessions, traces, notes).
158
176
 
159
177
  ## Using the Library
@@ -166,11 +184,64 @@ Import the helpers from JSR:
166
184
  import { defineDeck, defineCard } from "jsr:@bolt-foundry/gambit";
167
185
  ```
168
186
 
169
- Define `inputSchema`/`outputSchema` with Zod to validate IO, and implement\
187
+ Define `contextSchema`/`responseSchema` with Zod to validate IO, and implement\
170
188
  `run`/`execute` for compute decks. To call a child deck from code, use\
171
189
  `ctx.spawnAndWait({ path, input })`. Emit structured trace events with\
172
190
  `ctx.log(...)`.
173
191
 
192
+ ### Runtime defaults for programmatic `runDeck`
193
+
194
+ `runDeck` from `@bolt-foundry/gambit` now uses CLI-equivalent provider/model
195
+ defaults (alias expansion, provider routing, fallback behavior).
196
+
197
+ Before (direct-provider setup in each caller):
198
+
199
+ ```ts
200
+ import { createOpenRouterProvider, runDeck } from "jsr:@bolt-foundry/gambit";
201
+
202
+ const provider = createOpenRouterProvider({
203
+ apiKey: Deno.env.get("OPENROUTER_API_KEY")!,
204
+ });
205
+ await runDeck({
206
+ path: "./root.deck.md",
207
+ input: { message: "hi" },
208
+ modelProvider: provider,
209
+ });
210
+ ```
211
+
212
+ After (defaulted wrapper):
213
+
214
+ ```ts
215
+ import { runDeck } from "jsr:@bolt-foundry/gambit";
216
+
217
+ await runDeck({
218
+ path: "./root.deck.md",
219
+ input: { message: "hi" },
220
+ });
221
+ ```
222
+
223
+ Per-runtime override (shared runtime object):
224
+
225
+ ```ts
226
+ import { createDefaultedRuntime, runDeck } from "jsr:@bolt-foundry/gambit";
227
+
228
+ const runtime = await createDefaultedRuntime({
229
+ fallbackProvider: "codex-cli",
230
+ });
231
+
232
+ await runDeck({
233
+ runtime,
234
+ path: "./root.deck.md",
235
+ input: { message: "hi" },
236
+ });
237
+ ```
238
+
239
+ Replacement mapping:
240
+
241
+ - Legacy direct core passthrough export: `runDeck` -> `runDeckCore`
242
+ - Defaulted wrapper export: `runDeck`
243
+ - Runtime builder: `createDefaultedRuntime`
244
+
174
245
  ---
175
246
 
176
247
  ## Author your first deck
@@ -204,8 +275,8 @@ import { z } from "zod";
204
275
 
205
276
  export default defineDeck({
206
277
  label: "echo",
207
- inputSchema: z.object({ text: z.string() }),
208
- outputSchema: z.object({ text: z.string(), length: z.number() }),
278
+ contextSchema: z.object({ text: z.string() }),
279
+ responseSchema: z.object({ text: z.string(), length: z.number() }),
209
280
  run(ctx) {
210
281
  return { text: ctx.input.text, length: ctx.input.text.length };
211
282
  },
@@ -224,7 +295,7 @@ npx @bolt-foundry/gambit run ./echo.deck.ts --context '{"text":"ping"}'
224
295
  +++
225
296
  label = "agent_with_time"
226
297
  modelParams = { model = "openai/gpt-4o-mini", temperature = 0 }
227
- [[actionDecks]]
298
+ [[actions]]
228
299
  name = "get_time"
229
300
  path = "./get_time.deck.ts"
230
301
  description = "Return the current ISO timestamp."
@@ -242,8 +313,8 @@ import { z } from "zod";
242
313
 
243
314
  export default defineDeck({
244
315
  label: "get_time",
245
- inputSchema: z.object({}), // no args
246
- outputSchema: z.object({ iso: z.string() }),
316
+ contextSchema: z.object({}), // no args
317
+ responseSchema: z.object({ iso: z.string() }),
247
318
  run() {
248
319
  return { iso: new Date().toISOString() };
249
320
  },
@@ -256,6 +327,26 @@ Run it:
256
327
  npx @bolt-foundry/gambit run ./agent_with_time.deck.md --context '"hello"' --stream
257
328
  ```
258
329
 
330
+ ### Respond flow demo (non-root decks + grading)
331
+
332
+ Need a turnkey scenario that hits personas → init → non-root `gambit_respond`
333
+ payloads → graders? Use the example in `packages/gambit/examples/respond_flow/`.
334
+
335
+ ```
336
+ cd packages/gambit
337
+ npx @bolt-foundry/gambit serve ./examples/respond_flow/decks/root.deck.ts --port 8000
338
+ ```
339
+
340
+ Then:
341
+
342
+ 1. Open `http://localhost:8000/test`, pick the **Escalation persona**, and run
343
+ it. Leave the “Use scenario deck input for init” toggle on to see persona
344
+ data seed the init form automatically.
345
+ 2. Switch to the Debug tab to inspect the session—the child deck emits a
346
+ `gambit_respond` payload that now shows up as a structured assistant turn.
347
+ 3. Head to the Calibrate tab and run the **Respond payload grader** to exercise
348
+ grading on the non-root respond output.
349
+
259
350
  ## Deno
260
351
 
261
352
  If you prefer Deno, use the Deno commands below.
@@ -267,12 +358,6 @@ export OPENROUTER_API_KEY=...
267
358
  deno run -A jsr:@bolt-foundry/gambit/cli demo
268
359
  ```
269
360
 
270
- Starter project:
271
-
272
- ```
273
- deno run -A jsr:@bolt-foundry/gambit/cli init my-project
274
- ```
275
-
276
361
  Run a deck:
277
362
 
278
363
  ```
@@ -97,5 +97,22 @@ interface ImportMetaPonyfill extends ImportMetaPonyfillCommonjs, ImportMetaPonyf
97
97
  export declare let import_meta_ponyfill_commonjs: ImportMetaPonyfillCommonjs;
98
98
  export declare let import_meta_ponyfill_esmodule: ImportMetaPonyfillEsmodule;
99
99
  export declare let import_meta_ponyfill: ImportMetaPonyfill;
100
+ declare global {
101
+ interface ArrayConstructor {
102
+ fromAsync<T>(iterableOrArrayLike: AsyncIterable<T> | Iterable<T | Promise<T>> | ArrayLike<T | Promise<T>>): Promise<T[]>;
103
+ fromAsync<T, U>(iterableOrArrayLike: AsyncIterable<T> | Iterable<T> | ArrayLike<T>, mapFn: (value: Awaited<T>) => U, thisArg?: any): Promise<Awaited<U>[]>;
104
+ }
105
+ }
106
+ export {};
107
+ declare global {
108
+ interface Object {
109
+ /**
110
+ * Determines whether an object has a property with the specified name.
111
+ * @param o An object.
112
+ * @param v A property name.
113
+ */
114
+ hasOwn(o: object, v: PropertyKey): boolean;
115
+ }
116
+ }
100
117
  export {};
101
118
  //# sourceMappingURL=_dnt.polyfills.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"_dnt.polyfills.d.ts","sourceRoot":"","sources":["../src/_dnt.polyfills.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAgC,KAAK,GAAG,EAAE,MAAM,UAAU,CAAC;AAGlE,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,UAAU;QAClB;;;;;;;;;;;;;;WAcG;QACH,GAAG,EAAE,MAAM,CAAC;QACZ;;;;;;;;;;;;WAYG;QACH,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,GAAG,GAAG,SAAS,GAAG,MAAM,CAAC;QACtE;;;;;;;;WAQG;QACH,IAAI,EAAE,OAAO,CAAC;QAEd;;;;;;;;;;;;WAYG;QACH,QAAQ,EAAE,MAAM,CAAC;QAEjB;;;;;;;;;;;;WAYG;QACH,OAAO,EAAE,MAAM,CAAC;KACjB;CACF;AAED,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;AACpD,KAAK,UAAU,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;AACnD,UAAU,0BAA0B;IAClC,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC;CACxD;AACD,UAAU,0BAA0B;IAClC,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU,CAAC;CACtC;AACD,UAAU,kBACR,SAAQ,0BAA0B,EAAE,0BAA0B;CAC/D;AAiBD,eAAO,IAAI,6BAA6B,EA2BnC,0BAA0B,CAAC;AAMhC,eAAO,IAAI,6BAA6B,EA4DnC,0BAA0B,CAAC;AAMhC,eAAO,IAAI,oBAAoB,EAoB1B,kBAAkB,CAAC"}
1
+ {"version":3,"file":"_dnt.polyfills.d.ts","sourceRoot":"","sources":["../src/_dnt.polyfills.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAgC,KAAK,GAAG,EAAE,MAAM,UAAU,CAAC;AAGlE,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,UAAU;QAClB;;;;;;;;;;;;;;WAcG;QACH,GAAG,EAAE,MAAM,CAAC;QACZ;;;;;;;;;;;;WAYG;QACH,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,GAAG,GAAG,SAAS,GAAG,MAAM,CAAC;QACtE;;;;;;;;WAQG;QACH,IAAI,EAAE,OAAO,CAAC;QAEd;;;;;;;;;;;;WAYG;QACH,QAAQ,EAAE,MAAM,CAAC;QAEjB;;;;;;;;;;;;WAYG;QACH,OAAO,EAAE,MAAM,CAAC;KACjB;CACF;AAED,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;AACpD,KAAK,UAAU,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;AACnD,UAAU,0BAA0B;IAClC,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC;CACxD;AACD,UAAU,0BAA0B;IAClC,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU,CAAC;CACtC;AACD,UAAU,kBACR,SAAQ,0BAA0B,EAAE,0BAA0B;CAC/D;AAiBD,eAAO,IAAI,6BAA6B,EA2BnC,0BAA0B,CAAC;AAMhC,eAAO,IAAI,6BAA6B,EA4DnC,0BAA0B,CAAC;AAMhC,eAAO,IAAI,oBAAoB,EAoB1B,kBAAkB,CAAC;AAExB,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,gBAAgB;QACxB,SAAS,CAAC,CAAC,EACP,mBAAmB,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,GAC7F,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;QAEhB,SAAS,CAAC,CAAC,EAAE,CAAC,EACV,mBAAmB,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAClE,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAC/B,OAAO,CAAC,EAAE,GAAG,GACd,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;KAC1B;CACF;AAoID,OAAO,EAAE,CAAC;AAeV,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd;;;;WAIG;QACH,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;KAC5C;CACF;AAED,OAAO,EAAE,CAAC"}
@@ -125,3 +125,125 @@ export let import_meta_ponyfill = ((...args) => {
125
125
  //@ts-ignore
126
126
  return import_meta_ponyfill(...args);
127
127
  });
128
+ // From https://github.com/es-shims/array-from-async/blob/4a5ff83947b861f35b380d5d4f20da2f07698638/index.mjs
129
+ // Tried to have dnt depend on the package instead, but it distributes as an
130
+ // ES module, so doesn't work with CommonJS.
131
+ //
132
+ // Code below:
133
+ //
134
+ // Copyright 2021 J. S. Choi
135
+ //
136
+ // Redistribution and use in source and binary forms, with or without
137
+ // modification, are permitted provided that the following conditions
138
+ // are met:
139
+ //
140
+ // 1. Redistributions of source code must retain the above copyright
141
+ // notice, this list of conditions and the following disclaimer.
142
+ //
143
+ // 2. Redistributions in binary form must reproduce the above copyright
144
+ // notice, this list of conditions and the following disclaimer in the
145
+ // documentation and/or other materials provided with the distribution.
146
+ //
147
+ // 3. Neither the name of the copyright holder nor the names of its
148
+ // contributors may be used to endorse or promote products derived from
149
+ // this software without specific prior written permission.
150
+ //
151
+ // **This software is provided by the copyright holders and contributors
152
+ // "as is" and any express or implied warranties, including, but not
153
+ // limited to, the implied warranties of merchantability and fitness for a
154
+ // particular purpose are disclaimed. In no event shall the copyright
155
+ // holder or contributors be liable for any direct, indirect, incidental,
156
+ // special, exemplary, or consequential damages (including, but not limited
157
+ // to, procurement of substitute goods or services; loss of use, data, or
158
+ // profits; or business interruption) however caused and on any theory of
159
+ // liability, whether in contract, strict liability, or tort (including
160
+ // negligence or otherwise) arising in any way out of the use of this
161
+ // software, even if advised of the possibility of such damage.**
162
+ const { MAX_SAFE_INTEGER } = Number;
163
+ const iteratorSymbol = Symbol.iterator;
164
+ const asyncIteratorSymbol = Symbol.asyncIterator;
165
+ const IntrinsicArray = Array;
166
+ const tooLongErrorMessage = 'Input is too long and exceeded Number.MAX_SAFE_INTEGER times.';
167
+ function isConstructor(obj) {
168
+ if (obj != null) {
169
+ const prox = new Proxy(obj, {
170
+ construct() {
171
+ return prox;
172
+ },
173
+ });
174
+ try {
175
+ new prox;
176
+ return true;
177
+ }
178
+ catch (err) {
179
+ return false;
180
+ }
181
+ }
182
+ else {
183
+ return false;
184
+ }
185
+ }
186
+ async function fromAsync(items, mapfn, thisArg) {
187
+ const itemsAreIterable = (asyncIteratorSymbol in items ||
188
+ iteratorSymbol in items);
189
+ if (itemsAreIterable) {
190
+ const result = isConstructor(this)
191
+ ? new this
192
+ : IntrinsicArray(0);
193
+ let i = 0;
194
+ for await (const v of items) {
195
+ if (i > MAX_SAFE_INTEGER) {
196
+ throw TypeError(tooLongErrorMessage);
197
+ }
198
+ else if (mapfn) {
199
+ result[i] = await mapfn.call(thisArg, v, i);
200
+ }
201
+ else {
202
+ result[i] = v;
203
+ }
204
+ i++;
205
+ }
206
+ result.length = i;
207
+ return result;
208
+ }
209
+ else {
210
+ // In this case, the items are assumed to be an arraylike object with
211
+ // a length property and integer properties for each element.
212
+ const { length } = items;
213
+ const result = isConstructor(this)
214
+ ? new this(length)
215
+ : IntrinsicArray(length);
216
+ let i = 0;
217
+ while (i < length) {
218
+ if (i > MAX_SAFE_INTEGER) {
219
+ throw TypeError(tooLongErrorMessage);
220
+ }
221
+ const v = await items[i];
222
+ if (mapfn) {
223
+ result[i] = await mapfn.call(thisArg, v, i);
224
+ }
225
+ else {
226
+ result[i] = v;
227
+ }
228
+ i++;
229
+ }
230
+ result.length = i;
231
+ return result;
232
+ }
233
+ }
234
+ if (!Array.fromAsync) {
235
+ Array.fromAsync = fromAsync;
236
+ }
237
+ if (!Object.hasOwn) {
238
+ Object.defineProperty(Object, "hasOwn", {
239
+ value: function (object, property) {
240
+ if (object == null) {
241
+ throw new TypeError("Cannot convert undefined or null to object");
242
+ }
243
+ return Object.prototype.hasOwnProperty.call(Object(object), property);
244
+ },
245
+ configurable: true,
246
+ enumerable: false,
247
+ writable: true,
248
+ });
249
+ }