@octomil/browser 1.0.0 → 1.2.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 (415) hide show
  1. package/README.md +168 -36
  2. package/dist/_generated/accelerator_type.d.ts +8 -0
  3. package/dist/_generated/accelerator_type.d.ts.map +1 -0
  4. package/dist/_generated/accelerator_type.js +10 -0
  5. package/dist/_generated/accelerator_type.js.map +1 -0
  6. package/dist/_generated/activation_policy.d.ts +7 -0
  7. package/dist/_generated/activation_policy.d.ts.map +1 -0
  8. package/dist/_generated/activation_policy.js +9 -0
  9. package/dist/_generated/activation_policy.js.map +1 -0
  10. package/dist/_generated/adapter_activation_state.d.ts +13 -0
  11. package/dist/_generated/adapter_activation_state.d.ts.map +1 -0
  12. package/dist/_generated/adapter_activation_state.js +15 -0
  13. package/dist/_generated/adapter_activation_state.js.map +1 -0
  14. package/dist/_generated/artifact_format.d.ts +11 -0
  15. package/dist/_generated/artifact_format.d.ts.map +1 -0
  16. package/dist/_generated/artifact_format.js +13 -0
  17. package/dist/_generated/artifact_format.js.map +1 -0
  18. package/dist/_generated/artifact_resource_kind.d.ts +16 -0
  19. package/dist/_generated/artifact_resource_kind.d.ts.map +1 -0
  20. package/dist/_generated/artifact_resource_kind.js +18 -0
  21. package/dist/_generated/artifact_resource_kind.js.map +1 -0
  22. package/dist/_generated/artifact_status.d.ts +21 -0
  23. package/dist/_generated/artifact_status.d.ts.map +1 -0
  24. package/dist/_generated/artifact_status.js +23 -0
  25. package/dist/_generated/artifact_status.js.map +1 -0
  26. package/dist/_generated/auth_method.d.ts +10 -0
  27. package/dist/_generated/auth_method.d.ts.map +1 -0
  28. package/dist/_generated/auth_method.js +12 -0
  29. package/dist/_generated/auth_method.js.map +1 -0
  30. package/dist/_generated/auth_type.d.ts +7 -0
  31. package/dist/_generated/auth_type.d.ts.map +1 -0
  32. package/dist/_generated/auth_type.js +9 -0
  33. package/dist/_generated/auth_type.js.map +1 -0
  34. package/dist/_generated/billing_interval.d.ts +5 -0
  35. package/dist/_generated/billing_interval.d.ts.map +1 -0
  36. package/dist/_generated/billing_interval.js +7 -0
  37. package/dist/_generated/billing_interval.js.map +1 -0
  38. package/dist/_generated/billing_plan.d.ts +47 -0
  39. package/dist/_generated/billing_plan.d.ts.map +1 -0
  40. package/dist/_generated/billing_plan.js +41 -0
  41. package/dist/_generated/billing_plan.js.map +1 -0
  42. package/dist/_generated/cloud_provider.d.ts +12 -0
  43. package/dist/_generated/cloud_provider.d.ts.map +1 -0
  44. package/dist/_generated/cloud_provider.js +14 -0
  45. package/dist/_generated/cloud_provider.js.map +1 -0
  46. package/dist/_generated/compatibility_level.d.ts +7 -0
  47. package/dist/_generated/compatibility_level.d.ts.map +1 -0
  48. package/dist/_generated/compatibility_level.js +9 -0
  49. package/dist/_generated/compatibility_level.js.map +1 -0
  50. package/dist/_generated/content_part_type.d.ts +7 -0
  51. package/dist/_generated/content_part_type.d.ts.map +1 -0
  52. package/dist/_generated/content_part_type.js +9 -0
  53. package/dist/_generated/content_part_type.js.map +1 -0
  54. package/dist/_generated/delivery_mode.d.ts +6 -0
  55. package/dist/_generated/delivery_mode.d.ts.map +1 -0
  56. package/dist/_generated/delivery_mode.js +8 -0
  57. package/dist/_generated/delivery_mode.js.map +1 -0
  58. package/dist/_generated/device_class.d.ts +7 -0
  59. package/dist/_generated/device_class.d.ts.map +1 -0
  60. package/dist/_generated/device_class.js +9 -0
  61. package/dist/_generated/device_class.js.map +1 -0
  62. package/dist/_generated/device_connectivity_status.d.ts +8 -0
  63. package/dist/_generated/device_connectivity_status.d.ts.map +1 -0
  64. package/dist/_generated/device_connectivity_status.js +10 -0
  65. package/dist/_generated/device_connectivity_status.js.map +1 -0
  66. package/dist/_generated/device_model_status.d.ts +14 -0
  67. package/dist/_generated/device_model_status.d.ts.map +1 -0
  68. package/dist/_generated/device_model_status.js +16 -0
  69. package/dist/_generated/device_model_status.js.map +1 -0
  70. package/dist/_generated/device_platform.d.ts +9 -0
  71. package/dist/_generated/device_platform.d.ts.map +1 -0
  72. package/dist/_generated/device_platform.js +11 -0
  73. package/dist/_generated/device_platform.js.map +1 -0
  74. package/dist/_generated/email_provider.d.ts +8 -0
  75. package/dist/_generated/email_provider.d.ts.map +1 -0
  76. package/dist/_generated/email_provider.js +10 -0
  77. package/dist/_generated/email_provider.js.map +1 -0
  78. package/dist/_generated/email_template.d.ts +11 -0
  79. package/dist/_generated/email_template.d.ts.map +1 -0
  80. package/dist/_generated/email_template.js +13 -0
  81. package/dist/_generated/email_template.js.map +1 -0
  82. package/dist/_generated/error_code.d.ts +52 -0
  83. package/dist/_generated/error_code.d.ts.map +1 -0
  84. package/dist/_generated/error_code.js +85 -0
  85. package/dist/_generated/error_code.js.map +1 -0
  86. package/dist/_generated/federated_participation_state.d.ts +25 -0
  87. package/dist/_generated/federated_participation_state.d.ts.map +1 -0
  88. package/dist/_generated/federated_participation_state.js +27 -0
  89. package/dist/_generated/federated_participation_state.js.map +1 -0
  90. package/dist/_generated/federated_round_state.d.ts +17 -0
  91. package/dist/_generated/federated_round_state.d.ts.map +1 -0
  92. package/dist/_generated/federated_round_state.js +19 -0
  93. package/dist/_generated/federated_round_state.js.map +1 -0
  94. package/dist/_generated/finish_reason.d.ts +7 -0
  95. package/dist/_generated/finish_reason.d.ts.map +1 -0
  96. package/dist/_generated/finish_reason.js +9 -0
  97. package/dist/_generated/finish_reason.js.map +1 -0
  98. package/dist/_generated/index.d.ts +17 -0
  99. package/dist/_generated/index.d.ts.map +1 -0
  100. package/dist/_generated/index.js +17 -0
  101. package/dist/_generated/index.js.map +1 -0
  102. package/dist/_generated/input_modality.d.ts +7 -0
  103. package/dist/_generated/input_modality.d.ts.map +1 -0
  104. package/dist/_generated/input_modality.js +9 -0
  105. package/dist/_generated/input_modality.js.map +1 -0
  106. package/dist/_generated/message_role.d.ts +7 -0
  107. package/dist/_generated/message_role.d.ts.map +1 -0
  108. package/dist/_generated/message_role.js +9 -0
  109. package/dist/_generated/message_role.js.map +1 -0
  110. package/dist/_generated/metric_views.d.ts +18 -0
  111. package/dist/_generated/metric_views.d.ts.map +1 -0
  112. package/dist/_generated/metric_views.js +22 -0
  113. package/dist/_generated/metric_views.js.map +1 -0
  114. package/dist/_generated/modality.d.ts +7 -0
  115. package/dist/_generated/modality.d.ts.map +1 -0
  116. package/dist/_generated/modality.js +9 -0
  117. package/dist/_generated/modality.js.map +1 -0
  118. package/dist/_generated/model_capability.d.ts +10 -0
  119. package/dist/_generated/model_capability.d.ts.map +1 -0
  120. package/dist/_generated/model_capability.js +12 -0
  121. package/dist/_generated/model_capability.js.map +1 -0
  122. package/dist/_generated/model_feature.d.ts +7 -0
  123. package/dist/_generated/model_feature.d.ts.map +1 -0
  124. package/dist/_generated/model_feature.js +9 -0
  125. package/dist/_generated/model_feature.js.map +1 -0
  126. package/dist/_generated/model_lifecycle.d.ts +7 -0
  127. package/dist/_generated/model_lifecycle.d.ts.map +1 -0
  128. package/dist/_generated/model_lifecycle.js +9 -0
  129. package/dist/_generated/model_lifecycle.js.map +1 -0
  130. package/dist/_generated/model_source_format.d.ts +9 -0
  131. package/dist/_generated/model_source_format.d.ts.map +1 -0
  132. package/dist/_generated/model_source_format.js +11 -0
  133. package/dist/_generated/model_source_format.js.map +1 -0
  134. package/dist/_generated/model_status.d.ts +7 -0
  135. package/dist/_generated/model_status.d.ts.map +1 -0
  136. package/dist/_generated/model_status.js +9 -0
  137. package/dist/_generated/model_status.js.map +1 -0
  138. package/dist/_generated/network_type.d.ts +7 -0
  139. package/dist/_generated/network_type.d.ts.map +1 -0
  140. package/dist/_generated/network_type.js +9 -0
  141. package/dist/_generated/network_type.js.map +1 -0
  142. package/dist/_generated/oauth_provider.d.ts +8 -0
  143. package/dist/_generated/oauth_provider.d.ts.map +1 -0
  144. package/dist/_generated/oauth_provider.js +10 -0
  145. package/dist/_generated/oauth_provider.js.map +1 -0
  146. package/dist/_generated/operation_state.d.ts +9 -0
  147. package/dist/_generated/operation_state.d.ts.map +1 -0
  148. package/dist/_generated/operation_state.js +11 -0
  149. package/dist/_generated/operation_state.js.map +1 -0
  150. package/dist/_generated/otlp_resource_attributes.d.ts +16 -0
  151. package/dist/_generated/otlp_resource_attributes.d.ts.map +1 -0
  152. package/dist/_generated/otlp_resource_attributes.js +17 -0
  153. package/dist/_generated/otlp_resource_attributes.js.map +1 -0
  154. package/dist/_generated/principal_type.d.ts +7 -0
  155. package/dist/_generated/principal_type.d.ts.map +1 -0
  156. package/dist/_generated/principal_type.js +9 -0
  157. package/dist/_generated/principal_type.js.map +1 -0
  158. package/dist/_generated/query_routing_tier.d.ts +6 -0
  159. package/dist/_generated/query_routing_tier.d.ts.map +1 -0
  160. package/dist/_generated/query_routing_tier.js +8 -0
  161. package/dist/_generated/query_routing_tier.js.map +1 -0
  162. package/dist/_generated/routing_policy.d.ts +7 -0
  163. package/dist/_generated/routing_policy.d.ts.map +1 -0
  164. package/dist/_generated/routing_policy.js +9 -0
  165. package/dist/_generated/routing_policy.js.map +1 -0
  166. package/dist/_generated/runtime_executor.d.ts +18 -0
  167. package/dist/_generated/runtime_executor.d.ts.map +1 -0
  168. package/dist/_generated/runtime_executor.js +20 -0
  169. package/dist/_generated/runtime_executor.js.map +1 -0
  170. package/dist/_generated/scope.d.ts +16 -0
  171. package/dist/_generated/scope.d.ts.map +1 -0
  172. package/dist/_generated/scope.js +18 -0
  173. package/dist/_generated/scope.js.map +1 -0
  174. package/dist/_generated/span_attributes.d.ts +25 -0
  175. package/dist/_generated/span_attributes.d.ts.map +1 -0
  176. package/dist/_generated/span_attributes.js +34 -0
  177. package/dist/_generated/span_attributes.js.map +1 -0
  178. package/dist/_generated/span_event_attributes.d.ts +23 -0
  179. package/dist/_generated/span_event_attributes.d.ts.map +1 -0
  180. package/dist/_generated/span_event_attributes.js +36 -0
  181. package/dist/_generated/span_event_attributes.js.map +1 -0
  182. package/dist/_generated/span_event_names.d.ts +42 -0
  183. package/dist/_generated/span_event_names.d.ts.map +1 -0
  184. package/dist/_generated/span_event_names.js +82 -0
  185. package/dist/_generated/span_event_names.js.map +1 -0
  186. package/dist/_generated/span_names.d.ts +17 -0
  187. package/dist/_generated/span_names.d.ts.map +1 -0
  188. package/dist/_generated/span_names.js +18 -0
  189. package/dist/_generated/span_names.js.map +1 -0
  190. package/dist/_generated/span_status_mapping.d.ts +8 -0
  191. package/dist/_generated/span_status_mapping.d.ts.map +1 -0
  192. package/dist/_generated/span_status_mapping.js +17 -0
  193. package/dist/_generated/span_status_mapping.js.map +1 -0
  194. package/dist/_generated/subscription_status.d.ts +11 -0
  195. package/dist/_generated/subscription_status.d.ts.map +1 -0
  196. package/dist/_generated/subscription_status.js +13 -0
  197. package/dist/_generated/subscription_status.js.map +1 -0
  198. package/dist/_generated/support_tier.d.ts +7 -0
  199. package/dist/_generated/support_tier.d.ts.map +1 -0
  200. package/dist/_generated/support_tier.js +9 -0
  201. package/dist/_generated/support_tier.js.map +1 -0
  202. package/dist/_generated/telemetry_class.d.ts +6 -0
  203. package/dist/_generated/telemetry_class.d.ts.map +1 -0
  204. package/dist/_generated/telemetry_class.js +8 -0
  205. package/dist/_generated/telemetry_class.js.map +1 -0
  206. package/dist/_generated/telemetry_events.d.ts +10 -0
  207. package/dist/_generated/telemetry_events.d.ts.map +1 -0
  208. package/dist/_generated/telemetry_events.js +18 -0
  209. package/dist/_generated/telemetry_events.js.map +1 -0
  210. package/dist/_generated/thermal_state.d.ts +7 -0
  211. package/dist/_generated/thermal_state.d.ts.map +1 -0
  212. package/dist/_generated/thermal_state.js +9 -0
  213. package/dist/_generated/thermal_state.js.map +1 -0
  214. package/dist/_generated/tool_call_tier.d.ts +7 -0
  215. package/dist/_generated/tool_call_tier.d.ts.map +1 -0
  216. package/dist/_generated/tool_call_tier.js +9 -0
  217. package/dist/_generated/tool_call_tier.js.map +1 -0
  218. package/dist/_generated/training_job_state.d.ts +23 -0
  219. package/dist/_generated/training_job_state.d.ts.map +1 -0
  220. package/dist/_generated/training_job_state.js +25 -0
  221. package/dist/_generated/training_job_state.js.map +1 -0
  222. package/dist/_generated/work_class.d.ts +6 -0
  223. package/dist/_generated/work_class.d.ts.map +1 -0
  224. package/dist/_generated/work_class.js +8 -0
  225. package/dist/_generated/work_class.js.map +1 -0
  226. package/dist/artifacts.d.ts +16 -0
  227. package/dist/artifacts.d.ts.map +1 -0
  228. package/dist/artifacts.js +16 -0
  229. package/dist/artifacts.js.map +1 -0
  230. package/dist/audio/audio-transcriptions.d.ts +31 -0
  231. package/dist/audio/audio-transcriptions.d.ts.map +1 -0
  232. package/dist/audio/audio-transcriptions.js +73 -0
  233. package/dist/audio/audio-transcriptions.js.map +1 -0
  234. package/dist/audio/index.d.ts +5 -0
  235. package/dist/audio/index.d.ts.map +1 -0
  236. package/dist/audio/index.js +3 -0
  237. package/dist/audio/index.js.map +1 -0
  238. package/dist/audio/octomil-audio.d.ts +9 -0
  239. package/dist/audio/octomil-audio.d.ts.map +1 -0
  240. package/dist/audio/octomil-audio.js +11 -0
  241. package/dist/audio/octomil-audio.js.map +1 -0
  242. package/dist/audio/transcription-types.d.ts +17 -0
  243. package/dist/audio/transcription-types.d.ts.map +1 -0
  244. package/dist/audio/transcription-types.js +6 -0
  245. package/dist/audio/transcription-types.js.map +1 -0
  246. package/dist/cache.js +1 -1
  247. package/dist/cache.js.map +1 -1
  248. package/dist/capabilities.d.ts +26 -0
  249. package/dist/capabilities.d.ts.map +1 -0
  250. package/dist/capabilities.js +68 -0
  251. package/dist/capabilities.js.map +1 -0
  252. package/dist/chat.d.ts +109 -0
  253. package/dist/chat.d.ts.map +1 -0
  254. package/dist/chat.js +258 -0
  255. package/dist/chat.js.map +1 -0
  256. package/dist/configure.d.ts +18 -0
  257. package/dist/configure.d.ts.map +1 -0
  258. package/dist/configure.js +136 -0
  259. package/dist/configure.js.map +1 -0
  260. package/dist/control.d.ts +171 -0
  261. package/dist/control.d.ts.map +1 -0
  262. package/dist/control.js +317 -0
  263. package/dist/control.js.map +1 -0
  264. package/dist/device-auth.d.ts +1 -1
  265. package/dist/device-auth.d.ts.map +1 -1
  266. package/dist/device-auth.js +7 -7
  267. package/dist/device-auth.js.map +1 -1
  268. package/dist/device-context.d.ts +48 -0
  269. package/dist/device-context.d.ts.map +1 -0
  270. package/dist/device-context.js +92 -0
  271. package/dist/device-context.js.map +1 -0
  272. package/dist/devices.d.ts +17 -0
  273. package/dist/devices.d.ts.map +1 -0
  274. package/dist/devices.js +16 -0
  275. package/dist/devices.js.map +1 -0
  276. package/dist/embeddings.d.ts +19 -0
  277. package/dist/embeddings.d.ts.map +1 -0
  278. package/dist/embeddings.js +54 -0
  279. package/dist/embeddings.js.map +1 -0
  280. package/dist/experiments.d.ts +4 -3
  281. package/dist/experiments.d.ts.map +1 -1
  282. package/dist/experiments.js +5 -10
  283. package/dist/experiments.js.map +1 -1
  284. package/dist/federated-analytics.d.ts +65 -0
  285. package/dist/federated-analytics.d.ts.map +1 -0
  286. package/dist/federated-analytics.js +128 -0
  287. package/dist/federated-analytics.js.map +1 -0
  288. package/dist/federated.d.ts +10 -3
  289. package/dist/federated.d.ts.map +1 -1
  290. package/dist/federated.js +68 -15
  291. package/dist/federated.js.map +1 -1
  292. package/dist/gradient-cache.d.ts +21 -0
  293. package/dist/gradient-cache.d.ts.map +1 -0
  294. package/dist/gradient-cache.js +70 -0
  295. package/dist/gradient-cache.js.map +1 -0
  296. package/dist/index.cjs +34626 -723
  297. package/dist/index.cjs.map +4 -4
  298. package/dist/index.d.ts +64 -13
  299. package/dist/index.d.ts.map +1 -1
  300. package/dist/index.js +55 -13
  301. package/dist/index.js.map +1 -1
  302. package/dist/install-id.d.ts +32 -0
  303. package/dist/install-id.d.ts.map +1 -0
  304. package/dist/install-id.js +61 -0
  305. package/dist/install-id.js.map +1 -0
  306. package/dist/{model-loader.d.ts → model-manager.d.ts} +4 -4
  307. package/dist/model-manager.d.ts.map +1 -0
  308. package/dist/{model-loader.js → model-manager.js} +18 -14
  309. package/dist/model-manager.js.map +1 -0
  310. package/dist/models.d.ts +74 -0
  311. package/dist/models.d.ts.map +1 -0
  312. package/dist/models.js +113 -0
  313. package/dist/models.js.map +1 -0
  314. package/dist/monitoring-config.d.ts +8 -0
  315. package/dist/monitoring-config.d.ts.map +1 -0
  316. package/dist/monitoring-config.js +5 -0
  317. package/dist/monitoring-config.js.map +1 -0
  318. package/dist/monitoring.d.ts +10 -0
  319. package/dist/monitoring.d.ts.map +1 -0
  320. package/dist/monitoring.js +19 -0
  321. package/dist/monitoring.js.map +1 -0
  322. package/dist/octomil.d.ts +151 -16
  323. package/dist/octomil.d.ts.map +1 -1
  324. package/dist/octomil.js +456 -125
  325. package/dist/octomil.js.map +1 -1
  326. package/dist/octomil.min.js +48 -2840
  327. package/dist/octomil.min.js.map +4 -4
  328. package/dist/responses-runtime.d.ts +13 -0
  329. package/dist/responses-runtime.d.ts.map +1 -0
  330. package/dist/responses-runtime.js +2 -0
  331. package/dist/responses-runtime.js.map +1 -0
  332. package/dist/responses-tools.d.ts +18 -0
  333. package/dist/responses-tools.d.ts.map +1 -0
  334. package/dist/responses-tools.js +71 -0
  335. package/dist/responses-tools.js.map +1 -0
  336. package/dist/responses.d.ts +142 -0
  337. package/dist/responses.d.ts.map +1 -0
  338. package/dist/responses.js +549 -0
  339. package/dist/responses.js.map +1 -0
  340. package/dist/routing.d.ts +49 -0
  341. package/dist/routing.d.ts.map +1 -0
  342. package/dist/routing.js +221 -0
  343. package/dist/routing.js.map +1 -0
  344. package/dist/runtime/core/model-runtime.d.ts +19 -0
  345. package/dist/runtime/core/model-runtime.d.ts.map +1 -0
  346. package/dist/runtime/core/model-runtime.js +9 -0
  347. package/dist/runtime/core/model-runtime.js.map +1 -0
  348. package/dist/{inference.d.ts → runtime/engines/onnx-web/engine.d.ts} +7 -3
  349. package/dist/runtime/engines/onnx-web/engine.d.ts.map +1 -0
  350. package/dist/{inference.js → runtime/engines/onnx-web/engine.js} +21 -7
  351. package/dist/runtime/engines/onnx-web/engine.js.map +1 -0
  352. package/dist/runtime/engines/registry/engine-plugin.d.ts +11 -0
  353. package/dist/runtime/engines/registry/engine-plugin.d.ts.map +1 -0
  354. package/dist/runtime/engines/registry/engine-plugin.js +2 -0
  355. package/dist/runtime/engines/registry/engine-plugin.js.map +1 -0
  356. package/dist/runtime/engines/registry/engine-registry.d.ts +35 -0
  357. package/dist/runtime/engines/registry/engine-registry.d.ts.map +1 -0
  358. package/dist/runtime/engines/registry/engine-registry.js +74 -0
  359. package/dist/runtime/engines/registry/engine-registry.js.map +1 -0
  360. package/dist/runtime/index.d.ts +4 -0
  361. package/dist/runtime/index.d.ts.map +1 -0
  362. package/dist/runtime/index.js +2 -0
  363. package/dist/runtime/index.js.map +1 -0
  364. package/dist/secure-aggregation.d.ts.map +1 -1
  365. package/dist/secure-aggregation.js +3 -2
  366. package/dist/secure-aggregation.js.map +1 -1
  367. package/dist/server-api.d.ts +17 -0
  368. package/dist/server-api.d.ts.map +1 -0
  369. package/dist/server-api.js +56 -0
  370. package/dist/server-api.js.map +1 -0
  371. package/dist/settings.d.ts +20 -0
  372. package/dist/settings.d.ts.map +1 -0
  373. package/dist/settings.js +49 -0
  374. package/dist/settings.js.map +1 -0
  375. package/dist/silent-auth-config.d.ts +33 -0
  376. package/dist/silent-auth-config.d.ts.map +1 -0
  377. package/dist/silent-auth-config.js +29 -0
  378. package/dist/silent-auth-config.js.map +1 -0
  379. package/dist/streaming.d.ts +4 -3
  380. package/dist/streaming.d.ts.map +1 -1
  381. package/dist/streaming.js +15 -25
  382. package/dist/streaming.js.map +1 -1
  383. package/dist/sync-manager.d.ts +103 -0
  384. package/dist/sync-manager.d.ts.map +1 -0
  385. package/dist/sync-manager.js +314 -0
  386. package/dist/sync-manager.js.map +1 -0
  387. package/dist/telemetry.d.ts +99 -4
  388. package/dist/telemetry.d.ts.map +1 -1
  389. package/dist/telemetry.js +251 -13
  390. package/dist/telemetry.js.map +1 -1
  391. package/dist/text/octomil-text.d.ts +18 -0
  392. package/dist/text/octomil-text.d.ts.map +1 -0
  393. package/dist/text/octomil-text.js +20 -0
  394. package/dist/text/octomil-text.js.map +1 -0
  395. package/dist/training.d.ts +15 -0
  396. package/dist/training.d.ts.map +1 -0
  397. package/dist/training.js +35 -0
  398. package/dist/training.js.map +1 -0
  399. package/dist/transformers-local-runtime.d.ts +17 -0
  400. package/dist/transformers-local-runtime.d.ts.map +1 -0
  401. package/dist/transformers-local-runtime.js +356 -0
  402. package/dist/transformers-local-runtime.js.map +1 -0
  403. package/dist/types.d.ts +353 -25
  404. package/dist/types.d.ts.map +1 -1
  405. package/dist/types.js +146 -0
  406. package/dist/types.js.map +1 -1
  407. package/package.json +7 -6
  408. package/dist/inference.d.ts.map +0 -1
  409. package/dist/inference.js.map +0 -1
  410. package/dist/model-loader.d.ts.map +0 -1
  411. package/dist/model-loader.js.map +0 -1
  412. package/dist/rollouts.d.ts +0 -43
  413. package/dist/rollouts.d.ts.map +0 -1
  414. package/dist/rollouts.js +0 -114
  415. package/dist/rollouts.js.map +0 -1
