sonamu 0.6.0 → 0.7.1

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 (406) hide show
  1. package/.swcrc.project-default +18 -0
  2. package/bin/cli.js +24 -0
  3. package/dist/ai/agents/agent.d.ts +11 -0
  4. package/dist/ai/agents/agent.d.ts.map +1 -0
  5. package/dist/ai/agents/agent.js +65 -0
  6. package/dist/ai/agents/index.d.ts +3 -0
  7. package/dist/ai/agents/index.d.ts.map +1 -0
  8. package/dist/ai/agents/index.js +4 -0
  9. package/dist/ai/agents/types.d.ts +43 -0
  10. package/dist/ai/agents/types.d.ts.map +1 -0
  11. package/dist/ai/agents/types.js +3 -0
  12. package/dist/ai/index.d.ts +2 -0
  13. package/dist/ai/index.d.ts.map +1 -0
  14. package/dist/ai/index.js +3 -0
  15. package/dist/ai/providers/rtzr/api.d.ts +22 -0
  16. package/dist/ai/providers/rtzr/api.d.ts.map +1 -0
  17. package/dist/ai/providers/rtzr/api.js +28 -0
  18. package/dist/ai/providers/rtzr/error.d.ts +18 -0
  19. package/dist/ai/providers/rtzr/error.d.ts.map +1 -0
  20. package/dist/ai/providers/rtzr/error.js +29 -0
  21. package/dist/ai/providers/rtzr/index.d.ts +5 -0
  22. package/dist/ai/providers/rtzr/index.d.ts.map +1 -0
  23. package/dist/ai/providers/rtzr/index.js +6 -0
  24. package/dist/ai/providers/rtzr/model.d.ts +52 -0
  25. package/dist/ai/providers/rtzr/model.d.ts.map +1 -0
  26. package/dist/ai/providers/rtzr/model.js +137 -0
  27. package/dist/ai/providers/rtzr/options.d.ts +7 -0
  28. package/dist/ai/providers/rtzr/options.d.ts.map +1 -0
  29. package/dist/ai/providers/rtzr/options.js +47 -0
  30. package/dist/ai/providers/rtzr/provider.d.ts +18 -0
  31. package/dist/ai/providers/rtzr/provider.d.ts.map +1 -0
  32. package/dist/ai/providers/rtzr/provider.js +54 -0
  33. package/dist/ai/providers/rtzr/utils.d.ts +19 -0
  34. package/dist/ai/providers/rtzr/utils.d.ts.map +1 -0
  35. package/dist/ai/providers/rtzr/utils.js +88 -0
  36. package/dist/api/base-frame.d.ts +2 -2
  37. package/dist/api/base-frame.d.ts.map +1 -1
  38. package/dist/api/base-frame.js +2 -1
  39. package/dist/api/caster.d.ts.map +1 -1
  40. package/dist/api/caster.js +6 -1
  41. package/dist/api/code-converters.d.ts +58 -14
  42. package/dist/api/code-converters.d.ts.map +1 -1
  43. package/dist/api/code-converters.js +178 -409
  44. package/dist/api/config.d.ts +27 -13
  45. package/dist/api/config.d.ts.map +1 -1
  46. package/dist/api/config.js +19 -26
  47. package/dist/api/context.d.ts +4 -3
  48. package/dist/api/context.d.ts.map +1 -1
  49. package/dist/api/context.js +1 -1
  50. package/dist/api/decorators.d.ts +20 -6
  51. package/dist/api/decorators.d.ts.map +1 -1
  52. package/dist/api/decorators.js +111 -18
  53. package/dist/api/index.d.ts +2 -2
  54. package/dist/api/index.d.ts.map +1 -1
  55. package/dist/api/index.js +3 -3
  56. package/dist/api/sonamu.d.ts +7 -7
  57. package/dist/api/sonamu.d.ts.map +1 -1
  58. package/dist/api/sonamu.js +83 -51
  59. package/dist/api/validator.d.ts +6 -0
  60. package/dist/api/validator.d.ts.map +1 -0
  61. package/dist/api/validator.js +81 -0
  62. package/dist/bin/build-config.d.ts +5 -1
  63. package/dist/bin/build-config.d.ts.map +1 -1
  64. package/dist/bin/build-config.js +5 -2
  65. package/dist/bin/cli.js +165 -64
  66. package/dist/bin/loader-register.d.ts +2 -0
  67. package/dist/bin/loader-register.d.ts.map +1 -0
  68. package/dist/bin/loader-register.js +34 -0
  69. package/dist/database/_batch_update.d.ts +5 -3
  70. package/dist/database/_batch_update.d.ts.map +1 -1
  71. package/dist/database/_batch_update.js +30 -13
  72. package/dist/database/base-model.d.ts +96 -10
  73. package/dist/database/base-model.d.ts.map +1 -1
  74. package/dist/database/base-model.js +232 -89
  75. package/dist/database/base-model.types.d.ts +93 -0
  76. package/dist/database/base-model.types.d.ts.map +1 -0
  77. package/dist/database/base-model.types.js +10 -0
  78. package/dist/database/code-generator.d.ts +1 -1
  79. package/dist/database/code-generator.d.ts.map +1 -1
  80. package/dist/database/code-generator.js +11 -10
  81. package/dist/database/db.d.ts +5 -6
  82. package/dist/database/db.d.ts.map +1 -1
  83. package/dist/database/db.js +22 -25
  84. package/dist/database/puri-subset.test-d.js +81 -0
  85. package/dist/database/puri-subset.types.d.ts +123 -0
  86. package/dist/database/puri-subset.types.d.ts.map +1 -0
  87. package/dist/database/puri-subset.types.js +16 -0
  88. package/dist/database/puri-wrapper.d.ts +13 -11
  89. package/dist/database/puri-wrapper.d.ts.map +1 -1
  90. package/dist/database/puri-wrapper.js +2 -2
  91. package/dist/database/puri.d.ts +25 -14
  92. package/dist/database/puri.d.ts.map +1 -1
  93. package/dist/database/puri.js +83 -21
  94. package/dist/database/puri.types.d.ts +21 -7
  95. package/dist/database/puri.types.d.ts.map +1 -1
  96. package/dist/database/puri.types.js +4 -1
  97. package/dist/database/transaction-context.d.ts +1 -1
  98. package/dist/database/transaction-context.d.ts.map +1 -1
  99. package/dist/database/transaction-context.js +1 -1
  100. package/dist/database/upsert-builder.d.ts +9 -3
  101. package/dist/database/upsert-builder.d.ts.map +1 -1
  102. package/dist/database/upsert-builder.js +227 -78
  103. package/dist/entity/entity-manager.d.ts +165 -2
  104. package/dist/entity/entity-manager.d.ts.map +1 -1
  105. package/dist/entity/entity-manager.js +26 -10
  106. package/dist/entity/entity.d.ts +5 -3
  107. package/dist/entity/entity.d.ts.map +1 -1
  108. package/dist/entity/entity.js +153 -54
  109. package/dist/exceptions/error-handler.d.ts +1 -1
  110. package/dist/exceptions/error-handler.d.ts.map +1 -1
  111. package/dist/exceptions/error-handler.js +1 -1
  112. package/dist/exceptions/so-exceptions.d.ts +1 -1
  113. package/dist/exceptions/so-exceptions.d.ts.map +1 -1
  114. package/dist/exceptions/so-exceptions.js +1 -1
  115. package/dist/file-storage/driver.d.ts +1 -1
  116. package/dist/file-storage/driver.d.ts.map +1 -1
  117. package/dist/file-storage/driver.js +1 -1
  118. package/dist/file-storage/file-storage.js +2 -2
  119. package/dist/index.d.ts +18 -11
  120. package/dist/index.d.ts.map +1 -1
  121. package/dist/index.js +19 -13
  122. package/dist/migration/code-generation.d.ts +1 -1
  123. package/dist/migration/code-generation.d.ts.map +1 -1
  124. package/dist/migration/code-generation.js +123 -67
  125. package/dist/migration/migration-set.d.ts +2 -10
  126. package/dist/migration/migration-set.d.ts.map +1 -1
  127. package/dist/migration/migration-set.js +67 -218
  128. package/dist/migration/migrator.d.ts +24 -73
  129. package/dist/migration/migrator.d.ts.map +1 -1
  130. package/dist/migration/migrator.js +121 -301
  131. package/dist/migration/postgresql-schema-reader.d.ts +51 -0
  132. package/dist/migration/postgresql-schema-reader.d.ts.map +1 -0
  133. package/dist/migration/postgresql-schema-reader.js +245 -0
  134. package/dist/migration/types.d.ts +6 -38
  135. package/dist/migration/types.d.ts.map +1 -1
  136. package/dist/migration/types.js +1 -1
  137. package/dist/naite/messaging-types.d.ts +43 -0
  138. package/dist/naite/messaging-types.d.ts.map +1 -0
  139. package/dist/naite/messaging-types.js +7 -0
  140. package/dist/naite/naite-reporter.d.ts +41 -0
  141. package/dist/naite/naite-reporter.d.ts.map +1 -0
  142. package/dist/naite/naite-reporter.js +102 -0
  143. package/dist/naite/naite.d.ts +91 -8
  144. package/dist/naite/naite.d.ts.map +1 -1
  145. package/dist/naite/naite.js +285 -41
  146. package/dist/stream/sse.d.ts +2 -2
  147. package/dist/stream/sse.d.ts.map +1 -1
  148. package/dist/stream/sse.js +1 -1
  149. package/dist/syncer/api-parser.d.ts +3 -13
  150. package/dist/syncer/api-parser.d.ts.map +1 -1
  151. package/dist/syncer/api-parser.js +67 -56
  152. package/dist/syncer/checksum.d.ts +2 -2
  153. package/dist/syncer/checksum.d.ts.map +1 -1
  154. package/dist/syncer/checksum.js +11 -11
  155. package/dist/syncer/code-generator.d.ts +3 -3
  156. package/dist/syncer/code-generator.d.ts.map +1 -1
  157. package/dist/syncer/code-generator.js +37 -17
  158. package/dist/syncer/entity-operations.d.ts +2 -2
  159. package/dist/syncer/entity-operations.d.ts.map +1 -1
  160. package/dist/syncer/entity-operations.js +9 -8
  161. package/dist/syncer/file-patterns.d.ts +1 -1
  162. package/dist/syncer/file-patterns.d.ts.map +1 -1
  163. package/dist/syncer/file-patterns.js +1 -1
  164. package/dist/syncer/index.d.ts +4 -4
  165. package/dist/syncer/index.d.ts.map +1 -1
  166. package/dist/syncer/index.js +5 -5
  167. package/dist/syncer/module-loader.d.ts +4 -4
  168. package/dist/syncer/module-loader.d.ts.map +1 -1
  169. package/dist/syncer/module-loader.js +17 -12
  170. package/dist/syncer/syncer.d.ts +31 -24
  171. package/dist/syncer/syncer.d.ts.map +1 -1
  172. package/dist/syncer/syncer.js +92 -45
  173. package/dist/template/entity-converter.d.ts +1 -1
  174. package/dist/template/entity-converter.d.ts.map +1 -1
  175. package/dist/template/entity-converter.js +15 -8
  176. package/dist/template/helpers.d.ts +2 -2
  177. package/dist/template/helpers.d.ts.map +1 -1
  178. package/dist/template/helpers.js +3 -3
  179. package/dist/template/implementations/entity.template.d.ts +2 -2
  180. package/dist/template/implementations/entity.template.d.ts.map +1 -1
  181. package/dist/template/implementations/entity.template.js +4 -5
  182. package/dist/template/implementations/generated.template.d.ts +2 -3
  183. package/dist/template/implementations/generated.template.d.ts.map +1 -1
  184. package/dist/template/implementations/generated.template.js +46 -29
  185. package/dist/template/implementations/generated_http.template.d.ts +2 -3
  186. package/dist/template/implementations/generated_http.template.d.ts.map +1 -1
  187. package/dist/template/implementations/generated_http.template.js +9 -9
  188. package/dist/template/implementations/generated_sso.template.d.ts +3 -4
  189. package/dist/template/implementations/generated_sso.template.d.ts.map +1 -1
  190. package/dist/template/implementations/generated_sso.template.js +54 -25
  191. package/dist/template/implementations/init_types.template.d.ts +2 -2
  192. package/dist/template/implementations/init_types.template.d.ts.map +1 -1
  193. package/dist/template/implementations/init_types.template.js +2 -2
  194. package/dist/template/implementations/model.template.d.ts +2 -2
  195. package/dist/template/implementations/model.template.d.ts.map +1 -1
  196. package/dist/template/implementations/model.template.js +47 -37
  197. package/dist/template/implementations/model_test.template.d.ts +2 -2
  198. package/dist/template/implementations/model_test.template.d.ts.map +1 -1
  199. package/dist/template/implementations/model_test.template.js +2 -2
  200. package/dist/template/implementations/service.template.d.ts +4 -4
  201. package/dist/template/implementations/service.template.d.ts.map +1 -1
  202. package/dist/template/implementations/service.template.js +24 -16
  203. package/dist/template/implementations/view_enums_buttonset.template.d.ts +2 -2
  204. package/dist/template/implementations/view_enums_buttonset.template.d.ts.map +1 -1
  205. package/dist/template/implementations/view_enums_buttonset.template.js +1 -1
  206. package/dist/template/implementations/view_enums_dropdown.template.d.ts +2 -2
  207. package/dist/template/implementations/view_enums_dropdown.template.d.ts.map +1 -1
  208. package/dist/template/implementations/view_enums_dropdown.template.js +2 -2
  209. package/dist/template/implementations/view_enums_select.template.d.ts +2 -2
  210. package/dist/template/implementations/view_enums_select.template.d.ts.map +1 -1
  211. package/dist/template/implementations/view_enums_select.template.js +2 -2
  212. package/dist/template/implementations/view_form.template.d.ts +2 -2
  213. package/dist/template/implementations/view_form.template.d.ts.map +1 -1
  214. package/dist/template/implementations/view_form.template.js +4 -4
  215. package/dist/template/implementations/view_id_all_select.template.d.ts +2 -2
  216. package/dist/template/implementations/view_id_all_select.template.d.ts.map +1 -1
  217. package/dist/template/implementations/view_id_all_select.template.js +1 -1
  218. package/dist/template/implementations/view_id_async_select.template.d.ts +2 -2
  219. package/dist/template/implementations/view_id_async_select.template.d.ts.map +1 -1
  220. package/dist/template/implementations/view_id_async_select.template.js +1 -1
  221. package/dist/template/implementations/view_list.template.d.ts +2 -2
  222. package/dist/template/implementations/view_list.template.d.ts.map +1 -1
  223. package/dist/template/implementations/view_list.template.js +29 -19
  224. package/dist/template/implementations/view_list_columns.template.d.ts +3 -3
  225. package/dist/template/implementations/view_list_columns.template.d.ts.map +1 -1
  226. package/dist/template/implementations/view_list_columns.template.js +1 -1
  227. package/dist/template/implementations/view_search_input.template.d.ts +2 -2
  228. package/dist/template/implementations/view_search_input.template.d.ts.map +1 -1
  229. package/dist/template/implementations/view_search_input.template.js +1 -1
  230. package/dist/template/index.d.ts +4 -2
  231. package/dist/template/index.d.ts.map +1 -1
  232. package/dist/template/index.js +5 -3
  233. package/dist/template/template-manager.d.ts +56 -0
  234. package/dist/template/template-manager.d.ts.map +1 -0
  235. package/dist/template/template-manager.js +125 -0
  236. package/dist/template/template-types.d.ts +16 -0
  237. package/dist/template/template-types.d.ts.map +1 -0
  238. package/dist/template/template-types.js +7 -0
  239. package/dist/template/template.d.ts +12 -2
  240. package/dist/template/template.d.ts.map +1 -1
  241. package/dist/template/template.js +19 -6
  242. package/dist/template/zod-converter.d.ts +40 -7
  243. package/dist/template/zod-converter.d.ts.map +1 -1
  244. package/dist/template/zod-converter.js +386 -58
  245. package/dist/testing/_relation-graph.d.ts +1 -1
  246. package/dist/testing/_relation-graph.d.ts.map +1 -1
  247. package/dist/testing/_relation-graph.js +12 -3
  248. package/dist/testing/fixture-manager.d.ts +42 -11
  249. package/dist/testing/fixture-manager.d.ts.map +1 -1
  250. package/dist/testing/fixture-manager.js +338 -236
  251. package/dist/types/types.d.ts +709 -104
  252. package/dist/types/types.d.ts.map +1 -1
  253. package/dist/types/types.js +309 -52
  254. package/dist/typings/knex.d.js +2 -2
  255. package/dist/utils/async-utils.d.ts.map +1 -1
  256. package/dist/utils/async-utils.js +3 -3
  257. package/dist/utils/console-util.js +1 -1
  258. package/dist/utils/controller.d.ts +1 -0
  259. package/dist/utils/controller.d.ts.map +1 -1
  260. package/dist/utils/controller.js +4 -1
  261. package/dist/utils/esm-utils.d.ts +0 -6
  262. package/dist/utils/esm-utils.d.ts.map +1 -1
  263. package/dist/utils/esm-utils.js +2 -9
  264. package/dist/utils/formatter.d.ts +3 -0
  265. package/dist/utils/formatter.d.ts.map +1 -0
  266. package/dist/utils/formatter.js +110 -0
  267. package/dist/utils/fs-utils.d.ts +1 -1
  268. package/dist/utils/fs-utils.d.ts.map +1 -1
  269. package/dist/utils/fs-utils.js +1 -1
  270. package/dist/utils/lodash-able.d.ts.map +1 -1
  271. package/dist/utils/lodash-able.js +1 -1
  272. package/dist/utils/object-utils.d.ts +44 -0
  273. package/dist/utils/object-utils.d.ts.map +1 -0
  274. package/dist/utils/object-utils.js +191 -0
  275. package/dist/utils/path-utils.d.ts +1 -1
  276. package/dist/utils/path-utils.d.ts.map +1 -1
  277. package/dist/utils/path-utils.js +3 -3
  278. package/dist/utils/process-utils.js +1 -1
  279. package/dist/utils/sql-parser.d.ts +5 -1
  280. package/dist/utils/sql-parser.d.ts.map +1 -1
  281. package/dist/utils/sql-parser.js +14 -3
  282. package/dist/utils/type-utils.d.ts +23 -0
  283. package/dist/utils/type-utils.d.ts.map +1 -0
  284. package/dist/utils/type-utils.js +45 -0
  285. package/dist/utils/utils.d.ts +7 -1
  286. package/dist/utils/utils.d.ts.map +1 -1
  287. package/dist/utils/utils.js +44 -5
  288. package/dist/utils/zod-error.d.ts +1 -1
  289. package/dist/utils/zod-error.d.ts.map +1 -1
  290. package/dist/utils/zod-error.js +1 -1
  291. package/package.json +55 -30
  292. package/src/ai/agents/agent.ts +87 -0
  293. package/src/ai/agents/index.ts +2 -0
  294. package/src/ai/agents/types.ts +47 -0
  295. package/src/ai/index.ts +1 -0
  296. package/src/ai/providers/rtzr/api.ts +37 -0
  297. package/src/ai/providers/rtzr/error.ts +34 -0
  298. package/src/ai/providers/rtzr/index.ts +4 -0
  299. package/src/ai/providers/rtzr/model.ts +201 -0
  300. package/src/ai/providers/rtzr/options.ts +49 -0
  301. package/src/ai/providers/rtzr/provider.ts +91 -0
  302. package/src/ai/providers/rtzr/utils.ts +127 -0
  303. package/src/api/base-frame.ts +4 -2
  304. package/src/api/caster.ts +17 -23
  305. package/src/api/code-converters.ts +176 -533
  306. package/src/api/config.ts +39 -56
  307. package/src/api/context.ts +7 -18
  308. package/src/api/decorators.ts +175 -46
  309. package/src/api/index.ts +2 -2
  310. package/src/api/sonamu.ts +133 -124
  311. package/src/api/validator.ts +83 -0
  312. package/src/bin/build-config.ts +7 -1
  313. package/src/bin/cli.ts +192 -110
  314. package/src/bin/loader-register.ts +38 -0
  315. package/src/database/_batch_update.ts +46 -31
  316. package/src/database/base-model.ts +390 -182
  317. package/src/database/base-model.types.ts +155 -0
  318. package/src/database/code-generator.ts +13 -32
  319. package/src/database/db.ts +36 -50
  320. package/src/database/puri-subset.test-d.ts +471 -0
  321. package/src/database/puri-subset.types.ts +195 -0
  322. package/src/database/puri-wrapper.ts +58 -67
  323. package/src/database/puri.ts +182 -126
  324. package/src/database/puri.types.ts +64 -31
  325. package/src/database/transaction-context.ts +1 -1
  326. package/src/database/upsert-builder.ts +261 -132
  327. package/src/entity/entity-manager.ts +36 -28
  328. package/src/entity/entity.ts +330 -249
  329. package/src/exceptions/error-handler.ts +3 -3
  330. package/src/exceptions/so-exceptions.ts +11 -11
  331. package/src/file-storage/driver.ts +5 -5
  332. package/src/file-storage/file-storage.ts +2 -2
  333. package/src/index.ts +18 -12
  334. package/src/migration/code-generation.ts +185 -172
  335. package/src/migration/migration-set.ts +80 -293
  336. package/src/migration/migrator.ts +182 -425
  337. package/src/migration/mysql-schema-reader.ts.txt +272 -0
  338. package/src/migration/postgresql-schema-reader.ts +310 -0
  339. package/src/migration/types.ts +6 -39
  340. package/src/naite/messaging-types.ts +51 -0
  341. package/src/naite/naite-reporter.ts +128 -0
  342. package/src/naite/naite.ts +378 -33
  343. package/src/shared/web.shared.ts.txt +20 -24
  344. package/src/stream/sse.ts +5 -5
  345. package/src/syncer/api-parser.ts +52 -69
  346. package/src/syncer/checksum.ts +25 -37
  347. package/src/syncer/code-generator.ts +58 -62
  348. package/src/syncer/entity-operations.ts +12 -15
  349. package/src/syncer/file-patterns.ts +2 -2
  350. package/src/syncer/index.ts +4 -4
  351. package/src/syncer/module-loader.ts +28 -25
  352. package/src/syncer/syncer.ts +155 -162
  353. package/src/template/entity-converter.ts +18 -27
  354. package/src/template/helpers.ts +8 -11
  355. package/src/template/implementations/entity.template.ts +6 -6
  356. package/src/template/implementations/generated.template.ts +99 -99
  357. package/src/template/implementations/generated_http.template.ts +21 -54
  358. package/src/template/implementations/generated_sso.template.ts +78 -65
  359. package/src/template/implementations/init_types.template.ts +4 -6
  360. package/src/template/implementations/model.template.ts +47 -38
  361. package/src/template/implementations/model_test.template.ts +3 -3
  362. package/src/template/implementations/service.template.ts +56 -80
  363. package/src/template/implementations/view_enums_buttonset.template.ts +2 -2
  364. package/src/template/implementations/view_enums_dropdown.template.ts +4 -4
  365. package/src/template/implementations/view_enums_select.template.ts +3 -3
  366. package/src/template/implementations/view_form.template.ts +34 -75
  367. package/src/template/implementations/view_id_all_select.template.ts +2 -2
  368. package/src/template/implementations/view_id_async_select.template.ts +9 -23
  369. package/src/template/implementations/view_list.template.ts +54 -95
  370. package/src/template/implementations/view_list_columns.template.ts +4 -10
  371. package/src/template/implementations/view_search_input.template.ts +2 -2
  372. package/src/template/index.ts +4 -2
  373. package/src/template/template-manager.ts +166 -0
  374. package/src/template/template-types.ts +16 -0
  375. package/src/template/template.ts +29 -10
  376. package/src/template/zod-converter.ts +459 -101
  377. package/src/testing/_relation-graph.ts +18 -11
  378. package/src/testing/fixture-manager.ts +468 -362
  379. package/src/types/types.ts +516 -248
  380. package/src/typings/knex.d.ts +7 -9
  381. package/src/utils/async-utils.ts +8 -12
  382. package/src/utils/console-util.ts +1 -1
  383. package/src/utils/controller.ts +3 -0
  384. package/src/utils/esm-utils.ts +8 -18
  385. package/src/utils/formatter.ts +109 -0
  386. package/src/utils/fs-utils.ts +1 -1
  387. package/src/utils/lodash-able.ts +1 -4
  388. package/src/utils/object-utils.ts +217 -0
  389. package/src/utils/path-utils.ts +3 -6
  390. package/src/utils/process-utils.ts +1 -1
  391. package/src/utils/sql-parser.ts +23 -5
  392. package/src/utils/type-utils.ts +83 -0
  393. package/src/utils/utils.ts +58 -9
  394. package/src/utils/zod-error.ts +3 -3
  395. package/dist/bin/cli-wrapper.d.ts +0 -3
  396. package/dist/bin/cli-wrapper.d.ts.map +0 -1
  397. package/dist/bin/cli-wrapper.js +0 -72
  398. package/dist/database/knex-plugins/knex-on-duplicate-update.d.ts +0 -2
  399. package/dist/database/knex-plugins/knex-on-duplicate-update.d.ts.map +0 -1
  400. package/dist/database/knex-plugins/knex-on-duplicate-update.js +0 -39
  401. package/dist/entity/entity-utils.d.ts +0 -61
  402. package/dist/entity/entity-utils.d.ts.map +0 -1
  403. package/dist/entity/entity-utils.js +0 -210
  404. package/src/bin/cli-wrapper.ts +0 -82
  405. package/src/database/knex-plugins/knex-on-duplicate-update.ts +0 -45
  406. package/src/entity/entity-utils.ts +0 -291