@@ -0,0 +1,221 @@
1
+ /**
2
+ * @octomil/browser — Routing client
3
+ *
4
+ * ADVANCED — MAY: Calls the Octomil routing API to decide whether inference
5
+ * should run on-device or in the cloud. Caches decisions with a configurable
6
+ * TTL and provides a cloud inference proxy when the server picks "cloud".
7
+ *
8
+ * This module is part of the ADVANCED tier. SDKs MAY implement routing
9
+ * support. It is not required for core SDK compliance.
10
+ */
11
+ import { OctomilError } from "./types.js";
12
+ // ---------------------------------------------------------------------------
13
+ // Constants
14
+ // ---------------------------------------------------------------------------
15
+ const DEFAULT_CACHE_TTL_MS = 300_000; // 5 minutes
16
+ const PERSISTENT_CACHE_KEY = "octomil_routing_cache";
17
+ // ---------------------------------------------------------------------------
18
+ // RoutingClient
19
+ // ---------------------------------------------------------------------------
20
+ export class RoutingClient {
21
+ serverUrl;
22
+ apiKey;
23
+ cacheTtlMs;
24
+ prefer;
25
+ cache = new Map();
26
+ /** Whether the last `route()` call was answered from offline fallback. */
27
+ lastRouteWasOffline = false;
28
+ constructor(config) {
29
+ this.serverUrl = config.serverUrl.replace(/\/+$/, "");
30
+ this.apiKey = config.apiKey;
31
+ this.cacheTtlMs = config.cacheTtlMs ?? DEFAULT_CACHE_TTL_MS;
32
+ this.prefer = config.prefer ?? "fastest";
33
+ }
34
+ // -----------------------------------------------------------------------
35
+ // Public
36
+ // -----------------------------------------------------------------------
37
+ /**
38
+ * Ask the routing API whether to run on-device or in the cloud.
39
+ *
40
+ * Returns a cached decision when available and not expired.
41
+ * On network failure, returns a persistent-cached decision or a synthetic
42
+ * device decision. Never returns `null`.
43
+ */
44
+ async route(modelId, modelParams, modelSizeMb, deviceCapabilities) {
45
+ this.lastRouteWasOffline = false;
46
+ const cached = this.cache.get(modelId);
47
+ if (cached && cached.expiresAt > Date.now()) {
48
+ return cached.decision;
49
+ }
50
+ const body = {
51
+ model_id: modelId,
52
+ model_params: modelParams,
53
+ model_size_mb: modelSizeMb,
54
+ device_capabilities: deviceCapabilities,
55
+ prefer: this.prefer,
56
+ };
57
+ let response;
58
+ try {
59
+ response = await fetch(`${this.serverUrl}/api/v1/route`, {
60
+ method: "POST",
61
+ headers: {
62
+ "Content-Type": "application/json",
63
+ Authorization: `Bearer ${this.apiKey}`,
64
+ },
65
+ body: JSON.stringify(body),
66
+ });
67
+ }
68
+ catch {
69
+ return this.offlineFallback(modelId);
70
+ }
71
+ if (!response.ok) {
72
+ return this.offlineFallback(modelId);
73
+ }
74
+ const decision = (await response.json());
75
+ this.cache.set(modelId, {
76
+ decision,
77
+ expiresAt: Date.now() + this.cacheTtlMs,
78
+ });
79
+ // Persist to localStorage for offline fallback.
80
+ this.persistToStorage(modelId, decision);
81
+ return decision;
82
+ }
83
+ /**
84
+ * Run inference in the cloud via POST /api/v1/inference.
85
+ *
86
+ * Throws on failure so the caller can catch and fall back to local.
87
+ */
88
+ async cloudInfer(modelId, inputData, parameters = {}) {
89
+ const body = {
90
+ model_id: modelId,
91
+ input_data: inputData,
92
+ parameters,
93
+ };
94
+ let response;
95
+ try {
96
+ response = await fetch(`${this.serverUrl}/api/v1/inference`, {
97
+ method: "POST",
98
+ headers: {
99
+ "Content-Type": "application/json",
100
+ Authorization: `Bearer ${this.apiKey}`,
101
+ },
102
+ body: JSON.stringify(body),
103
+ });
104
+ }
105
+ catch (err) {
106
+ throw new OctomilError("NETWORK_UNAVAILABLE", `Cloud inference request failed: ${String(err)}`, err);
107
+ }
108
+ if (!response.ok) {
109
+ throw new OctomilError("INFERENCE_FAILED", `Cloud inference failed: HTTP ${response.status}`);
110
+ }
111
+ return (await response.json());
112
+ }
113
+ /** Invalidate all cached routing decisions (in-memory and persistent). */
114
+ clearCache() {
115
+ this.cache.clear();
116
+ try {
117
+ localStorage.removeItem(PERSISTENT_CACHE_KEY);
118
+ }
119
+ catch {
120
+ // localStorage unavailable (e.g. SSR).
121
+ }
122
+ }
123
+ /** Invalidate the cached routing decision for a specific model. */
124
+ invalidate(modelId) {
125
+ this.cache.delete(modelId);
126
+ const entries = this.loadPersistentCache();
127
+ delete entries[modelId];
128
+ this.savePersistentCache(entries);
129
+ }
130
+ // -----------------------------------------------------------------------
131
+ // Offline fallback
132
+ // -----------------------------------------------------------------------
133
+ offlineFallback(modelId) {
134
+ this.lastRouteWasOffline = true;
135
+ // Try persistent cache.
136
+ const entries = this.loadPersistentCache();
137
+ const persisted = entries[modelId];
138
+ if (persisted) {
139
+ return { ...persisted, cached: true, offline: false };
140
+ }
141
+ // No cache — synthetic device decision.
142
+ return {
143
+ id: `offline-${modelId}`,
144
+ target: "device",
145
+ format: "onnx",
146
+ engine: "ort-wasm",
147
+ fallback_target: null,
148
+ cached: false,
149
+ offline: true,
150
+ };
151
+ }
152
+ // -----------------------------------------------------------------------
153
+ // Persistent storage (localStorage)
154
+ // -----------------------------------------------------------------------
155
+ persistToStorage(modelId, decision) {
156
+ const entries = this.loadPersistentCache();
157
+ entries[modelId] = decision;
158
+ this.savePersistentCache(entries);
159
+ }
160
+ loadPersistentCache() {
161
+ try {
162
+ const raw = localStorage.getItem(PERSISTENT_CACHE_KEY);
163
+ if (!raw)
164
+ return {};
165
+ return JSON.parse(raw);
166
+ }
167
+ catch {
168
+ return {};
169
+ }
170
+ }
171
+ savePersistentCache(entries) {
172
+ try {
173
+ localStorage.setItem(PERSISTENT_CACHE_KEY, JSON.stringify(entries));
174
+ }
175
+ catch {
176
+ // localStorage unavailable or full.
177
+ }
178
+ }
179
+ }
180
+ // ---------------------------------------------------------------------------
181
+ // Helpers
182
+ // ---------------------------------------------------------------------------
183
+ /**
184
+ * Detect device capabilities in a browser environment.
185
+ * Returns reasonable defaults when APIs are unavailable.
186
+ */
187
+ export async function detectDeviceCapabilities() {
188
+ const gpuAvailable = await detectWebGPU();
189
+ // navigator.deviceMemory is only available in Chromium browsers.
190
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
191
+ const memoryGb = navigator.deviceMemory;
192
+ const totalMemoryMb = memoryGb ? Math.round(memoryGb * 1024) : 0;
193
+ const supportedRuntimes = ["wasm"];
194
+ if (gpuAvailable) {
195
+ supportedRuntimes.push("webgpu");
196
+ }
197
+ return {
198
+ platform: "web",
199
+ model: navigator.userAgent,
200
+ total_memory_mb: totalMemoryMb,
201
+ gpu_available: gpuAvailable,
202
+ npu_available: false, // No NPU API in browsers yet.
203
+ supported_runtimes: supportedRuntimes,
204
+ };
205
+ }
206
+ async function detectWebGPU() {
207
+ if (typeof navigator === "undefined")
208
+ return false;
209
+ try {
210
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
211
+ const gpu = navigator.gpu;
212
+ if (!gpu)
213
+ return false;
214
+ const adapter = await gpu.requestAdapter();
215
+ return adapter !== null;
216
+ }
217
+ catch {
218
+ return false;
219
+ }
220
+ }
221
+ //# sourceMappingURL=routing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routing.js","sourceRoot":"","sources":["../src/routing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * @octomil/browser — ModelRuntime interface
3
+ *
4
+ * Abstraction over inference runtimes. The default `InferenceEngine` uses
5
+ * ONNX Runtime Web, but callers may inject a custom runtime (e.g.
6
+ * TensorFlow.js, WebNN) via the OctomilClient constructor.
7
+ */
8
+ import type { Backend, NamedTensors, PredictOutput } from "../../types.js";
9
+ export interface ModelRuntime {
10
+ /** Create a runtime session from a model buffer. */
11
+ createSession(modelData: ArrayBuffer, backend?: Backend): Promise<void>;
12
+ /** Run inference on the given inputs. */
13
+ run(inputs: NamedTensors): Promise<PredictOutput>;
14
+ /** Release all resources held by the runtime. */
15
+ dispose(): void;
16
+ /** Whether this runtime is available in the current environment. */
17
+ isAvailable(): Promise<boolean>;
18
+ }
19
+ //# sourceMappingURL=model-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-runtime.d.ts","sourceRoot":"","sources":["../../../src/runtime/core/model-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE3E,MAAM,WAAW,YAAY;IAC3B,oDAAoD;IACpD,aAAa,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxE,yCAAyC;IACzC,GAAG,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAClD,iDAAiD;IACjD,OAAO,IAAI,IAAI,CAAC;IAChB,oEAAoE;IACpE,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CACjC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @octomil/browser — ModelRuntime interface
3
+ *
4
+ * Abstraction over inference runtimes. The default `InferenceEngine` uses
5
+ * ONNX Runtime Web, but callers may inject a custom runtime (e.g.
6
+ * TensorFlow.js, WebNN) via the OctomilClient constructor.
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=model-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-runtime.js","sourceRoot":"","sources":["../../../src/runtime/core/model-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
@@ -5,8 +5,10 @@
5
5
  * buffer, auto-detect the best execution provider (WebGPU > WASM),
6
6
  * and run forward passes.
7
7
  */
8
- import type { Backend, NamedTensors, PredictOutput } from "./types.js";
9
- export declare class InferenceEngine {
8
+ import type { Backend, NamedTensors, PredictOutput } from "../../../types.js";
9
+ import type { ModelRuntime } from "../../core/model-runtime.js";
10
+ export type { ModelRuntime } from "../../core/model-runtime.js";
11
+ export declare class InferenceEngine implements ModelRuntime {
10
12
  private session;
11
13
  private ortModule;
12
14
  private resolvedBackend;
@@ -29,6 +31,8 @@ export declare class InferenceEngine {
29
31
  get activeBackend(): Backend | null;
30
32
  /** Release WASM / WebGPU resources. */
31
33
  dispose(): void;
34
+ /** Check if ONNX Runtime Web can be loaded in this environment. */
35
+ isAvailable(): Promise<boolean>;
32
36
  private loadOrt;
33
37
  private resolveProvider;
34
38
  private detectWebGPU;
@@ -40,4 +44,4 @@ export declare class InferenceEngine {
40
44
  */
41
45
  private extractConvenience;
42
46
  }
43
- //# sourceMappingURL=inference.d.ts.map
47
+ //# sourceMappingURL=engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../../src/runtime/engines/onnx-web/engine.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAc,MAAM,mBAAmB,CAAC;AAE1F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE,YAAY,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAahE,qBAAa,eAAgB,YAAW,YAAY;IAClD,OAAO,CAAC,OAAO,CAAqC;IACpD,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,eAAe,CAAwB;IAM/C;;;;;OAKG;IACG,aAAa,CACjB,SAAS,EAAE,WAAW,EACtB,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,CAAC,IAAI,CAAC;IA0ChB;;OAEG;IACG,GAAG,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC;IA4CvD,0CAA0C;IAC1C,IAAI,UAAU,IAAI,SAAS,MAAM,EAAE,CAGlC;IAED,2CAA2C;IAC3C,IAAI,WAAW,IAAI,SAAS,MAAM,EAAE,CAGnC;IAED,4DAA4D;IAC5D,IAAI,aAAa,IAAI,OAAO,GAAG,IAAI,CAElC;IAED,uCAAuC;IACvC,OAAO,IAAI,IAAI;IAQf,mEAAmE;IAC7D,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;YAavB,OAAO;YAiBP,eAAe;YAoBf,YAAY;IAc1B,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,cAAc;IAgBtB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;CAmC3B"}
@@ -5,7 +5,7 @@
5
5
  * buffer, auto-detect the best execution provider (WebGPU > WASM),
6
6
  * and run forward passes.
7
7
  */
8
- import { OctomilError } from "./types.js";
8
+ import { OctomilError } from "../../../types.js";
9
9
  // ---------------------------------------------------------------------------
10
10
  // InferenceEngine
11
11
  // ---------------------------------------------------------------------------
@@ -105,6 +105,16 @@ export class InferenceEngine {
105
105
  this.session = null;
106
106
  }
107
107
  }
108
+ /** Check if ONNX Runtime Web can be loaded in this environment. */
109
+ async isAvailable() {
110
+ try {
111
+ await this.loadOrt();
112
+ return true;
113
+ }
114
+ catch {
115
+ return false;
116
+ }
117
+ }
108
118
  // -----------------------------------------------------------------------
109
119
  // Internal
110
120
  // -----------------------------------------------------------------------
@@ -118,7 +128,7 @@ export class InferenceEngine {
118
128
  return this.ortModule;
119
129
  }
120
130
  catch (err) {
121
- throw new OctomilError("BACKEND_UNAVAILABLE", 'Failed to import onnxruntime-web. Make sure the package is installed: npm i onnxruntime-web', err);
131
+ throw new OctomilError("RUNTIME_UNAVAILABLE", 'Failed to import onnxruntime-web. Make sure the package is installed: npm i onnxruntime-web', err);
122
132
  }
123
133
  }
124
134
  async resolveProvider(_ortMod, backend) {
@@ -129,7 +139,7 @@ export class InferenceEngine {
129
139
  if (hasWebGPU)
130
140
  return "webgpu";
131
141
  if (backend === "webgpu") {
132
- throw new OctomilError("BACKEND_UNAVAILABLE", "WebGPU was explicitly requested but is not available in this browser.");
142
+ throw new OctomilError("RUNTIME_UNAVAILABLE", "WebGPU was explicitly requested but is not available in this browser.");
133
143
  }
134
144
  }
135
145
  return "wasm";
@@ -151,7 +161,7 @@ export class InferenceEngine {
151
161
  }
152
162
  ensureSession() {
153
163
  if (!this.session) {
154
- throw new OctomilError("SESSION_DISPOSED", "No active session. Call load() before running inference.");
164
+ throw new OctomilError("CANCELLED", "No active session. Call load() before running inference.");
155
165
  }
156
166
  }
157
167
  convertOutputs(results) {
@@ -175,10 +185,14 @@ export class InferenceEngine {
175
185
  return {};
176
186
  const first = tensors[names[0]];
177
187
  const data = first.data;
178
- if (!(data instanceof Float32Array))
179
- return {};
180
188
  if (data.length === 0)
181
189
  return {};
190
+ // Single-element output indicates a direct class/token ID.
191
+ if (data.length === 1) {
192
+ return { label: String(Number(data[0])), score: 1.0 };
193
+ }
194
+ if (!(data instanceof Float32Array))
195
+ return {};
182
196
  // Treat as class probabilities / logits.
183
197
  const scores = Array.from(data);
184
198
  let maxIdx = 0;
@@ -210,4 +224,4 @@ function inferOrtType(data) {
210
224
  return "uint8";
211
225
  return "float32";
212
226
  }
213
- //# sourceMappingURL=inference.js.map
227
+ //# sourceMappingURL=engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../../src/runtime/engines/onnx-web/engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { BenchmarkResult } from "../../../types.js";
2
+ export interface EnginePlugin {
3
+ readonly name: string;
4
+ readonly displayName: string;
5
+ readonly priority: number;
6
+ detect(): Promise<boolean>;
7
+ detectInfo(): Promise<string>;
8
+ supportsModel(modelName: string): boolean;
9
+ benchmark(modelName: string, nTokens?: number): Promise<BenchmarkResult>;
10
+ }
11
+ //# sourceMappingURL=engine-plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine-plugin.d.ts","sourceRoot":"","sources":["../../../../src/runtime/engines/registry/engine-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3B,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9B,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IAC1C,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CAC1E"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=engine-plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine-plugin.js","sourceRoot":"","sources":["../../../../src/runtime/engines/registry/engine-plugin.ts"],"names":[],"mappings":""}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * @octomil/browser — Engine registry
3
+ *
4
+ * Minimal registry for discovering, benchmarking, and selecting inference
5
+ * engines. In the browser environment only ONNX Runtime (WebGPU / WASM) is
6
+ * available by default, but the registry allows third-party plugins to
7
+ * register additional backends.
8
+ *
9
+ * Matches the cross-platform SDK interface.
10
+ */
11
+ import type { EnginePlugin } from "./engine-plugin.js";
12
+ import type { DetectionResult, RankedEngine } from "../../../types.js";
13
+ export declare class EngineRegistry {
14
+ private plugins;
15
+ /** Register an engine plugin. Replaces any existing plugin with the same name. */
16
+ register(plugin: EnginePlugin): void;
17
+ /** Remove a registered plugin by name. */
18
+ remove(name: string): boolean;
19
+ /** Get a registered plugin by name. */
20
+ get(name: string): EnginePlugin | undefined;
21
+ /** List all registered plugin names. */
22
+ get engines(): readonly string[];
23
+ /** Clear all registrations. */
24
+ reset(): void;
25
+ /** Detect which registered engines are available. */
26
+ detectAll(modelName?: string): Promise<DetectionResult[]>;
27
+ /** Benchmark available engines and return results sorted by throughput. */
28
+ benchmarkAll(modelName: string, nTokens?: number): Promise<RankedEngine[]>;
29
+ /** Pick the best engine from benchmark results (highest throughput, no error). */
30
+ selectBest(ranked: RankedEngine[]): RankedEngine | null;
31
+ /** Convenience: detect → benchmark → select in one call. */
32
+ autoSelect(modelName: string, nTokens?: number): Promise<RankedEngine | null>;
33
+ private sortedPlugins;
34
+ }
35
+ //# sourceMappingURL=engine-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine-registry.d.ts","sourceRoot":"","sources":["../../../../src/runtime/engines/registry/engine-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEvE,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAwC;IAEvD,kFAAkF;IAClF,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAIpC,0CAA0C;IAC1C,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI7B,uCAAuC;IACvC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAI3C,wCAAwC;IACxC,IAAI,OAAO,IAAI,SAAS,MAAM,EAAE,CAE/B;IAED,+BAA+B;IAC/B,KAAK,IAAI,IAAI;IAIb,qDAAqD;IAC/C,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAe/D,2EAA2E;IACrE,YAAY,CAChB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,YAAY,EAAE,CAAC;IAiB1B,kFAAkF;IAClF,UAAU,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,YAAY,GAAG,IAAI;IAIvD,4DAA4D;IACtD,UAAU,CACd,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAK/B,OAAO,CAAC,aAAa;CAGtB"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * @octomil/browser — Engine registry
3
+ *
4
+ * Minimal registry for discovering, benchmarking, and selecting inference
5
+ * engines. In the browser environment only ONNX Runtime (WebGPU / WASM) is
6
+ * available by default, but the registry allows third-party plugins to
7
+ * register additional backends.
8
+ *
9
+ * Matches the cross-platform SDK interface.
10
+ */
11
+ export class EngineRegistry {
12
+ plugins = new Map();
13
+ /** Register an engine plugin. Replaces any existing plugin with the same name. */
14
+ register(plugin) {
15
+ this.plugins.set(plugin.name, plugin);
16
+ }
17
+ /** Remove a registered plugin by name. */
18
+ remove(name) {
19
+ return this.plugins.delete(name);
20
+ }
21
+ /** Get a registered plugin by name. */
22
+ get(name) {
23
+ return this.plugins.get(name);
24
+ }
25
+ /** List all registered plugin names. */
26
+ get engines() {
27
+ return [...this.plugins.keys()];
28
+ }
29
+ /** Clear all registrations. */
30
+ reset() {
31
+ this.plugins.clear();
32
+ }
33
+ /** Detect which registered engines are available. */
34
+ async detectAll(modelName) {
35
+ const results = [];
36
+ for (const plugin of this.sortedPlugins()) {
37
+ const available = await plugin.detect();
38
+ const supportsModel = modelName ? plugin.supportsModel(modelName) : true;
39
+ const info = available ? await plugin.detectInfo() : "";
40
+ results.push({
41
+ engine: plugin.name,
42
+ available: available && supportsModel,
43
+ info,
44
+ });
45
+ }
46
+ return results;
47
+ }
48
+ /** Benchmark available engines and return results sorted by throughput. */
49
+ async benchmarkAll(modelName, nTokens) {
50
+ const detected = await this.detectAll(modelName);
51
+ const available = detected.filter((d) => d.available);
52
+ const ranked = [];
53
+ for (const det of available) {
54
+ const plugin = this.plugins.get(det.engine);
55
+ const result = await plugin.benchmark(modelName, nTokens);
56
+ ranked.push({ engine: det.engine, result });
57
+ }
58
+ ranked.sort((a, b) => b.result.tokens_per_second - a.result.tokens_per_second);
59
+ return ranked;
60
+ }
61
+ /** Pick the best engine from benchmark results (highest throughput, no error). */
62
+ selectBest(ranked) {
63
+ return ranked.find((r) => r.result.error == null) ?? null;
64
+ }
65
+ /** Convenience: detect → benchmark → select in one call. */
66
+ async autoSelect(modelName, nTokens) {
67
+ const ranked = await this.benchmarkAll(modelName, nTokens);
68
+ return this.selectBest(ranked);
69
+ }
70
+ sortedPlugins() {
71
+ return [...this.plugins.values()].sort((a, b) => a.priority - b.priority);
72
+ }
73
+ }
74
+ //# sourceMappingURL=engine-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine-registry.js","sourceRoot":"","sources":["../../../../src/runtime/engines/registry/engine-registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export type { ModelRuntime } from "./core/model-runtime.js";
2
+ export { EngineRegistry } from "./engines/registry/engine-registry.js";
3
+ export type { EnginePlugin } from "./engines/registry/engine-plugin.js";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AACvE,YAAY,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { EngineRegistry } from "./engines/registry/engine-registry.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"secure-aggregation.d.ts","sourceRoot":"","sources":["../src/secure-aggregation.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAM5C,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAA8B;IAE7C,gDAAgD;IAC1C,eAAe,IAAI,OAAO,CAAC;QAAE,SAAS,EAAE,UAAU,CAAA;KAAE,CAAC;IAa3D,qDAAqD;IAC/C,kBAAkB,CAAC,gBAAgB,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;IAkB5E;;;OAGG;IACG,UAAU,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IA+B5E,iEAAiE;IACjE,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,SAAS;IAgBzE,6DAA6D;IAC7D,MAAM,CACJ,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,GACtC,SAAS;CAeb;AA0BD,MAAM,WAAW,WAAW;IAC1B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,WAAW,EAAE,CAqBf;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CA4B/D;AAMD,qBAAa,UAAW,SAAQ,iBAAiB;IAC/C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAEvB,SAAS,EAAE,MAAM;IAK7B;;;OAGG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,WAAW,EAAE;IAI5D,iEAAiE;IACjE,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM;CAQjD"}
1
+ {"version":3,"file":"secure-aggregation.d.ts","sourceRoot":"","sources":["../src/secure-aggregation.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAO5C,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAA8B;IAE7C,gDAAgD;IAC1C,eAAe,IAAI,OAAO,CAAC;QAAE,SAAS,EAAE,UAAU,CAAA;KAAE,CAAC;IAa3D,qDAAqD;IAC/C,kBAAkB,CAAC,gBAAgB,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;IAkB5E;;;OAGG;IACG,UAAU,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IA+B5E,iEAAiE;IACjE,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,SAAS;IAgBzE,6DAA6D;IAC7D,MAAM,CACJ,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,GACtC,SAAS;CAeb;AA0BD,MAAM,WAAW,WAAW;IAC1B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,WAAW,EAAE,CAqBf;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CA4B/D;AAMD,qBAAa,UAAW,SAAQ,iBAAiB;IAC/C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAEvB,SAAS,EAAE,MAAM;IAK7B;;;OAGG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,WAAW,EAAE;IAI5D,iEAAiE;IACjE,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM;CASjD"}
@@ -5,6 +5,7 @@
5
5
  * secret sharing, all via the Web Crypto API. Ensures the server
6
6
  * only sees the aggregate of client updates, never individual deltas.
7
7
  */
8
+ import { OctomilError } from "./types.js";
8
9
  // ---------------------------------------------------------------------------
9
10
  // SecureAggregation (basic pairwise masking)
10
11
  // ---------------------------------------------------------------------------
@@ -19,7 +20,7 @@ export class SecureAggregation {
19
20
  /** Derive a shared secret with a peer using ECDH. */
20
21
  async deriveSharedSecret(peerPublicKeyJwk) {
21
22
  if (!this.keyPair) {
22
- throw new Error("Call generateKeyPair() first.");
23
+ throw new OctomilError("INVALID_INPUT", "Call generateKeyPair() first.");
23
24
  }
24
25
  const peerKey = await crypto.subtle.importKey("jwk", peerPublicKeyJwk, { name: "ECDH", namedCurve: "P-256" }, false, []);
25
26
  return crypto.subtle.deriveBits({ name: "ECDH", public: peerKey }, this.keyPair.privateKey, 256);
@@ -166,7 +167,7 @@ export class SecAggPlus extends SecureAggregation {
166
167
  /** Reconstruct a dropped peer's secret from collected shares. */
167
168
  reconstructSecret(shares) {
168
169
  if (shares.length < this.threshold) {
169
- throw new Error(`Need at least ${this.threshold} shares, got ${shares.length}.`);
170
+ throw new OctomilError("INVALID_INPUT", `Need at least ${this.threshold} shares, got ${shares.length}.`);
170
171
  }
171
172
  return shamirReconstruct(shares.slice(0, this.threshold));
172
173
  }
@@ -1 +1 @@
1
- {"version":3,"file":"secure-aggregation.js","sourceRoot":"","sources":["../src/secure-aggregation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"secure-aggregation.js","sourceRoot":"","sources":["../src/secure-aggregation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ export interface ServerClientOptions {
2
+ serverUrl?: string;
3
+ apiKey?: string;
4
+ orgId?: string;
5
+ }
6
+ export type QueryValue = string | number | boolean | null | undefined;
7
+ export declare class ServerApiClient {
8
+ protected readonly serverUrl: string;
9
+ protected readonly apiKey: string | undefined;
10
+ protected readonly orgId: string | undefined;
11
+ constructor(options?: ServerClientOptions);
12
+ protected buildUrl(path: string, query?: Record<string, QueryValue>): string;
13
+ protected requestJson<T>(path: string, init?: RequestInit, query?: Record<string, QueryValue>): Promise<T>;
14
+ protected requestVoid(path: string, init?: RequestInit, query?: Record<string, QueryValue>): Promise<void>;
15
+ private request;
16
+ }
17
+ //# sourceMappingURL=server-api.d.ts.map