@@ -0,0 +1,18 @@
1
+ {
2
+ "$schema": "https://swc.rs/schema.json",
3
+ "module": {
4
+ "type": "es6", // import/export 쓰는 esm으로 가겠습니다.
5
+ "resolveFully": true // esm이 요구하는 대로, 임포트 경로를 실제 파일 경로(확장자 포함)로 풀어줍니다.
6
+ },
7
+ "jsc": {
8
+ "parser": {
9
+ "syntax": "typescript",
10
+ "decorators": true
11
+ },
12
+ "baseUrl": ".", // 위 resolveFully 옵션이 작동하려면 이게 필요합니다. 이 파일이 있는 로컬에서 쉘에 직접 실행할 때에는 baseUrl에 이 파일이 위치한 경로 기준으로 절대경로가 resolve되어 들어갑니다. 그러나 만약 swc를 코드 상에서 import해서 쓰거나, 아니면 설정 파일(.swcrc) 대신 -C로 설정을 명령줄에 직접 넘기는 경우, baseUrl에 직접 올바른 절대경로를 넣어주어야 합니다.
13
+ "target": "esnext" // 타겟은 그냥 최신 문법으로.
14
+ },
15
+ "minify": false, // 어차피 용량 10%정도 차이밖에 안 남. minify를 끄면 혹시 혹시 정말 혹시나 나중에 소스맵 없이 코드를 봐야 하는 끔찍한 상황에 조금이나마 도움이 될 수 있지 않을까 해서 끔.
16
+ "sourceMaps": "inline", // 인라인 소스맵 생성 - yarn PnP 가상 경로 문제 해결
17
+ "inlineSourcesContent": true // 소스 코드를 소스맵에 포함
18
+ }
package/bin/cli.js ADDED
@@ -0,0 +1,24 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * 이 스크립트는 터미널 또는 기타 환경에서 pnpm sonamu 또는 sonamu 명령어를 호출하였을 때 실행되는 스크립트입니다.
5
+ *
6
+ * sonamu 패키지 package.json의 bin 필드는 dist/bin/cli.js를 직접 가리키지 않습니다. 대신 이 스크립트를 가리킵니다.
7
+ * 이는 개발 환경(TypeScript + pnpm workspace + clone 받으면 dist가 없음)에서 발생할 수 있는 문제를 해결하기 위함입니다.
8
+ *
9
+ * pnpm은 패키지 설치 시점에 bin 필드가 가리키는 파일이 존재하기를 요구합니다.
10
+ * 가령 bin에 dist/bin/cli.js가 명시되어 있다면, sonamu를 install 하는 시점에 해당 파일을 pnpm이 찾아서 읽습니다.
11
+ * 그런데 install 시점에 sonamu의 src는 있어도 dist는 없는 상황이 발생할 수 있습니다(주로 새로 clone 받아서 작업할 때).
12
+ * 이 경우에는 pnpm이 install 시점에 해당 bin(=dist/bin/cli.js)을 처리하지 못 하여 sonamu 명령을 사용할 수 없는 상태가 됩니다.
13
+ * 이렇게 된다면 sonamu를 빌드한 후에 다시 install을 해야 하는 불편함이 발생합니다.
14
+ *
15
+ * 이를 해결하기 위해 dist 존재 유무와 무관하게 **항상** 존재하는 이 wrapper 스크립트를 추가하였습니다.
16
+ * pnpm이 실행하는 실제 스크립트는 이 스크립트이며, 이 스크립트는 dist/bin/cli.js를 동적으로 찾아서 실행(eval)해줍니다.
17
+ * 만약 sonamu가 아직 빌드되지 않은 상태에서 sonamu 명령을 사용하려 하면 아래와 같이 console.error를 출력하고 process.exit(1)을 호출합니다.
18
+ *
19
+ * 이 스크립트를 실행시킬 때 넘어온 인자와 환경변수 등은 모두 dist/bin/cli.js에 그대로 전달됩니다.
20
+ */
21
+ import('../dist/bin/cli.js').catch(() => {
22
+ console.error('Sonamu has no cli.js in dist/bin directory. It seems that you have not built the project yet. Please run: pnpm build');
23
+ process.exit(1);
24
+ });
@@ -0,0 +1,11 @@
1
+ import type { Agent, ToolSet } from "ai";
2
+ import type { AgentConfig, ToolDecoratorOptions } from "./types";
3
+ export declare class BaseAgentClass<TStore> {
4
+ private _als;
5
+ get store(): TStore | undefined;
6
+ protected get toolSet(): ToolSet;
7
+ get tools(): ToolSet;
8
+ use<TReturn>(config: AgentConfig, initialStatus: TStore, callback: (agent: Agent<never, ToolSet>) => Promise<TReturn>): Promise<TReturn>;
9
+ }
10
+ export declare function tools<INPUT, OUTPUT = unknown>(options: ToolDecoratorOptions<INPUT, OUTPUT>): (target: BaseAgentClass<unknown>, propertyKey: string, descriptor: PropertyDescriptor) => void;
11
+ //# sourceMappingURL=agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../src/ai/agents/agent.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAIzC,OAAO,KAAK,EAAE,WAAW,EAA4B,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAK3F,qBAAa,cAAc,CAAC,MAAM;IAChC,OAAO,CAAC,IAAI,CAAmC;IAE/C,IAAW,KAAK,uBAEf;IAGD,SAAS,KAAK,OAAO,IAgBT,OAAO,CAClB;IAED,IAAW,KAAK,IAAI,OAAO,CAE1B;IAEM,GAAG,CAAC,OAAO,EAChB,MAAM,EAAE,WAAW,EACnB,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC;CAS/D;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,EAAE,OAAO,EAAE,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,IAEjF,QAAQ,cAAc,CAAC,OAAO,CAAC,EAAE,aAAa,MAAM,EAAE,YAAY,kBAAkB,UA4B7F"}
@@ -0,0 +1,65 @@
1
+ import { tool } from "@ai-sdk/provider-utils";
2
+ import { ToolLoopAgent } from "ai";
3
+ import { AsyncLocalStorage } from "async_hooks";
4
+ import inflection from "inflection";
5
+ const toolDefinitions = [];
6
+ // TODO(Haze, 251205): 텍스트가 아닌 structured output일 경우에 대한 지원이 필요
7
+ export class BaseAgentClass {
8
+ _als = new AsyncLocalStorage();
9
+ get store() {
10
+ return this._als.getStore();
11
+ }
12
+ // NOTE: [schemaSymbol] 추론 불가로 인해 캐스팅
13
+ get toolSet() {
14
+ const targeted = toolDefinitions.filter((def)=>def.from === this.constructor.name);
15
+ return targeted.reduce((acc, def)=>{
16
+ acc[def.name] = tool({
17
+ description: def.description,
18
+ inputSchema: def.schema.input,
19
+ outputSchema: def.schema.output,
20
+ needsApproval: def.needsApproval ?? false,
21
+ toModelOutput: def.toModelOutput,
22
+ providerOptions: def.providerOptions,
23
+ execute: (input, options)=>{
24
+ const bound = def.method.bind(this);
25
+ return bound.length >= 2 ? bound(input, options) : bound(input);
26
+ }
27
+ });
28
+ return acc;
29
+ }, {});
30
+ }
31
+ get tools() {
32
+ return this.toolSet;
33
+ }
34
+ use(config, initialStatus, callback) {
35
+ const agent = new ToolLoopAgent({
36
+ ...config,
37
+ tools: this.tools
38
+ });
39
+ return this._als.run(initialStatus, ()=>callback(agent));
40
+ }
41
+ }
42
+ export function tools(options) {
43
+ const { name, description, schema, needsApproval, toModelOutput, providerOptions } = options;
44
+ return (target, propertyKey, descriptor)=>{
45
+ if (!(target instanceof BaseAgentClass)) {
46
+ throw new Error("Target must be a subclass of BaseAgentClass");
47
+ }
48
+ const method = descriptor.value;
49
+ const modelName = target.constructor.name.match(/(.+)Class$/)?.[1];
50
+ const methodName = propertyKey;
51
+ const defaultPath = modelName !== undefined ? `${inflection.camelize((modelName ?? "").replace(/Model$/, "").replace(/Frame$/, ""), true)}.${inflection.camelize(methodName, true)}` : inflection.camelize(methodName, true);
52
+ toolDefinitions.push({
53
+ name: name ?? defaultPath,
54
+ description,
55
+ schema,
56
+ needsApproval,
57
+ toModelOutput,
58
+ providerOptions,
59
+ method,
60
+ from: target.constructor.name
61
+ });
62
+ };
63
+ }
64
+
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9haS9hZ2VudHMvYWdlbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBUb29sLCBUb29sQ2FsbE9wdGlvbnMgfSBmcm9tIFwiQGFpLXNkay9wcm92aWRlci11dGlsc1wiO1xuaW1wb3J0IHsgdG9vbCB9IGZyb20gXCJAYWktc2RrL3Byb3ZpZGVyLXV0aWxzXCI7XG5pbXBvcnQgdHlwZSB7IEFnZW50LCBUb29sU2V0IH0gZnJvbSBcImFpXCI7XG5pbXBvcnQgeyBUb29sTG9vcEFnZW50IH0gZnJvbSBcImFpXCI7XG5pbXBvcnQgeyBBc3luY0xvY2FsU3RvcmFnZSB9IGZyb20gXCJhc3luY19ob29rc1wiO1xuaW1wb3J0IGluZmxlY3Rpb24gZnJvbSBcImluZmxlY3Rpb25cIjtcbmltcG9ydCB0eXBlIHsgQWdlbnRDb25maWcsIFJlZ2lzdGVyZWRUb29sRGVmaW5pdGlvbiwgVG9vbERlY29yYXRvck9wdGlvbnMgfSBmcm9tIFwiLi90eXBlc1wiO1xuXG5jb25zdCB0b29sRGVmaW5pdGlvbnM6IFJlZ2lzdGVyZWRUb29sRGVmaW5pdGlvbltdID0gW107XG5cbi8vIFRPRE8oSGF6ZSwgMjUxMjA1KTog7YWN7Iqk7Yq46rCAIOyVhOuLjCBzdHJ1Y3R1cmVkIG91dHB1dOydvCDqsr3smrDsl5Ag64yA7ZWcIOyngOybkOydtCDtlYTsmpRcbmV4cG9ydCBjbGFzcyBCYXNlQWdlbnRDbGFzczxUU3RvcmU+IHtcbiAgcHJpdmF0ZSBfYWxzID0gbmV3IEFzeW5jTG9jYWxTdG9yYWdlPFRTdG9yZT4oKTtcblxuICBwdWJsaWMgZ2V0IHN0b3JlKCkge1xuICAgIHJldHVybiB0aGlzLl9hbHMuZ2V0U3RvcmUoKTtcbiAgfVxuXG4gIC8vIE5PVEU6IFtzY2hlbWFTeW1ib2xdIOy2lOuhoCDrtojqsIDroZwg7J247ZW0IOy6kOyKpO2MhVxuICBwcm90ZWN0ZWQgZ2V0IHRvb2xTZXQoKSB7XG4gICAgY29uc3QgdGFyZ2V0ZWQgPSB0b29sRGVmaW5pdGlvbnMuZmlsdGVyKChkZWYpID0+IGRlZi5mcm9tID09PSB0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuICAgIHJldHVybiB0YXJnZXRlZC5yZWR1Y2U8UmVjb3JkPHN0cmluZywgVG9vbD4+KChhY2MsIGRlZikgPT4ge1xuICAgICAgYWNjW2RlZi5uYW1lXSA9IHRvb2woe1xuICAgICAgICBkZXNjcmlwdGlvbjogZGVmLmRlc2NyaXB0aW9uLFxuICAgICAgICBpbnB1dFNjaGVtYTogZGVmLnNjaGVtYS5pbnB1dCxcbiAgICAgICAgb3V0cHV0U2NoZW1hOiBkZWYuc2NoZW1hLm91dHB1dCxcbiAgICAgICAgbmVlZHNBcHByb3ZhbDogZGVmLm5lZWRzQXBwcm92YWwgPz8gZmFsc2UsXG4gICAgICAgIHRvTW9kZWxPdXRwdXQ6IGRlZi50b01vZGVsT3V0cHV0LFxuICAgICAgICBwcm92aWRlck9wdGlvbnM6IGRlZi5wcm92aWRlck9wdGlvbnMsXG4gICAgICAgIGV4ZWN1dGU6IChpbnB1dDogdW5rbm93biwgb3B0aW9uczogVG9vbENhbGxPcHRpb25zKSA9PiB7XG4gICAgICAgICAgY29uc3QgYm91bmQgPSBkZWYubWV0aG9kLmJpbmQodGhpcyk7XG4gICAgICAgICAgcmV0dXJuIGJvdW5kLmxlbmd0aCA+PSAyID8gYm91bmQoaW5wdXQsIG9wdGlvbnMpIDogYm91bmQoaW5wdXQpO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIHt9KSBhcyBUb29sU2V0O1xuICB9XG5cbiAgcHVibGljIGdldCB0b29scygpOiBUb29sU2V0IHtcbiAgICByZXR1cm4gdGhpcy50b29sU2V0O1xuICB9XG5cbiAgcHVibGljIHVzZTxUUmV0dXJuPihcbiAgICBjb25maWc6IEFnZW50Q29uZmlnLFxuICAgIGluaXRpYWxTdGF0dXM6IFRTdG9yZSxcbiAgICBjYWxsYmFjazogKGFnZW50OiBBZ2VudDxuZXZlciwgVG9vbFNldD4pID0+IFByb21pc2U8VFJldHVybj4sXG4gICkge1xuICAgIGNvbnN0IGFnZW50ID0gbmV3IFRvb2xMb29wQWdlbnQoe1xuICAgICAgLi4uY29uZmlnLFxuICAgICAgdG9vbHM6IHRoaXMudG9vbHMsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcy5fYWxzLnJ1bihpbml0aWFsU3RhdHVzLCAoKSA9PiBjYWxsYmFjayhhZ2VudCkpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b29sczxJTlBVVCwgT1VUUFVUID0gdW5rbm93bj4ob3B0aW9uczogVG9vbERlY29yYXRvck9wdGlvbnM8SU5QVVQsIE9VVFBVVD4pIHtcbiAgY29uc3QgeyBuYW1lLCBkZXNjcmlwdGlvbiwgc2NoZW1hLCBuZWVkc0FwcHJvdmFsLCB0b01vZGVsT3V0cHV0LCBwcm92aWRlck9wdGlvbnMgfSA9IG9wdGlvbnM7XG4gIHJldHVybiAodGFyZ2V0OiBCYXNlQWdlbnRDbGFzczx1bmtub3duPiwgcHJvcGVydHlLZXk6IHN0cmluZywgZGVzY3JpcHRvcjogUHJvcGVydHlEZXNjcmlwdG9yKSA9PiB7XG4gICAgaWYgKCEodGFyZ2V0IGluc3RhbmNlb2YgQmFzZUFnZW50Q2xhc3MpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUYXJnZXQgbXVzdCBiZSBhIHN1YmNsYXNzIG9mIEJhc2VBZ2VudENsYXNzXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IG1ldGhvZCA9IGRlc2NyaXB0b3IudmFsdWU7XG4gICAgY29uc3QgbW9kZWxOYW1lID0gdGFyZ2V0LmNvbnN0cnVjdG9yLm5hbWUubWF0Y2goLyguKylDbGFzcyQvKT8uWzFdO1xuICAgIGNvbnN0IG1ldGhvZE5hbWUgPSBwcm9wZXJ0eUtleTtcblxuICAgIGNvbnN0IGRlZmF1bHRQYXRoID1cbiAgICAgIG1vZGVsTmFtZSAhPT0gdW5kZWZpbmVkXG4gICAgICAgID8gYCR7aW5mbGVjdGlvbi5jYW1lbGl6ZShcbiAgICAgICAgICAgIChtb2RlbE5hbWUgPz8gXCJcIikucmVwbGFjZSgvTW9kZWwkLywgXCJcIikucmVwbGFjZSgvRnJhbWUkLywgXCJcIiksXG4gICAgICAgICAgICB0cnVlLFxuICAgICAgICAgICl9LiR7aW5mbGVjdGlvbi5jYW1lbGl6ZShtZXRob2ROYW1lLCB0cnVlKX1gXG4gICAgICAgIDogaW5mbGVjdGlvbi5jYW1lbGl6ZShtZXRob2ROYW1lLCB0cnVlKTtcblxuICAgIHRvb2xEZWZpbml0aW9ucy5wdXNoKHtcbiAgICAgIG5hbWU6IG5hbWUgPz8gZGVmYXVsdFBhdGgsXG4gICAgICBkZXNjcmlwdGlvbixcbiAgICAgIHNjaGVtYSxcbiAgICAgIG5lZWRzQXBwcm92YWwsXG4gICAgICB0b01vZGVsT3V0cHV0LFxuICAgICAgcHJvdmlkZXJPcHRpb25zLFxuICAgICAgbWV0aG9kLFxuICAgICAgZnJvbTogdGFyZ2V0LmNvbnN0cnVjdG9yLm5hbWUsXG4gICAgfSk7XG4gIH07XG59XG4iXSwibmFtZXMiOlsidG9vbCIsIlRvb2xMb29wQWdlbnQiLCJBc3luY0xvY2FsU3RvcmFnZSIsImluZmxlY3Rpb24iLCJ0b29sRGVmaW5pdGlvbnMiLCJCYXNlQWdlbnRDbGFzcyIsIl9hbHMiLCJzdG9yZSIsImdldFN0b3JlIiwidG9vbFNldCIsInRhcmdldGVkIiwiZmlsdGVyIiwiZGVmIiwiZnJvbSIsIm5hbWUiLCJyZWR1Y2UiLCJhY2MiLCJkZXNjcmlwdGlvbiIsImlucHV0U2NoZW1hIiwic2NoZW1hIiwiaW5wdXQiLCJvdXRwdXRTY2hlbWEiLCJvdXRwdXQiLCJuZWVkc0FwcHJvdmFsIiwidG9Nb2RlbE91dHB1dCIsInByb3ZpZGVyT3B0aW9ucyIsImV4ZWN1dGUiLCJvcHRpb25zIiwiYm91bmQiLCJtZXRob2QiLCJiaW5kIiwibGVuZ3RoIiwidG9vbHMiLCJ1c2UiLCJjb25maWciLCJpbml0aWFsU3RhdHVzIiwiY2FsbGJhY2siLCJhZ2VudCIsInJ1biIsInRhcmdldCIsInByb3BlcnR5S2V5IiwiZGVzY3JpcHRvciIsIkVycm9yIiwidmFsdWUiLCJtb2RlbE5hbWUiLCJtYXRjaCIsIm1ldGhvZE5h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
@@ -0,0 +1,3 @@
1
+ export * from "./agent";
2
+ export * from "./types";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ai/agents/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from "./agent.js";
2
+ export * from "./types.js";
3
+
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9haS9hZ2VudHMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vYWdlbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3R5cGVzXCI7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxhQUFVO0FBQ3hCLGNBQWMsYUFBVSJ9
@@ -0,0 +1,43 @@
1
+ import type { ProviderOptions, Schema, Tool } from "@ai-sdk/provider-utils";
2
+ import type { LanguageModel, StopCondition, ToolSet } from "ai";
3
+ export type ToolChoiceLimited = "auto" | "none" | "required";
4
+ export interface ToolDecoratorSchema<INPUT, OUTPUT = unknown> {
5
+ input: Schema<INPUT>;
6
+ output?: Schema<OUTPUT>;
7
+ }
8
+ export interface ToolDecoratorOptions<INPUT, OUTPUT = unknown> {
9
+ name?: string;
10
+ description?: string;
11
+ schema: ToolDecoratorSchema<INPUT, OUTPUT>;
12
+ needsApproval?: Tool<INPUT, OUTPUT>["needsApproval"];
13
+ toModelOutput?: Tool<INPUT, OUTPUT>["toModelOutput"];
14
+ providerOptions?: ProviderOptions;
15
+ }
16
+ export type RegisteredToolDefinition = {
17
+ name: string;
18
+ description?: string;
19
+ schema: ToolDecoratorSchema<unknown, unknown>;
20
+ needsApproval?: Tool["needsApproval"];
21
+ toModelOutput?: Tool["toModelOutput"];
22
+ providerOptions?: ProviderOptions;
23
+ method: (...args: unknown[]) => unknown;
24
+ from: string;
25
+ };
26
+ export interface AgentConfig {
27
+ model: LanguageModel;
28
+ instructions?: string;
29
+ toolChoice?: ToolChoiceLimited;
30
+ providerOptions?: ProviderOptions;
31
+ stopWhen?: StopCondition<ToolSet> | Array<StopCondition<ToolSet>>;
32
+ activeTools?: Array<string>;
33
+ maxOutputTokens?: number;
34
+ temperature?: number;
35
+ topP?: number;
36
+ topK?: number;
37
+ presencePenalty?: number;
38
+ frequencyPenalty?: number;
39
+ stopSequences?: string[];
40
+ seed?: number;
41
+ headers?: Record<string, string | undefined>;
42
+ }
43
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/ai/agents/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAEhE,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;AAE7D,MAAM,WAAW,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAC1D,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;CACzB;AAED,MAAM,WAAW,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAC3D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC3C,aAAa,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC;IACrD,aAAa,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC;IACrD,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC9C,aAAa,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IACtC,aAAa,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IACtC,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;IACxC,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,aAAa,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;IAClE,WAAW,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;CAC9C"}
@@ -0,0 +1,3 @@
1
+ export { };
2
+
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9haS9hZ2VudHMvdHlwZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQcm92aWRlck9wdGlvbnMsIFNjaGVtYSwgVG9vbCB9IGZyb20gXCJAYWktc2RrL3Byb3ZpZGVyLXV0aWxzXCI7XG5pbXBvcnQgdHlwZSB7IExhbmd1YWdlTW9kZWwsIFN0b3BDb25kaXRpb24sIFRvb2xTZXQgfSBmcm9tIFwiYWlcIjtcblxuZXhwb3J0IHR5cGUgVG9vbENob2ljZUxpbWl0ZWQgPSBcImF1dG9cIiB8IFwibm9uZVwiIHwgXCJyZXF1aXJlZFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRvb2xEZWNvcmF0b3JTY2hlbWE8SU5QVVQsIE9VVFBVVCA9IHVua25vd24+IHtcbiAgaW5wdXQ6IFNjaGVtYTxJTlBVVD47XG4gIG91dHB1dD86IFNjaGVtYTxPVVRQVVQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRvb2xEZWNvcmF0b3JPcHRpb25zPElOUFVULCBPVVRQVVQgPSB1bmtub3duPiB7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBzY2hlbWE6IFRvb2xEZWNvcmF0b3JTY2hlbWE8SU5QVVQsIE9VVFBVVD47XG4gIG5lZWRzQXBwcm92YWw/OiBUb29sPElOUFVULCBPVVRQVVQ+W1wibmVlZHNBcHByb3ZhbFwiXTtcbiAgdG9Nb2RlbE91dHB1dD86IFRvb2w8SU5QVVQsIE9VVFBVVD5bXCJ0b01vZGVsT3V0cHV0XCJdO1xuICBwcm92aWRlck9wdGlvbnM/OiBQcm92aWRlck9wdGlvbnM7XG59XG5cbmV4cG9ydCB0eXBlIFJlZ2lzdGVyZWRUb29sRGVmaW5pdGlvbiA9IHtcbiAgbmFtZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgc2NoZW1hOiBUb29sRGVjb3JhdG9yU2NoZW1hPHVua25vd24sIHVua25vd24+O1xuICBuZWVkc0FwcHJvdmFsPzogVG9vbFtcIm5lZWRzQXBwcm92YWxcIl07XG4gIHRvTW9kZWxPdXRwdXQ/OiBUb29sW1widG9Nb2RlbE91dHB1dFwiXTtcbiAgcHJvdmlkZXJPcHRpb25zPzogUHJvdmlkZXJPcHRpb25zO1xuICBtZXRob2Q6ICguLi5hcmdzOiB1bmtub3duW10pID0+IHVua25vd247XG4gIGZyb206IHN0cmluZztcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWdlbnRDb25maWcge1xuICBtb2RlbDogTGFuZ3VhZ2VNb2RlbDtcbiAgaW5zdHJ1Y3Rpb25zPzogc3RyaW5nO1xuICB0b29sQ2hvaWNlPzogVG9vbENob2ljZUxpbWl0ZWQ7XG4gIHByb3ZpZGVyT3B0aW9ucz86IFByb3ZpZGVyT3B0aW9ucztcbiAgc3RvcFdoZW4/OiBTdG9wQ29uZGl0aW9uPFRvb2xTZXQ+IHwgQXJyYXk8U3RvcENvbmRpdGlvbjxUb29sU2V0Pj47XG4gIGFjdGl2ZVRvb2xzPzogQXJyYXk8c3RyaW5nPjtcbiAgbWF4T3V0cHV0VG9rZW5zPzogbnVtYmVyO1xuICB0ZW1wZXJhdHVyZT86IG51bWJlcjtcbiAgdG9wUD86IG51bWJlcjtcbiAgdG9wSz86IG51bWJlcjtcbiAgcHJlc2VuY2VQZW5hbHR5PzogbnVtYmVyO1xuICBmcmVxdWVuY3lQZW5hbHR5PzogbnVtYmVyO1xuICBzdG9wU2VxdWVuY2VzPzogc3RyaW5nW107XG4gIHNlZWQ/OiBudW1iZXI7XG4gIGhlYWRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWQ+O1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThCQSxXQWdCQyJ9
@@ -0,0 +1,2 @@
1
+ export * from "./agents";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./agents/index.js";
2
+
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9haS9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9hZ2VudHNcIjtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9CQUFXIn0=
@@ -0,0 +1,22 @@
1
+ import { z } from "zod";
2
+ export declare const rtzrAuthResponseSchema: z.ZodObject<{
3
+ access_token: z.ZodString;
4
+ expire_at: z.ZodNumber;
5
+ }, z.core.$strip>;
6
+ export declare const rtzrTranscriptionResponseSchema: import("@ai-sdk/provider-utils").LazySchema<{
7
+ id: string;
8
+ }>;
9
+ export declare const rtzrTranscriptionResultResponseSchema: import("@ai-sdk/provider-utils").LazySchema<{
10
+ id: string;
11
+ status: "transcribing" | "completed" | "failed";
12
+ results?: {
13
+ utterances: {
14
+ start_at: number;
15
+ duration: number;
16
+ msg: string;
17
+ spk: number;
18
+ lang?: string | undefined;
19
+ }[];
20
+ } | null | undefined;
21
+ }>;
22
+ //# sourceMappingURL=api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../src/ai/providers/rtzr/api.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,sBAAsB;;;iBAGjC,CAAC;AAEH,eAAO,MAAM,+BAA+B;;EAM3C,CAAC;AAEF,eAAO,MAAM,qCAAqC;;;;;;;;;;;;EAoBjD,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { lazySchema, zodSchema } from "@ai-sdk/provider-utils";
2
+ import { z } from "zod";
3
+ export const rtzrAuthResponseSchema = z.object({
4
+ access_token: z.string(),
5
+ expire_at: z.number()
6
+ });
7
+ export const rtzrTranscriptionResponseSchema = lazySchema(()=>zodSchema(z.object({
8
+ id: z.string()
9
+ })));
10
+ export const rtzrTranscriptionResultResponseSchema = lazySchema(()=>zodSchema(z.object({
11
+ id: z.string(),
12
+ status: z.enum([
13
+ "transcribing",
14
+ "completed",
15
+ "failed"
16
+ ]),
17
+ results: z.object({
18
+ utterances: z.array(z.object({
19
+ start_at: z.number(),
20
+ duration: z.number(),
21
+ msg: z.string(),
22
+ spk: z.number(),
23
+ lang: z.string().optional()
24
+ }))
25
+ }).nullish()
26
+ })));
27
+
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9haS9wcm92aWRlcnMvcnR6ci9hcGkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbGF6eVNjaGVtYSwgem9kU2NoZW1hIH0gZnJvbSBcIkBhaS1zZGsvcHJvdmlkZXItdXRpbHNcIjtcbmltcG9ydCB7IHogfSBmcm9tIFwiem9kXCI7XG5cbmV4cG9ydCBjb25zdCBydHpyQXV0aFJlc3BvbnNlU2NoZW1hID0gei5vYmplY3Qoe1xuICBhY2Nlc3NfdG9rZW46IHouc3RyaW5nKCksXG4gIGV4cGlyZV9hdDogei5udW1iZXIoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgcnR6clRyYW5zY3JpcHRpb25SZXNwb25zZVNjaGVtYSA9IGxhenlTY2hlbWEoKCkgPT5cbiAgem9kU2NoZW1hKFxuICAgIHoub2JqZWN0KHtcbiAgICAgIGlkOiB6LnN0cmluZygpLFxuICAgIH0pLFxuICApLFxuKTtcblxuZXhwb3J0IGNvbnN0IHJ0enJUcmFuc2NyaXB0aW9uUmVzdWx0UmVzcG9uc2VTY2hlbWEgPSBsYXp5U2NoZW1hKCgpID0+XG4gIHpvZFNjaGVtYShcbiAgICB6Lm9iamVjdCh7XG4gICAgICBpZDogei5zdHJpbmcoKSxcbiAgICAgIHN0YXR1czogei5lbnVtKFtcInRyYW5zY3JpYmluZ1wiLCBcImNvbXBsZXRlZFwiLCBcImZhaWxlZFwiXSksXG4gICAgICByZXN1bHRzOiB6XG4gICAgICAgIC5vYmplY3Qoe1xuICAgICAgICAgIHV0dGVyYW5jZXM6IHouYXJyYXkoXG4gICAgICAgICAgICB6Lm9iamVjdCh7XG4gICAgICAgICAgICAgIHN0YXJ0X2F0OiB6Lm51bWJlcigpLFxuICAgICAgICAgICAgICBkdXJhdGlvbjogei5udW1iZXIoKSxcbiAgICAgICAgICAgICAgbXNnOiB6LnN0cmluZygpLFxuICAgICAgICAgICAgICBzcGs6IHoubnVtYmVyKCksXG4gICAgICAgICAgICAgIGxhbmc6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICksXG4gICAgICAgIH0pXG4gICAgICAgIC5udWxsaXNoKCksXG4gICAgfSksXG4gICksXG4pO1xuIl0sIm5hbWVzIjpbImxhenlTY2hlbWEiLCJ6b2RTY2hlbWEiLCJ6IiwicnR6ckF1dGhSZXNwb25zZVNjaGVtYSIsIm9iamVjdCIsImFjY2Vzc190b2tlbiIsInN0cmluZyIsImV4cGlyZV9hdCIsIm51bWJlciIsInJ0enJUcmFuc2NyaXB0aW9uUmVzcG9uc2VTY2hlbWEiLCJpZCIsInJ0enJUcmFuc2NyaXB0aW9uUmVzdWx0UmVzcG9uc2VTY2hlbWEiLCJzdGF0dXMiLCJlbnVtIiwicmVzdWx0cyIsInV0dGVyYW5jZXMiLCJhcnJheSIsInN0YXJ0X2F0IiwiZHVyYXRpb24iLCJtc2ciLCJzcGsiLCJsYW5nIiwib3B0aW9uYWwiLCJudWxsaXNoIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxVQUFVLEVBQUVDLFNBQVMsUUFBUSx5QkFBeUI7QUFDL0QsU0FBU0MsQ0FBQyxRQUFRLE1BQU07QUFFeEIsT0FBTyxNQUFNQyx5QkFBeUJELEVBQUVFLE1BQU0sQ0FBQztJQUM3Q0MsY0FBY0gsRUFBRUksTUFBTTtJQUN0QkMsV0FBV0wsRUFBRU0sTUFBTTtBQUNyQixHQUFHO0FBRUgsT0FBTyxNQUFNQyxrQ0FBa0NULFdBQVcsSUFDeERDLFVBQ0VDLEVBQUVFLE1BQU0sQ0FBQztRQUNQTSxJQUFJUixFQUFFSSxNQUFNO0lBQ2QsS0FFRjtBQUVGLE9BQU8sTUFBTUssd0NBQXdDWCxXQUFXLElBQzlEQyxVQUNFQyxFQUFFRSxNQUFNLENBQUM7UUFDUE0sSUFBSVIsRUFBRUksTUFBTTtRQUNaTSxRQUFRVixFQUFFVyxJQUFJLENBQUM7WUFBQztZQUFnQjtZQUFhO1NBQVM7UUFDdERDLFNBQVNaLEVBQ05FLE1BQU0sQ0FBQztZQUNOVyxZQUFZYixFQUFFYyxLQUFLLENBQ2pCZCxFQUFFRSxNQUFNLENBQUM7Z0JBQ1BhLFVBQVVmLEVBQUVNLE1BQU07Z0JBQ2xCVSxVQUFVaEIsRUFBRU0sTUFBTTtnQkFDbEJXLEtBQUtqQixFQUFFSSxNQUFNO2dCQUNiYyxLQUFLbEIsRUFBRU0sTUFBTTtnQkFDYmEsTUFBTW5CLEVBQUVJLE1BQU0sR0FBR2dCLFFBQVE7WUFDM0I7UUFFSixHQUNDQyxPQUFPO0lBQ1osS0FFRiJ9
@@ -0,0 +1,18 @@
1
+ import { AISDKError } from "@ai-sdk/provider";
2
+ import { z } from "zod";
3
+ export declare const rtzrErrorDataSchema: z.ZodObject<{
4
+ error: z.ZodObject<{
5
+ msg: z.ZodString;
6
+ type: z.ZodOptional<z.ZodNullable<z.ZodString>>;
7
+ param: z.ZodOptional<z.ZodNullable<z.ZodAny>>;
8
+ code: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
9
+ }, z.core.$strip>;
10
+ }, z.core.$strip>;
11
+ export type RtzrErrorData = z.infer<typeof rtzrErrorDataSchema>;
12
+ export declare const rtzrFailedResponseHandler: import("@ai-sdk/provider-utils").ResponseHandler<import("@ai-sdk/provider").APICallError>;
13
+ export declare class RtzrClientError extends AISDKError {
14
+ constructor(message: string, options?: {
15
+ cause?: Error;
16
+ });
17
+ }
18
+ //# sourceMappingURL=error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../../../src/ai/providers/rtzr/error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,mBAAmB;;;;;;;iBAO9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,yBAAyB,2FAGpC,CAAC;AAEH,qBAAa,eAAgB,SAAQ,UAAU;gBAE3C,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,KAAK,CAAC;KACf;CAQJ"}
@@ -0,0 +1,29 @@
1
+ import { AISDKError } from "@ai-sdk/provider";
2
+ import { createJsonErrorResponseHandler } from "@ai-sdk/provider-utils";
3
+ import { z } from "zod";
4
+ export const rtzrErrorDataSchema = z.object({
5
+ error: z.object({
6
+ msg: z.string(),
7
+ type: z.string().nullish(),
8
+ param: z.any().nullish(),
9
+ code: z.union([
10
+ z.string(),
11
+ z.number()
12
+ ]).nullish()
13
+ })
14
+ });
15
+ export const rtzrFailedResponseHandler = createJsonErrorResponseHandler({
16
+ errorSchema: rtzrErrorDataSchema,
17
+ errorToMessage: (data)=>data.error.msg
18
+ });
19
+ export class RtzrClientError extends AISDKError {
20
+ constructor(message, options){
21
+ super({
22
+ name: "RtzrClientError",
23
+ message,
24
+ cause: options?.cause
25
+ });
26
+ }
27
+ }
28
+
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9haS9wcm92aWRlcnMvcnR6ci9lcnJvci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBSVNES0Vycm9yIH0gZnJvbSBcIkBhaS1zZGsvcHJvdmlkZXJcIjtcbmltcG9ydCB7IGNyZWF0ZUpzb25FcnJvclJlc3BvbnNlSGFuZGxlciB9IGZyb20gXCJAYWktc2RrL3Byb3ZpZGVyLXV0aWxzXCI7XG5pbXBvcnQgeyB6IH0gZnJvbSBcInpvZFwiO1xuXG5leHBvcnQgY29uc3QgcnR6ckVycm9yRGF0YVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgZXJyb3I6IHoub2JqZWN0KHtcbiAgICBtc2c6IHouc3RyaW5nKCksXG4gICAgdHlwZTogei5zdHJpbmcoKS5udWxsaXNoKCksXG4gICAgcGFyYW06IHouYW55KCkubnVsbGlzaCgpLFxuICAgIGNvZGU6IHoudW5pb24oW3ouc3RyaW5nKCksIHoubnVtYmVyKCldKS5udWxsaXNoKCksXG4gIH0pLFxufSk7XG5cbmV4cG9ydCB0eXBlIFJ0enJFcnJvckRhdGEgPSB6LmluZmVyPHR5cGVvZiBydHpyRXJyb3JEYXRhU2NoZW1hPjtcblxuZXhwb3J0IGNvbnN0IHJ0enJGYWlsZWRSZXNwb25zZUhhbmRsZXIgPSBjcmVhdGVKc29uRXJyb3JSZXNwb25zZUhhbmRsZXIoe1xuICBlcnJvclNjaGVtYTogcnR6ckVycm9yRGF0YVNjaGVtYSxcbiAgZXJyb3JUb01lc3NhZ2U6IChkYXRhKSA9PiBkYXRhLmVycm9yLm1zZyxcbn0pO1xuXG5leHBvcnQgY2xhc3MgUnR6ckNsaWVudEVycm9yIGV4dGVuZHMgQUlTREtFcnJvciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICBvcHRpb25zPzoge1xuICAgICAgY2F1c2U/OiBFcnJvcjtcbiAgICB9LFxuICApIHtcbiAgICBzdXBlcih7XG4gICAgICBuYW1lOiBcIlJ0enJDbGllbnRFcnJvclwiLFxuICAgICAgbWVzc2FnZSxcbiAgICAgIGNhdXNlOiBvcHRpb25zPy5jYXVzZSxcbiAgICB9KTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkFJU0RLRXJyb3IiLCJjcmVhdGVKc29uRXJyb3JSZXNwb25zZUhhbmRsZXIiLCJ6IiwicnR6ckVycm9yRGF0YVNjaGVtYSIsIm9iamVjdCIsImVycm9yIiwibXNnIiwic3RyaW5nIiwidHlwZSIsIm51bGxpc2giLCJwYXJhbSIsImFueSIsImNvZGUiLCJ1bmlvbiIsIm51bWJlciIsInJ0enJGYWlsZWRSZXNwb25zZUhhbmRsZXIiLCJlcnJvclNjaGVtYSIsImVycm9yVG9NZXNzYWdlIiwiZGF0YSIsIlJ0enJDbGllbnRFcnJvciIsIm1lc3NhZ2UiLCJvcHRpb25zIiwibmFtZSIsImNhdXNlIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxVQUFVLFFBQVEsbUJBQW1CO0FBQzlDLFNBQVNDLDhCQUE4QixRQUFRLHlCQUF5QjtBQUN4RSxTQUFTQyxDQUFDLFFBQVEsTUFBTTtBQUV4QixPQUFPLE1BQU1DLHNCQUFzQkQsRUFBRUUsTUFBTSxDQUFDO0lBQzFDQyxPQUFPSCxFQUFFRSxNQUFNLENBQUM7UUFDZEUsS0FBS0osRUFBRUssTUFBTTtRQUNiQyxNQUFNTixFQUFFSyxNQUFNLEdBQUdFLE9BQU87UUFDeEJDLE9BQU9SLEVBQUVTLEdBQUcsR0FBR0YsT0FBTztRQUN0QkcsTUFBTVYsRUFBRVcsS0FBSyxDQUFDO1lBQUNYLEVBQUVLLE1BQU07WUFBSUwsRUFBRVksTUFBTTtTQUFHLEVBQUVMLE9BQU87SUFDakQ7QUFDRixHQUFHO0FBSUgsT0FBTyxNQUFNTSw0QkFBNEJkLCtCQUErQjtJQUN0RWUsYUFBYWI7SUFDYmMsZ0JBQWdCLENBQUNDLE9BQVNBLEtBQUtiLEtBQUssQ0FBQ0MsR0FBRztBQUMxQyxHQUFHO0FBRUgsT0FBTyxNQUFNYSx3QkFBd0JuQjtJQUNuQyxZQUNFb0IsT0FBZSxFQUNmQyxPQUVDLENBQ0Q7UUFDQSxLQUFLLENBQUM7WUFDSkMsTUFBTTtZQUNORjtZQUNBRyxPQUFPRixTQUFTRTtRQUNsQjtJQUNGO0FBQ0YifQ==
@@ -0,0 +1,5 @@
1
+ export * from "./error";
2
+ export * from "./model";
3
+ export * from "./options";
4
+ export * from "./provider";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ai/providers/rtzr/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,6 @@
1
+ export * from "./error.js";
2
+ export * from "./model.js";
3
+ export * from "./options.js";
4
+ export * from "./provider.js";
5
+
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9haS9wcm92aWRlcnMvcnR6ci9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9lcnJvclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL29wdGlvbnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3Byb3ZpZGVyXCI7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxhQUFVO0FBQ3hCLGNBQWMsYUFBVTtBQUN4QixjQUFjLGVBQVk7QUFDMUIsY0FBYyxnQkFBYSJ9
@@ -0,0 +1,52 @@
1
+ import type { SharedV3Warning, TranscriptionModelV3, TranscriptionModelV3CallOptions } from "@ai-sdk/provider";
2
+ import { type FetchFunction } from "@ai-sdk/provider-utils";
3
+ import { type RtzrTranscriptionModelId, type RtzrTranscriptionProviderOptions } from "./options";
4
+ export type RtzrTranscriptionCallOptions = Omit<TranscriptionModelV3CallOptions, "providerOptions"> & {
5
+ providerOptions?: {
6
+ rtzr?: RtzrTranscriptionProviderOptions;
7
+ };
8
+ };
9
+ interface RtzrTranscriptionModelConfig {
10
+ _internal?: {
11
+ currentDate?: () => Date;
12
+ };
13
+ provider: string;
14
+ auth: {
15
+ clientId: string;
16
+ clientSecret: string;
17
+ };
18
+ url: (options: {
19
+ path: string;
20
+ }) => string;
21
+ headers: () => Record<string, string | undefined>;
22
+ fetch?: FetchFunction;
23
+ generateId?: () => string;
24
+ }
25
+ export declare class RtzrTranscriptionModel implements TranscriptionModelV3 {
26
+ readonly modelId: RtzrTranscriptionModelId;
27
+ private readonly config;
28
+ readonly specificationVersion = "v3";
29
+ get provider(): string;
30
+ constructor(modelId: RtzrTranscriptionModelId, config: RtzrTranscriptionModelConfig);
31
+ private authorize;
32
+ private getArgs;
33
+ doGenerate(options: RtzrTranscriptionCallOptions): Promise<{
34
+ text: string;
35
+ segments: {
36
+ text: string;
37
+ startSecond: number;
38
+ endSecond: number;
39
+ }[];
40
+ language: string | undefined;
41
+ warnings: SharedV3Warning[];
42
+ durationInSeconds: number;
43
+ response: {
44
+ timestamp: Date;
45
+ modelId: RtzrTranscriptionModelId;
46
+ headers: Record<string, string> | undefined;
47
+ body: unknown;
48
+ };
49
+ }>;
50
+ }
51
+ export {};
52
+ //# sourceMappingURL=model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../../src/ai/providers/rtzr/model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,oBAAoB,EACpB,+BAA+B,EAChC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAIL,KAAK,aAAa,EAKnB,MAAM,wBAAwB,CAAC;AAQhC,OAAO,EACL,KAAK,wBAAwB,EAC7B,KAAK,gCAAgC,EAEtC,MAAM,WAAW,CAAC;AAEnB,MAAM,MAAM,4BAA4B,GAAG,IAAI,CAC7C,+BAA+B,EAC/B,iBAAiB,CAClB,GAAG;IACF,eAAe,CAAC,EAAE;QAChB,IAAI,CAAC,EAAE,gCAAgC,CAAC;KACzC,CAAC;CACH,CAAC;AAEF,UAAU,4BAA4B;IACpC,SAAS,CAAC,EAAE;QACV,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;KAC1B,CAAC;IACF,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE;QACJ,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,GAAG,EAAE,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,MAAM,CAAC;IAC3C,OAAO,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IAClD,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,MAAM,CAAC;CAC3B;AAED,qBAAa,sBAAuB,YAAW,oBAAoB;IAQ/D,QAAQ,CAAC,OAAO,EAAE,wBAAwB;IAC1C,OAAO,CAAC,QAAQ,CAAC,MAAM;IARzB,QAAQ,CAAC,oBAAoB,QAAQ;IAErC,IAAI,QAAQ,IAAI,MAAM,CAErB;gBAGU,OAAO,EAAE,wBAAwB,EACzB,MAAM,EAAE,4BAA4B;YAGzC,SAAS;YA+BT,OAAO;IA2Bf,UAAU,CAAC,OAAO,EAAE,4BAA4B;;;;;;;;;;;;;;;;;CA8EvD"}
@@ -0,0 +1,137 @@
1
+ import { combineHeaders, convertBase64ToUint8Array, createJsonResponseHandler, getFromApi, mediaTypeToExtension, parseProviderOptions, postFormDataToApi } from "@ai-sdk/provider-utils";
2
+ import { isEmpty } from "radashi";
3
+ import { rtzrAuthResponseSchema, rtzrTranscriptionResponseSchema, rtzrTranscriptionResultResponseSchema } from "./api.js";
4
+ import { RtzrClientError, rtzrFailedResponseHandler } from "./error.js";
5
+ import { rtzrTranscriptionProviderOptions } from "./options.js";
6
+ export class RtzrTranscriptionModel {
7
+ modelId;
8
+ config;
9
+ specificationVersion = "v3";
10
+ get provider() {
11
+ return this.config.provider;
12
+ }
13
+ constructor(modelId, config){
14
+ this.modelId = modelId;
15
+ this.config = config;
16
+ }
17
+ async authorize() {
18
+ const fetchApi = this.config.fetch ?? fetch;
19
+ const response = await fetchApi(this.config.url({
20
+ path: "/authenticate"
21
+ }), {
22
+ method: "POST",
23
+ headers: {
24
+ "Content-Type": "application/x-www-form-urlencoded"
25
+ },
26
+ body: new URLSearchParams({
27
+ client_id: this.config.auth.clientId,
28
+ client_secret: this.config.auth.clientSecret
29
+ })
30
+ });
31
+ if (!response.ok) {
32
+ throw new RtzrClientError(`Failed to authorize: ${response.status}`);
33
+ }
34
+ const data = await response.json();
35
+ const parsedData = rtzrAuthResponseSchema.safeParse(data);
36
+ if (!parsedData.success) {
37
+ throw new RtzrClientError(`Validation failed: ${parsedData.error.message}`);
38
+ }
39
+ return parsedData.data.access_token;
40
+ }
41
+ async getArgs({ audio, mediaType, providerOptions }) {
42
+ const warnings = [];
43
+ const rtzrOptions = await parseProviderOptions({
44
+ provider: "rtzr",
45
+ providerOptions,
46
+ schema: rtzrTranscriptionProviderOptions
47
+ });
48
+ const blob = audio instanceof Uint8Array ? new Blob([
49
+ new Uint8Array(audio)
50
+ ]) : new Blob([
51
+ convertBase64ToUint8Array(audio)
52
+ ]);
53
+ const formData = new FormData();
54
+ const fileExtension = mediaTypeToExtension(mediaType);
55
+ formData.append("file", new File([
56
+ blob
57
+ ], "audio", {
58
+ type: mediaType
59
+ }), `audio.${fileExtension}`);
60
+ const config = {
61
+ model_name: this.modelId,
62
+ ...rtzrOptions
63
+ };
64
+ formData.append("config", JSON.stringify(config));
65
+ return {
66
+ formData,
67
+ warnings
68
+ };
69
+ }
70
+ async doGenerate(options) {
71
+ const currentDate = this.config._internal?.currentDate?.() ?? new Date();
72
+ const accessToken = await this.authorize();
73
+ const headers = {
74
+ Authorization: `Bearer ${accessToken}`,
75
+ ...options.headers
76
+ };
77
+ const { formData, warnings } = await this.getArgs(options);
78
+ const { value: { id: transcriptionId }, responseHeaders } = await postFormDataToApi({
79
+ url: this.config.url({
80
+ path: "/transcribe"
81
+ }),
82
+ headers: combineHeaders(this.config.headers(), headers),
83
+ formData,
84
+ failedResponseHandler: rtzrFailedResponseHandler,
85
+ successfulResponseHandler: createJsonResponseHandler(rtzrTranscriptionResponseSchema),
86
+ abortSignal: options.abortSignal,
87
+ fetch: this.config.fetch
88
+ });
89
+ const { value: response, rawValue } = await (async ()=>{
90
+ // transcription이 끝날 떄까지 0.5초마다 체크.
91
+ // timeout을 따로 지정하지 않는 이유는 애초에 AbortSignal을 사용하고 있음.
92
+ while(true){
93
+ await new Promise((resolve)=>setTimeout(resolve, 500));
94
+ const data = await getFromApi({
95
+ url: this.config.url({
96
+ path: `/transcribe/${transcriptionId}`
97
+ }),
98
+ headers: combineHeaders(this.config.headers(), headers),
99
+ failedResponseHandler: rtzrFailedResponseHandler,
100
+ successfulResponseHandler: createJsonResponseHandler(rtzrTranscriptionResultResponseSchema),
101
+ abortSignal: options.abortSignal,
102
+ fetch: this.config.fetch
103
+ });
104
+ if (data.value.status !== "transcribing") {
105
+ return data;
106
+ }
107
+ }
108
+ })();
109
+ const segments = response.results?.utterances ?? [];
110
+ const languages = new Set(segments.map((item)=>item.lang).filter((item)=>!isEmpty(item)));
111
+ const language = (()=>{
112
+ if (languages.size > 1) {
113
+ return undefined;
114
+ }
115
+ return languages.values().next().value;
116
+ })();
117
+ return {
118
+ text: segments.map((item)=>item.msg).join("\n"),
119
+ segments: segments.map((segment)=>({
120
+ text: segment.msg,
121
+ startSecond: Math.trunc(segment.start_at / 1000),
122
+ endSecond: Math.trunc((segment.start_at + segment.duration) / 1000)
123
+ })),
124
+ language,
125
+ warnings,
126
+ durationInSeconds: segments.reduce((acc, segment)=>acc + segment.duration, 0) ?? undefined,
127
+ response: {
128
+ timestamp: currentDate,
129
+ modelId: this.modelId,
130
+ headers: responseHeaders,
131
+ body: rawValue
132
+ }
133
+ };
134
+ }
135
+ }
136
+
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9haS9wcm92aWRlcnMvcnR6ci9tb2RlbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG4gIFNoYXJlZFYzV2FybmluZyxcbiAgVHJhbnNjcmlwdGlvbk1vZGVsVjMsXG4gIFRyYW5zY3JpcHRpb25Nb2RlbFYzQ2FsbE9wdGlvbnMsXG59IGZyb20gXCJAYWktc2RrL3Byb3ZpZGVyXCI7XG5pbXBvcnQge1xuICBjb21iaW5lSGVhZGVycyxcbiAgY29udmVydEJhc2U2NFRvVWludDhBcnJheSxcbiAgY3JlYXRlSnNvblJlc3BvbnNlSGFuZGxlcixcbiAgdHlwZSBGZXRjaEZ1bmN0aW9uLFxuICBnZXRGcm9tQXBpLFxuICBtZWRpYVR5cGVUb0V4dGVuc2lvbixcbiAgcGFyc2VQcm92aWRlck9wdGlvbnMsXG4gIHBvc3RGb3JtRGF0YVRvQXBpLFxufSBmcm9tIFwiQGFpLXNkay9wcm92aWRlci11dGlsc1wiO1xuaW1wb3J0IHsgaXNFbXB0eSB9IGZyb20gXCJyYWRhc2hpXCI7XG5pbXBvcnQge1xuICBydHpyQXV0aFJlc3BvbnNlU2NoZW1hLFxuICBydHpyVHJhbnNjcmlwdGlvblJlc3BvbnNlU2NoZW1hLFxuICBydHpyVHJhbnNjcmlwdGlvblJlc3VsdFJlc3BvbnNlU2NoZW1hLFxufSBmcm9tIFwiLi9hcGlcIjtcbmltcG9ydCB7IFJ0enJDbGllbnRFcnJvciwgcnR6ckZhaWxlZFJlc3BvbnNlSGFuZGxlciB9IGZyb20gXCIuL2Vycm9yXCI7XG5pbXBvcnQge1xuICB0eXBlIFJ0enJUcmFuc2NyaXB0aW9uTW9kZWxJZCxcbiAgdHlwZSBSdHpyVHJhbnNjcmlwdGlvblByb3ZpZGVyT3B0aW9ucyxcbiAgcnR6clRyYW5zY3JpcHRpb25Qcm92aWRlck9wdGlvbnMsXG59IGZyb20gXCIuL29wdGlvbnNcIjtcblxuZXhwb3J0IHR5cGUgUnR6clRyYW5zY3JpcHRpb25DYWxsT3B0aW9ucyA9IE9taXQ8XG4gIFRyYW5zY3JpcHRpb25Nb2RlbFYzQ2FsbE9wdGlvbnMsXG4gIFwicHJvdmlkZXJPcHRpb25zXCJcbj4gJiB7XG4gIHByb3ZpZGVyT3B0aW9ucz86IHtcbiAgICBydHpyPzogUnR6clRyYW5zY3JpcHRpb25Qcm92aWRlck9wdGlvbnM7XG4gIH07XG59O1xuXG5pbnRlcmZhY2UgUnR6clRyYW5zY3JpcHRpb25Nb2RlbENvbmZpZyB7XG4gIF9pbnRlcm5hbD86IHtcbiAgICBjdXJyZW50RGF0ZT86ICgpID0+IERhdGU7XG4gIH07XG4gIHByb3ZpZGVyOiBzdHJpbmc7XG4gIGF1dGg6IHtcbiAgICBjbGllbnRJZDogc3RyaW5nO1xuICAgIGNsaWVudFNlY3JldDogc3RyaW5nO1xuICB9O1xuICB1cmw6IChvcHRpb25zOiB7IHBhdGg6IHN0cmluZyB9KSA9PiBzdHJpbmc7XG4gIGhlYWRlcnM6ICgpID0+IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IHVuZGVmaW5lZD47XG4gIGZldGNoPzogRmV0Y2hGdW5jdGlvbjtcbiAgZ2VuZXJhdGVJZD86ICgpID0+IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIFJ0enJUcmFuc2NyaXB0aW9uTW9kZWwgaW1wbGVtZW50cyBUcmFuc2NyaXB0aW9uTW9kZWxWMyB7XG4gIHJlYWRvbmx5IHNwZWNpZmljYXRpb25WZXJzaW9uID0gXCJ2M1wiO1xuXG4gIGdldCBwcm92aWRlcigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5wcm92aWRlcjtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHJlYWRvbmx5IG1vZGVsSWQ6IFJ0enJUcmFuc2NyaXB0aW9uTW9kZWxJZCxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZzogUnR6clRyYW5zY3JpcHRpb25Nb2RlbENvbmZpZyxcbiAgKSB7fVxuXG4gIHByaXZhdGUgYXN5bmMgYXV0aG9yaXplKCkge1xuICAgIGNvbnN0IGZldGNoQXBpID0gdGhpcy5jb25maWcuZmV0Y2ggPz8gZmV0Y2g7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaEFwaShcbiAgICAgIHRoaXMuY29uZmlnLnVybCh7XG4gICAgICAgIHBhdGg6IFwiL2F1dGhlbnRpY2F0ZVwiLFxuICAgICAgfSksXG4gICAgICB7XG4gICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFwiLFxuICAgICAgICB9LFxuICAgICAgICBib2R5OiBuZXcgVVJMU2VhcmNoUGFyYW1zKHtcbiAgICAgICAgICBjbGllbnRfaWQ6IHRoaXMuY29uZmlnLmF1dGguY2xpZW50SWQsXG4gICAgICAgICAgY2xpZW50X3NlY3JldDogdGhpcy5jb25maWcuYXV0aC5jbGllbnRTZWNyZXQsXG4gICAgICAgIH0pLFxuICAgICAgfSxcbiAgICApO1xuXG4gICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgdGhyb3cgbmV3IFJ0enJDbGllbnRFcnJvcihgRmFpbGVkIHRvIGF1dGhvcml6ZTogJHtyZXNwb25zZS5zdGF0dXN9YCk7XG4gICAgfVxuXG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcbiAgICBjb25zdCBwYXJzZWREYXRhID0gcnR6ckF1dGhSZXNwb25zZVNjaGVtYS5zYWZlUGFyc2UoZGF0YSk7XG4gICAgaWYgKCFwYXJzZWREYXRhLnN1Y2Nlc3MpIHtcbiAgICAgIHRocm93IG5ldyBSdHpyQ2xpZW50RXJyb3IoYFZhbGlkYXRpb24gZmFpbGVkOiAke3BhcnNlZERhdGEuZXJyb3IubWVzc2FnZX1gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcGFyc2VkRGF0YS5kYXRhLmFjY2Vzc190b2tlbjtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0QXJncyh7IGF1ZGlvLCBtZWRpYVR5cGUsIHByb3ZpZGVyT3B0aW9ucyB9OiBSdHpyVHJhbnNjcmlwdGlvbkNhbGxPcHRpb25zKSB7XG4gICAgY29uc3Qgd2FybmluZ3M6IFNoYXJlZFYzV2FybmluZ1tdID0gW107XG4gICAgY29uc3QgcnR6ck9wdGlvbnMgPSBhd2FpdCBwYXJzZVByb3ZpZGVyT3B0aW9ucyh7XG4gICAgICBwcm92aWRlcjogXCJydHpyXCIsXG4gICAgICBwcm92aWRlck9wdGlvbnMsXG4gICAgICBzY2hlbWE6IHJ0enJUcmFuc2NyaXB0aW9uUHJvdmlkZXJPcHRpb25zLFxuICAgIH0pO1xuXG4gICAgY29uc3QgYmxvYiA9XG4gICAgICBhdWRpbyBpbnN0YW5jZW9mIFVpbnQ4QXJyYXlcbiAgICAgICAgPyBuZXcgQmxvYihbbmV3IFVpbnQ4QXJyYXkoYXVkaW8pXSlcbiAgICAgICAgOiBuZXcgQmxvYihbY29udmVydEJhc2U2NFRvVWludDhBcnJheShhdWRpbyldKTtcblxuICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgY29uc3QgZmlsZUV4dGVuc2lvbiA9IG1lZGlhVHlwZVRvRXh0ZW5zaW9uKG1lZGlhVHlwZSk7XG4gICAgZm9ybURhdGEuYXBwZW5kKFxuICAgICAgXCJmaWxlXCIsXG4gICAgICBuZXcgRmlsZShbYmxvYl0sIFwiYXVkaW9cIiwgeyB0eXBlOiBtZWRpYVR5cGUgfSksXG4gICAgICBgYXVkaW8uJHtmaWxlRXh0ZW5zaW9ufWAsXG4gICAgKTtcblxuICAgIGNvbnN0IGNvbmZpZyA9IHsgbW9kZWxfbmFtZTogdGhpcy5tb2RlbElkLCAuLi5ydHpyT3B0aW9ucyB9O1xuICAgIGZvcm1EYXRhLmFwcGVuZChcImNvbmZpZ1wiLCBKU09OLnN0cmluZ2lmeShjb25maWcpKTtcblxuICAgIHJldHVybiB7IGZvcm1EYXRhLCB3YXJuaW5ncyB9O1xuICB9XG5cbiAgYXN5bmMgZG9HZW5lcmF0ZShvcHRpb25zOiBSdHpyVHJhbnNjcmlwdGlvbkNhbGxPcHRpb25zKSB7XG4gICAgY29uc3QgY3VycmVudERhdGUgPSB0aGlzLmNvbmZpZy5faW50ZXJuYWw/LmN1cnJlbnREYXRlPy4oKSA/PyBuZXcgRGF0ZSgpO1xuXG4gICAgY29uc3QgYWNjZXNzVG9rZW4gPSBhd2FpdCB0aGlzLmF1dGhvcml6ZSgpO1xuICAgIGNvbnN0IGhlYWRlcnMgPSB7XG4gICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7YWNjZXNzVG9rZW59YCxcbiAgICAgIC4uLm9wdGlvbnMuaGVhZGVycyxcbiAgICB9O1xuXG4gICAgY29uc3QgeyBmb3JtRGF0YSwgd2FybmluZ3MgfSA9IGF3YWl0IHRoaXMuZ2V0QXJncyhvcHRpb25zKTtcbiAgICBjb25zdCB7XG4gICAgICB2YWx1ZTogeyBpZDogdHJhbnNjcmlwdGlvbklkIH0sXG4gICAgICByZXNwb25zZUhlYWRlcnMsXG4gICAgfSA9IGF3YWl0IHBvc3RGb3JtRGF0YVRvQXBpKHtcbiAgICAgIHVybDogdGhpcy5jb25maWcudXJsKHtcbiAgICAgICAgcGF0aDogXCIvdHJhbnNjcmliZVwiLFxuICAgICAgfSksXG4gICAgICBoZWFkZXJzOiBjb21iaW5lSGVhZGVycyh0aGlzLmNvbmZpZy5oZWFkZXJzKCksIGhlYWRlcnMpLFxuICAgICAgZm9ybURhdGEsXG4gICAgICBmYWlsZWRSZXNwb25zZUhhbmRsZXI6IHJ0enJGYWlsZWRSZXNwb25zZUhhbmRsZXIsXG4gICAgICBzdWNjZXNzZnVsUmVzcG9uc2VIYW5kbGVyOiBjcmVhdGVKc29uUmVzcG9uc2VIYW5kbGVyKHJ0enJUcmFuc2NyaXB0aW9uUmVzcG9uc2VTY2hlbWEpLFxuICAgICAgYWJvcnRTaWduYWw6IG9wdGlvbnMuYWJvcnRTaWduYWwsXG4gICAgICBmZXRjaDogdGhpcy5jb25maWcuZmV0Y2gsXG4gICAgfSk7XG5cbiAgICBjb25zdCB7IHZhbHVlOiByZXNwb25zZSwgcmF3VmFsdWUgfSA9IGF3YWl0IChhc3luYyAoKSA9PiB7XG4gICAgICAvLyB0cmFuc2NyaXB0aW9u7J20IOuBneuCoCDrloTquYzsp4AgMC417LSI66eI64ukIOyytO2BrC5cbiAgICAgIC8vIHRpbWVvdXTsnYQg65Sw66GcIOyngOygle2VmOyngCDslYrripQg7J207Jyg64qUIOyVoOy0iOyXkCBBYm9ydFNpZ25hbOydhCDsgqzsmqntlZjqs6Ag7J6I7J2MLlxuICAgICAgd2hpbGUgKHRydWUpIHtcbiAgICAgICAgYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgNTAwKSk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBnZXRGcm9tQXBpKHtcbiAgICAgICAgICB1cmw6IHRoaXMuY29uZmlnLnVybCh7XG4gICAgICAgICAgICBwYXRoOiBgL3RyYW5zY3JpYmUvJHt0cmFuc2NyaXB0aW9uSWR9YCxcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBoZWFkZXJzOiBjb21iaW5lSGVhZGVycyh0aGlzLmNvbmZpZy5oZWFkZXJzKCksIGhlYWRlcnMpLFxuICAgICAgICAgIGZhaWxlZFJlc3BvbnNlSGFuZGxlcjogcnR6ckZhaWxlZFJlc3BvbnNlSGFuZGxlcixcbiAgICAgICAgICBzdWNjZXNzZnVsUmVzcG9uc2VIYW5kbGVyOiBjcmVhdGVKc29uUmVzcG9uc2VIYW5kbGVyKFxuICAgICAgICAgICAgcnR6clRyYW5zY3JpcHRpb25SZXN1bHRSZXNwb25zZVNjaGVtYSxcbiAgICAgICAgICApLFxuICAgICAgICAgIGFib3J0U2lnbmFsOiBvcHRpb25zLmFib3J0U2lnbmFsLFxuICAgICAgICAgIGZldGNoOiB0aGlzLmNvbmZpZy5mZXRjaCxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKGRhdGEudmFsdWUuc3RhdHVzICE9PSBcInRyYW5zY3JpYmluZ1wiKSB7XG4gICAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KSgpO1xuXG4gICAgY29uc3Qgc2VnbWVudHMgPSByZXNwb25zZS5yZXN1bHRzPy51dHRlcmFuY2VzID8/IFtdO1xuXG4gICAgY29uc3QgbGFuZ3VhZ2VzID0gbmV3IFNldChzZWdtZW50cy5tYXAoKGl0ZW0pID0+IGl0ZW0ubGFuZykuZmlsdGVyKChpdGVtKSA9PiAhaXNFbXB0eShpdGVtKSkpO1xuICAgIGNvbnN0IGxhbmd1YWdlID0gKCgpID0+IHtcbiAgICAgIGlmIChsYW5ndWFnZXMuc2l6ZSA+IDEpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGxhbmd1YWdlcy52YWx1ZXMoKS5uZXh0KCkudmFsdWU7XG4gICAgfSkoKTtcblxuICAgIHJldHVybiB7XG4gICAgICB0ZXh0OiBzZWdtZW50cy5tYXAoKGl0ZW0pID0+IGl0ZW0ubXNnKS5qb2luKFwiXFxuXCIpLFxuICAgICAgc2VnbWVudHM6IHNlZ21lbnRzLm1hcCgoc2VnbWVudCkgPT4gKHtcbiAgICAgICAgdGV4dDogc2VnbWVudC5tc2csXG4gICAgICAgIHN0YXJ0U2Vjb25kOiBNYXRoLnRydW5jKHNlZ21lbnQuc3RhcnRfYXQgLyAxMDAwKSxcbiAgICAgICAgZW5kU2Vjb25kOiBNYXRoLnRydW5jKChzZWdtZW50LnN0YXJ0X2F0ICsgc2VnbWVudC5kdXJhdGlvbikgLyAxMDAwKSxcbiAgICAgIH0pKSxcbiAgICAgIGxhbmd1YWdlLFxuICAgICAgd2FybmluZ3MsXG4gICAgICBkdXJhdGlvbkluU2Vjb25kczogc2VnbWVudHMucmVkdWNlKChhY2MsIHNlZ21lbnQpID0+IGFjYyArIHNlZ21lbnQuZHVyYXRpb24sIDApID8/IHVuZGVmaW5lZCxcbiAgICAgIHJlc3BvbnNlOiB7XG4gICAgICAgIHRpbWVzdGFtcDogY3VycmVudERhdGUsXG4gICAgICAgIG1vZGVsSWQ6IHRoaXMubW9kZWxJZCxcbiAgICAgICAgaGVhZGVyczogcmVzcG9uc2VIZWFkZXJzLFxuICAgICAgICBib2R5OiByYXdWYWx1ZSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbImNvbWJpbmVIZWFkZXJzIiwiY29udmVydEJhc2U2NFRvVWludDhBcnJheSIsImNyZWF0ZUpzb25SZXNwb25zZUhhbmRsZXIiLCJnZXRGcm9tQXBpIiwibWVkaWFUeXBlVG9FeHRlbnNpb24iLCJwYXJzZVByb3ZpZGVyT3B0aW9ucyIsInBvc3RGb3JtRGF0YVRvQXBpIiwiaXNFbXB0eSIsInJ0enJBdXRoUmVzcG9uc2VTY2hlbWEiLCJydHpyVHJhbnNjcmlwdGlvblJlc3BvbnNlU2NoZW1hIiwicnR6clRyYW5zY3JpcHRpb25SZXN1bHRSZXNwb25zZVNjaGVtYSIsIlJ0enJDbGllbnRFcnJvciIsInJ0enJGYWlsZWRSZXNwb25zZUhhbmRsZXIiLCJydHpyVHJhbnNjcmlwdGlvblByb3ZpZGVyT3B0aW9ucyIsIlJ0enJUcmFuc2NyaXB0aW9uTW9kZWwiLCJzcGVjaWZpY2F0aW9uVmVyc2lvbiIsInByb3ZpZGVyIiwiY29uZmlnIiwibW9kZWxJZCIsImF1dGhvcml6ZSIsImZldGNoQXBpIiwiZmV0Y2giLCJyZXNwb25zZSIsInVybCIsInBhdGgiLCJtZXRob2QiLCJoZWFkZXJzIiwiYm9keSIsIlVSTFNlYXJjaFBhcmFtcyIsImNsaWVudF9pZCIsImF1dGgiLCJjbGllbnRJZCIsImNsaWVudF9zZWNyZXQiLCJjbGllbnRTZWNyZXQiLCJvayIsInN0YXR1cyIsImRhdGEiLCJqc29uIiwicGFyc2VkRGF0YSIsInNhZmVQYXJzZSIsInN1Y2Nlc3MiLCJlcnJvciIsIm1lc3NhZ2UiLCJhY2Nlc3NfdG9rZW4iLCJnZXRBcmdzIiwiYXVkaW8iLCJtZWRpYVR5cGUiLCJwcm92aWRlck9wdGlvbnMiLCJ3YXJuaW5ncyIsInJ0enJPcHRpb25zIiwic2NoZW1hIiwiYmxvYiIsIlVpbnQ4QXJyYXkiLCJCbG9iIiwiZm9ybURhdGEiLCJGb3JtRGF0YSIsImZpbGVFeHRlbnNpb24iLCJhcHBlbmQiLCJGaWxlIiwidHlwZSIsIm1vZGVsX25hbWUiLCJKU09OIiwic3RyaW5naWZ5IiwiZG9HZW5lcmF0ZSIsIm9wdGlvbnMiLCJjdXJyZW50RGF0ZSIsIl9pbnRlcm5hbCIsIkRhdGUiLCJhY2Nlc3NUb2tlbiIsIkF1dGhvcml6YXRpb24iLCJ2YWx1ZSIsImlkIiwidHJhbnNjcmlwdGlvbklkIiwicmVzcG9uc2VIZWFkZXJzIiwiZmFpbGVkUmVzcG9uc2VIYW5kbGVyIiwic3VjY2Vzc2Z1bFJlc3BvbnNlSGFuZGxlciIsImFib3J0U2lnbmFsIiwicmF3VmFsdWUiLCJQcm9taXNlIiwicmVzb2x2ZSIsInNldFRpbWVvdXQiLCJzZWdtZW50cyIsInJlc3VsdHMiLCJ1dHRlcmFuY2VzIiwibGFuZ3VhZ2VzIiwiU2V0IiwibWFwIiwiaXRlbSIsImxhbmciLCJmaWx0ZXIiLCJsYW5ndWFnZSIsInNpemUiLCJ1bmRlZmluZWQiLCJ2YWx1ZXMiLCJuZXh0IiwidGV4dCIsIm1zZyIsImpvaW4iLCJzZWdtZW50Iiwic3RhcnRTZWNvbmQiLCJNYXRoIiwidHJ1bmMiLCJzdGFydF9hdCIsImVuZFNlY29uZCIsImR1cmF0aW9uIiwiZHVyYXRpb25JblNlY29uZHMiLCJyZWR1Y2UiLCJhY2MiLCJ0aW1lc3RhbXAiXSwibWFwcGluZ3MiOiJBQUtBLFNBQ0VBLGNBQWMsRUFDZEMseUJBQXlCLEVBQ3pCQyx5QkFBeUIsRUFFekJDLFVBQVUsRUFDVkMsb0JBQW9CLEVBQ3BCQyxvQkFBb0IsRUFDcEJDLGlCQUFpQixRQUNaLHlCQUF5QjtBQUNoQyxTQUFTQyxPQUFPLFFBQVEsVUFBVTtBQUNsQyxTQUNFQyxzQkFBc0IsRUFDdEJDLCtCQUErQixFQUMvQkMscUNBQXFDLFFBQ2hDLFdBQVE7QUFDZixTQUFTQyxlQUFlLEVBQUVDLHlCQUF5QixRQUFRLGFBQVU7QUFDckUsU0FHRUMsZ0NBQWdDLFFBQzNCLGVBQVk7QUEwQm5CLE9BQU8sTUFBTUM7OztJQUNGQyx1QkFBdUIsS0FBSztJQUVyQyxJQUFJQyxXQUFtQjtRQUNyQixPQUFPLElBQUksQ0FBQ0MsTUFBTSxDQUFDRCxRQUFRO0lBQzdCO0lBRUEsWUFDRSxBQUFTRSxPQUFpQyxFQUMxQyxBQUFpQkQsTUFBb0MsQ0FDckQ7YUFGU0MsVUFBQUE7YUFDUUQsU0FBQUE7SUFDaEI7SUFFSCxNQUFjRSxZQUFZO1FBQ3hCLE1BQU1DLFdBQVcsSUFBSSxDQUFDSCxNQUFNLENBQUNJLEtB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
@@ -0,0 +1,7 @@
1
+ import { type InferSchema } from "@ai-sdk/provider-utils";
2
+ export type RtzrTranscriptionModelId = "whisper" | "sommers" | (string & {});
3
+ export declare const rtzrTranscriptionProviderOptions: import("@ai-sdk/provider-utils").LazySchema<{
4
+ [k: string]: string | number | boolean | string[];
5
+ }>;
6
+ export type RtzrTranscriptionProviderOptions = InferSchema<typeof rtzrTranscriptionProviderOptions>;
7
+ //# sourceMappingURL=options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../../src/ai/providers/rtzr/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAyB,MAAM,wBAAwB,CAAC;AAGjF,MAAM,MAAM,wBAAwB,GAAG,SAAS,GAAG,SAAS,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAiC7E,eAAO,MAAM,gCAAgC;;EAU5C,CAAC;AAEF,MAAM,MAAM,gCAAgC,GAAG,WAAW,CAAC,OAAO,gCAAgC,CAAC,CAAC"}