prompsit-cli 26.224.1816 → 26.227.1942

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 (393) hide show
  1. package/README.md +51 -41
  2. package/dist/api/auth-session.d.ts +11 -11
  3. package/dist/api/auth-session.d.ts.map +1 -1
  4. package/dist/api/auth-session.js +21 -17
  5. package/dist/api/auth-session.js.map +1 -1
  6. package/dist/api/client.d.ts +4 -4
  7. package/dist/api/client.d.ts.map +1 -1
  8. package/dist/api/client.js +8 -8
  9. package/dist/api/client.js.map +1 -1
  10. package/dist/api/curl.d.ts +30 -0
  11. package/dist/api/curl.d.ts.map +1 -0
  12. package/dist/api/curl.js +115 -0
  13. package/dist/api/curl.js.map +1 -0
  14. package/dist/api/errors.d.ts +2 -3
  15. package/dist/api/errors.d.ts.map +1 -1
  16. package/dist/api/errors.js +4 -2
  17. package/dist/api/errors.js.map +1 -1
  18. package/dist/api/http-utils.d.ts +5 -0
  19. package/dist/api/http-utils.d.ts.map +1 -0
  20. package/dist/api/http-utils.js +19 -0
  21. package/dist/api/http-utils.js.map +1 -0
  22. package/dist/api/models.d.ts +135 -89
  23. package/dist/api/models.d.ts.map +1 -1
  24. package/dist/api/models.js +62 -72
  25. package/dist/api/models.js.map +1 -1
  26. package/dist/api/resources/data.d.ts +3 -5
  27. package/dist/api/resources/data.d.ts.map +1 -1
  28. package/dist/api/resources/data.js +11 -12
  29. package/dist/api/resources/data.js.map +1 -1
  30. package/dist/api/resources/discovery.d.ts +26 -0
  31. package/dist/api/resources/discovery.d.ts.map +1 -0
  32. package/dist/api/resources/discovery.js +46 -0
  33. package/dist/api/resources/discovery.js.map +1 -0
  34. package/dist/api/resources/evaluation.d.ts +9 -12
  35. package/dist/api/resources/evaluation.d.ts.map +1 -1
  36. package/dist/api/resources/evaluation.js +45 -20
  37. package/dist/api/resources/evaluation.js.map +1 -1
  38. package/dist/api/resources/formats.d.ts +1 -1
  39. package/dist/api/resources/formats.js +2 -2
  40. package/dist/api/resources/formats.js.map +1 -1
  41. package/dist/api/resources/jobs.d.ts +7 -8
  42. package/dist/api/resources/jobs.d.ts.map +1 -1
  43. package/dist/api/resources/jobs.js +10 -49
  44. package/dist/api/resources/jobs.js.map +1 -1
  45. package/dist/api/resources/languages.d.ts +25 -0
  46. package/dist/api/resources/languages.d.ts.map +1 -0
  47. package/dist/api/resources/languages.js +44 -0
  48. package/dist/api/resources/languages.js.map +1 -0
  49. package/dist/api/resources/translation.d.ts +8 -16
  50. package/dist/api/resources/translation.d.ts.map +1 -1
  51. package/dist/api/resources/translation.js +11 -15
  52. package/dist/api/resources/translation.js.map +1 -1
  53. package/dist/api/sse-client.d.ts +10 -16
  54. package/dist/api/sse-client.d.ts.map +1 -1
  55. package/dist/api/sse-client.js +158 -197
  56. package/dist/api/sse-client.js.map +1 -1
  57. package/dist/api/sse-models.js +1 -1
  58. package/dist/api/sse-models.js.map +1 -1
  59. package/dist/api/trace.js +1 -1
  60. package/dist/api/trace.js.map +1 -1
  61. package/dist/api/transport.d.ts +28 -1
  62. package/dist/api/transport.d.ts.map +1 -1
  63. package/dist/api/transport.js +89 -17
  64. package/dist/api/transport.js.map +1 -1
  65. package/dist/api/verbose.d.ts +2 -8
  66. package/dist/api/verbose.d.ts.map +1 -1
  67. package/dist/api/verbose.js +13 -8
  68. package/dist/api/verbose.js.map +1 -1
  69. package/dist/cli/arg-order.d.ts +2 -0
  70. package/dist/cli/arg-order.d.ts.map +1 -1
  71. package/dist/cli/arg-order.js +2 -0
  72. package/dist/cli/arg-order.js.map +1 -1
  73. package/dist/cli/exit-codes.d.ts +0 -2
  74. package/dist/cli/exit-codes.d.ts.map +1 -1
  75. package/dist/cli/exit-codes.js +0 -2
  76. package/dist/cli/exit-codes.js.map +1 -1
  77. package/dist/cli/exit.d.ts +4 -4
  78. package/dist/cli/exit.d.ts.map +1 -1
  79. package/dist/cli/exit.js +4 -4
  80. package/dist/cli/exit.js.map +1 -1
  81. package/dist/cli/options.js +2 -2
  82. package/dist/cli/options.js.map +1 -1
  83. package/dist/cli/prompts.d.ts +0 -2
  84. package/dist/cli/prompts.d.ts.map +1 -1
  85. package/dist/cli/prompts.js +1 -1
  86. package/dist/cli/prompts.js.map +1 -1
  87. package/dist/commands/auth.d.ts.map +1 -1
  88. package/dist/commands/auth.js +5 -6
  89. package/dist/commands/auth.js.map +1 -1
  90. package/dist/commands/batch-processor.d.ts +38 -0
  91. package/dist/commands/batch-processor.d.ts.map +1 -0
  92. package/dist/commands/batch-processor.js +73 -0
  93. package/dist/commands/batch-processor.js.map +1 -0
  94. package/dist/commands/config/api-url.d.ts.map +1 -1
  95. package/dist/commands/config/api-url.js +9 -5
  96. package/dist/commands/config/api-url.js.map +1 -1
  97. package/dist/commands/config/command.d.ts.map +1 -1
  98. package/dist/commands/config/command.js +3 -2
  99. package/dist/commands/config/command.js.map +1 -1
  100. package/dist/commands/config/language.d.ts.map +1 -1
  101. package/dist/commands/config/language.js +10 -16
  102. package/dist/commands/config/language.js.map +1 -1
  103. package/dist/commands/config/reset.d.ts.map +1 -1
  104. package/dist/commands/config/reset.js +4 -3
  105. package/dist/commands/config/reset.js.map +1 -1
  106. package/dist/commands/config/shared.d.ts.map +1 -1
  107. package/dist/commands/config/shared.js +5 -4
  108. package/dist/commands/config/shared.js.map +1 -1
  109. package/dist/commands/config/show.d.ts.map +1 -1
  110. package/dist/commands/config/show.js +0 -13
  111. package/dist/commands/config/show.js.map +1 -1
  112. package/dist/commands/data.d.ts.map +1 -1
  113. package/dist/commands/data.js +241 -68
  114. package/dist/commands/data.js.map +1 -1
  115. package/dist/commands/evaluate.d.ts.map +1 -1
  116. package/dist/commands/evaluate.js +111 -29
  117. package/dist/commands/evaluate.js.map +1 -1
  118. package/dist/commands/formats.d.ts +1 -1
  119. package/dist/commands/formats.d.ts.map +1 -1
  120. package/dist/commands/formats.js +5 -12
  121. package/dist/commands/formats.js.map +1 -1
  122. package/dist/commands/health.d.ts +1 -1
  123. package/dist/commands/health.d.ts.map +1 -1
  124. package/dist/commands/health.js +3 -10
  125. package/dist/commands/health.js.map +1 -1
  126. package/dist/commands/job-tracking.d.ts +13 -5
  127. package/dist/commands/job-tracking.d.ts.map +1 -1
  128. package/dist/commands/job-tracking.js +25 -18
  129. package/dist/commands/job-tracking.js.map +1 -1
  130. package/dist/commands/languages.d.ts +12 -0
  131. package/dist/commands/languages.d.ts.map +1 -0
  132. package/dist/commands/languages.js +48 -0
  133. package/dist/commands/languages.js.map +1 -0
  134. package/dist/commands/mappers.d.ts +15 -3
  135. package/dist/commands/mappers.d.ts.map +1 -1
  136. package/dist/commands/mappers.js +38 -18
  137. package/dist/commands/mappers.js.map +1 -1
  138. package/dist/commands/progress-animator.d.ts +2 -1
  139. package/dist/commands/progress-animator.d.ts.map +1 -1
  140. package/dist/commands/progress-animator.js +4 -2
  141. package/dist/commands/progress-animator.js.map +1 -1
  142. package/dist/commands/translate.d.ts.map +1 -1
  143. package/dist/commands/translate.js +151 -93
  144. package/dist/commands/translate.js.map +1 -1
  145. package/dist/config/credentials.d.ts +11 -87
  146. package/dist/config/credentials.d.ts.map +1 -1
  147. package/dist/config/credentials.js +28 -87
  148. package/dist/config/credentials.js.map +1 -1
  149. package/dist/config/env-parser.d.ts.map +1 -1
  150. package/dist/config/env-parser.js +3 -2
  151. package/dist/config/env-parser.js.map +1 -1
  152. package/dist/config/file-utils.js +1 -1
  153. package/dist/config/file-utils.js.map +1 -1
  154. package/dist/config/index.d.ts +4 -7
  155. package/dist/config/index.d.ts.map +1 -1
  156. package/dist/config/index.js +6 -12
  157. package/dist/config/index.js.map +1 -1
  158. package/dist/config/schemas.d.ts +4 -27
  159. package/dist/config/schemas.d.ts.map +1 -1
  160. package/dist/config/schemas.js +14 -16
  161. package/dist/config/schemas.js.map +1 -1
  162. package/dist/config/settings.d.ts +4 -4
  163. package/dist/config/settings.d.ts.map +1 -1
  164. package/dist/config/settings.js +16 -21
  165. package/dist/config/settings.js.map +1 -1
  166. package/dist/config/toml-io.js +1 -1
  167. package/dist/config/toml-io.js.map +1 -1
  168. package/dist/constants.d.ts +10 -9
  169. package/dist/constants.d.ts.map +1 -1
  170. package/dist/constants.js +10 -9
  171. package/dist/constants.js.map +1 -1
  172. package/dist/errors/catalog.d.ts.map +1 -1
  173. package/dist/errors/catalog.js +6 -8
  174. package/dist/errors/catalog.js.map +1 -1
  175. package/dist/errors/contracts.d.ts.map +1 -1
  176. package/dist/errors/contracts.js +2 -3
  177. package/dist/errors/contracts.js.map +1 -1
  178. package/dist/i18n/cache.d.ts +0 -2
  179. package/dist/i18n/cache.d.ts.map +1 -1
  180. package/dist/i18n/cache.js +5 -5
  181. package/dist/i18n/cache.js.map +1 -1
  182. package/dist/i18n/catalog.d.ts +67 -33
  183. package/dist/i18n/catalog.d.ts.map +1 -1
  184. package/dist/i18n/catalog.js +73 -36
  185. package/dist/i18n/catalog.js.map +1 -1
  186. package/dist/i18n/index.d.ts +3 -1
  187. package/dist/i18n/index.d.ts.map +1 -1
  188. package/dist/i18n/index.js +9 -2
  189. package/dist/i18n/index.js.map +1 -1
  190. package/dist/i18n/translator-adapter.d.ts +3 -0
  191. package/dist/i18n/translator-adapter.d.ts.map +1 -0
  192. package/dist/i18n/translator-adapter.js +12 -0
  193. package/dist/i18n/translator-adapter.js.map +1 -0
  194. package/dist/i18n/translator.d.ts.map +1 -1
  195. package/dist/i18n/translator.js +1 -0
  196. package/dist/i18n/translator.js.map +1 -1
  197. package/dist/index.d.ts +1 -2
  198. package/dist/index.d.ts.map +1 -1
  199. package/dist/index.js +2 -3
  200. package/dist/index.js.map +1 -1
  201. package/dist/logging/console-handler.js +1 -1
  202. package/dist/logging/console-handler.js.map +1 -1
  203. package/dist/logging/file-handler.d.ts.map +1 -1
  204. package/dist/logging/file-handler.js +4 -5
  205. package/dist/logging/file-handler.js.map +1 -1
  206. package/dist/logging/index.d.ts +2 -2
  207. package/dist/logging/index.d.ts.map +1 -1
  208. package/dist/logging/index.js +1 -1
  209. package/dist/logging/index.js.map +1 -1
  210. package/dist/logging/logger.d.ts +18 -22
  211. package/dist/logging/logger.d.ts.map +1 -1
  212. package/dist/logging/logger.js +38 -64
  213. package/dist/logging/logger.js.map +1 -1
  214. package/dist/logging/loki-handler.js +1 -1
  215. package/dist/logging/loki-handler.js.map +1 -1
  216. package/dist/logging/setup.d.ts +4 -3
  217. package/dist/logging/setup.d.ts.map +1 -1
  218. package/dist/logging/setup.js +136 -33
  219. package/dist/logging/setup.js.map +1 -1
  220. package/dist/output/ansi-utils.d.ts +13 -0
  221. package/dist/output/ansi-utils.d.ts.map +1 -0
  222. package/dist/output/ansi-utils.js +37 -0
  223. package/dist/output/ansi-utils.js.map +1 -0
  224. package/dist/output/index.d.ts +2 -5
  225. package/dist/output/index.d.ts.map +1 -1
  226. package/dist/output/index.js +3 -2
  227. package/dist/output/index.js.map +1 -1
  228. package/dist/output/output-events.d.ts +0 -1
  229. package/dist/output/output-events.d.ts.map +1 -1
  230. package/dist/output/tables/catalog.d.ts +5 -2
  231. package/dist/output/tables/catalog.d.ts.map +1 -1
  232. package/dist/output/tables/catalog.js +65 -9
  233. package/dist/output/tables/catalog.js.map +1 -1
  234. package/dist/output/tables/evaluation.d.ts.map +1 -1
  235. package/dist/output/tables/evaluation.js +3 -0
  236. package/dist/output/tables/evaluation.js.map +1 -1
  237. package/dist/output/tables/health-status.d.ts +1 -1
  238. package/dist/output/tables/health-status.d.ts.map +1 -1
  239. package/dist/output/tables/health-status.js +15 -19
  240. package/dist/output/tables/health-status.js.map +1 -1
  241. package/dist/output/tables/index.d.ts +3 -3
  242. package/dist/output/tables/index.d.ts.map +1 -1
  243. package/dist/output/tables/index.js +2 -2
  244. package/dist/output/tables/index.js.map +1 -1
  245. package/dist/output/tables/render.d.ts.map +1 -1
  246. package/dist/output/tables/render.js +2 -10
  247. package/dist/output/tables/render.js.map +1 -1
  248. package/dist/output/terminal.d.ts +1 -5
  249. package/dist/output/terminal.d.ts.map +1 -1
  250. package/dist/output/terminal.js +25 -24
  251. package/dist/output/terminal.js.map +1 -1
  252. package/dist/output/view-models.d.ts +28 -2
  253. package/dist/output/view-models.d.ts.map +1 -1
  254. package/dist/program.d.ts.map +1 -1
  255. package/dist/program.js +21 -29
  256. package/dist/program.js.map +1 -1
  257. package/dist/repl/controller.d.ts +3 -4
  258. package/dist/repl/controller.d.ts.map +1 -1
  259. package/dist/repl/controller.js +122 -168
  260. package/dist/repl/controller.js.map +1 -1
  261. package/dist/repl/core/output-bridge.d.ts.map +1 -1
  262. package/dist/repl/core/output-bridge.js +6 -4
  263. package/dist/repl/core/output-bridge.js.map +1 -1
  264. package/dist/repl/core/progress-types.d.ts +1 -1
  265. package/dist/repl/core/progress-types.d.ts.map +1 -1
  266. package/dist/repl/core/progress-types.js +1 -1
  267. package/dist/repl/core/progress-types.js.map +1 -1
  268. package/dist/repl/examples.d.ts +0 -2
  269. package/dist/repl/examples.d.ts.map +1 -1
  270. package/dist/repl/examples.js +9 -3
  271. package/dist/repl/examples.js.map +1 -1
  272. package/dist/repl/executor.d.ts +2 -4
  273. package/dist/repl/executor.d.ts.map +1 -1
  274. package/dist/repl/executor.js +78 -50
  275. package/dist/repl/executor.js.map +1 -1
  276. package/dist/repl/help.d.ts +10 -3
  277. package/dist/repl/help.d.ts.map +1 -1
  278. package/dist/repl/help.js +37 -10
  279. package/dist/repl/help.js.map +1 -1
  280. package/dist/repl/history/command-history.js +5 -5
  281. package/dist/repl/history/command-history.js.map +1 -1
  282. package/dist/repl/history/output-render.d.ts +1 -3
  283. package/dist/repl/history/output-render.d.ts.map +1 -1
  284. package/dist/repl/history/output-render.js +4 -6
  285. package/dist/repl/history/output-render.js.map +1 -1
  286. package/dist/repl/history/output-store.d.ts.map +1 -1
  287. package/dist/repl/history/output-store.js +6 -3
  288. package/dist/repl/history/output-store.js.map +1 -1
  289. package/dist/repl/input/autocomplete-provider.d.ts.map +1 -1
  290. package/dist/repl/input/autocomplete-provider.js +1 -2
  291. package/dist/repl/input/autocomplete-provider.js.map +1 -1
  292. package/dist/repl/input/completer.d.ts +0 -2
  293. package/dist/repl/input/completer.d.ts.map +1 -1
  294. package/dist/repl/input/completer.js +9 -7
  295. package/dist/repl/input/completer.js.map +1 -1
  296. package/dist/repl/input/ghost-text.d.ts +1 -1
  297. package/dist/repl/input/ghost-text.d.ts.map +1 -1
  298. package/dist/repl/input/ghost-text.js +1 -1
  299. package/dist/repl/input/ghost-text.js.map +1 -1
  300. package/dist/repl/input/input-handler.d.ts +34 -0
  301. package/dist/repl/input/input-handler.d.ts.map +1 -0
  302. package/dist/repl/input/input-handler.js +115 -0
  303. package/dist/repl/input/input-handler.js.map +1 -0
  304. package/dist/repl/input/keybindings.d.ts +0 -5
  305. package/dist/repl/input/keybindings.d.ts.map +1 -1
  306. package/dist/repl/input/keybindings.js +0 -65
  307. package/dist/repl/input/keybindings.js.map +1 -1
  308. package/dist/repl/loop.d.ts +1 -2
  309. package/dist/repl/loop.d.ts.map +1 -1
  310. package/dist/repl/loop.js +36 -11
  311. package/dist/repl/loop.js.map +1 -1
  312. package/dist/repl/registry.d.ts +31 -23
  313. package/dist/repl/registry.d.ts.map +1 -1
  314. package/dist/repl/registry.js +255 -188
  315. package/dist/repl/registry.js.map +1 -1
  316. package/dist/repl/service.d.ts +1 -10
  317. package/dist/repl/service.d.ts.map +1 -1
  318. package/dist/repl/service.js +15 -26
  319. package/dist/repl/service.js.map +1 -1
  320. package/dist/repl/ui/components/curl-panel.d.ts +6 -0
  321. package/dist/repl/ui/components/curl-panel.d.ts.map +1 -0
  322. package/dist/repl/ui/components/curl-panel.js +37 -0
  323. package/dist/repl/ui/components/curl-panel.js.map +1 -0
  324. package/dist/repl/ui/components/ghost-text-editor.d.ts +4 -0
  325. package/dist/repl/ui/components/ghost-text-editor.d.ts.map +1 -1
  326. package/dist/repl/ui/components/ghost-text-editor.js +17 -6
  327. package/dist/repl/ui/components/ghost-text-editor.js.map +1 -1
  328. package/dist/repl/ui/components/history-component.d.ts.map +1 -1
  329. package/dist/repl/ui/components/history-component.js +7 -69
  330. package/dist/repl/ui/components/history-component.js.map +1 -1
  331. package/dist/repl/ui/components/progress-bar.js.map +1 -1
  332. package/dist/repl/ui/components/status-bar-line.d.ts +6 -0
  333. package/dist/repl/ui/components/status-bar-line.d.ts.map +1 -0
  334. package/dist/repl/ui/components/status-bar-line.js +12 -0
  335. package/dist/repl/ui/components/status-bar-line.js.map +1 -0
  336. package/dist/repl/ui/curl-store.d.ts +9 -0
  337. package/dist/repl/ui/curl-store.d.ts.map +1 -0
  338. package/dist/repl/ui/curl-store.js +24 -0
  339. package/dist/repl/ui/curl-store.js.map +1 -0
  340. package/dist/repl/ui/data.d.ts +2 -0
  341. package/dist/repl/ui/data.d.ts.map +1 -1
  342. package/dist/repl/ui/data.js +5 -3
  343. package/dist/repl/ui/data.js.map +1 -1
  344. package/dist/repl/ui/hint-state.d.ts +2 -1
  345. package/dist/repl/ui/hint-state.d.ts.map +1 -1
  346. package/dist/repl/ui/hint-state.js +18 -1
  347. package/dist/repl/ui/hint-state.js.map +1 -1
  348. package/dist/repl/ui/progress-controller.d.ts +17 -0
  349. package/dist/repl/ui/progress-controller.d.ts.map +1 -0
  350. package/dist/repl/ui/progress-controller.js +68 -0
  351. package/dist/repl/ui/progress-controller.js.map +1 -0
  352. package/dist/repl/ui/selection-utils.d.ts +28 -0
  353. package/dist/repl/ui/selection-utils.d.ts.map +1 -0
  354. package/dist/repl/ui/selection-utils.js +70 -0
  355. package/dist/repl/ui/selection-utils.js.map +1 -0
  356. package/dist/repl/ui/status-bar.d.ts +1 -4
  357. package/dist/repl/ui/status-bar.d.ts.map +1 -1
  358. package/dist/repl/ui/status-bar.js +7 -34
  359. package/dist/repl/ui/status-bar.js.map +1 -1
  360. package/dist/runtime/async-utils.d.ts +16 -0
  361. package/dist/runtime/async-utils.d.ts.map +1 -0
  362. package/dist/runtime/async-utils.js +40 -0
  363. package/dist/runtime/async-utils.js.map +1 -0
  364. package/dist/runtime/clipboard-win32.d.ts.map +1 -1
  365. package/dist/runtime/clipboard-win32.js +2 -1
  366. package/dist/runtime/clipboard-win32.js.map +1 -1
  367. package/dist/runtime/clipboard.d.ts.map +1 -1
  368. package/dist/runtime/clipboard.js +6 -2
  369. package/dist/runtime/clipboard.js.map +1 -1
  370. package/dist/runtime/external-transport.d.ts.map +1 -1
  371. package/dist/runtime/external-transport.js +1 -1
  372. package/dist/runtime/external-transport.js.map +1 -1
  373. package/dist/runtime/file-args.d.ts +38 -0
  374. package/dist/runtime/file-args.d.ts.map +1 -0
  375. package/dist/runtime/file-args.js +133 -0
  376. package/dist/runtime/file-args.js.map +1 -0
  377. package/dist/runtime/platform.d.ts +0 -2
  378. package/dist/runtime/platform.d.ts.map +1 -1
  379. package/dist/runtime/platform.js +0 -6
  380. package/dist/runtime/platform.js.map +1 -1
  381. package/dist/tui/settings-screen.d.ts +1 -1
  382. package/dist/tui/settings-screen.d.ts.map +1 -1
  383. package/dist/tui/settings-screen.js +94 -68
  384. package/dist/tui/settings-screen.js.map +1 -1
  385. package/dist/version.d.ts.map +1 -1
  386. package/dist/version.js +3 -2
  387. package/dist/version.js.map +1 -1
  388. package/examples/sample.csv +4 -0
  389. package/examples/sample.jsonl +3 -0
  390. package/examples/sample.tmx +6 -0
  391. package/examples/sample.xliff +19 -0
  392. package/examples/sample_scored.tmx +37 -37
  393. package/package.json +18 -7
package/README.md CHANGED
@@ -8,7 +8,11 @@ CLI for the Prompsit Translation API. Translate text and documents, evaluate qua
8
8
 
9
9
  ## Requirements
10
10
 
11
- Node.js 22+
11
+ [Node.js](https://nodejs.org/) 22+
12
+
13
+ ```bash
14
+ node -v # Should print v22.x or higher
15
+ ```
12
16
 
13
17
  ## Install
14
18
 
@@ -32,12 +36,11 @@ command -v prompsit
32
36
 
33
37
  ## Usage
34
38
 
35
- Run `prompsit` to enter interactive REPL with tab completion. Global options: `--debug` `--no-color` `--json` `--version`
39
+ Run `prompsit` to enter interactive REPL with tab completion.
36
40
 
37
41
  ```bash
38
42
  prompsit # Enter interactive REPL
39
43
  prompsit translate "Hello" -s "en" -t "es" # Run single command
40
- prompsit --json engines # JSON output mode
41
44
  ```
42
45
 
43
46
  > **Quoting rule:** All values must be quoted. Commands, subcommands, and flags stay unquoted.
@@ -77,9 +80,9 @@ Interactive TUI settings screen, or manage config via subcommands.
77
80
  **Subcommands:**
78
81
 
79
82
  - `config show` Show current configuration
80
- - `config "<key>"` Get a config value
81
- - `config "<key>" "<value>"` Set a config value
82
- - `config api-url ["<preset_or_url>"]` Switch API endpoint
83
+ - `config "key"` Get a config value
84
+ - `config "key" "value"` Set a config value
85
+ - `config api-url ["preset_or_url"]` Switch API endpoint
83
86
  - `config reset [--force]` Reset to defaults
84
87
  - `config path` Show config file path
85
88
 
@@ -104,50 +107,52 @@ $ prompsit config language
104
107
 
105
108
  ### Translation
106
109
 
107
- #### `translate` "text" --source \<lang> --target \<lang> [--qe] [--full]
110
+ #### `translate` "text" --source "lang" --target "lang" [--qe]
108
111
 
109
112
  Translate text. Aliases: `t`
110
113
 
111
- - `-s, --source <lang>` Source language code
112
- - `-t, --target <lang>` Target language code
114
+ - `-s, --source "lang"` Source language code
115
+ - `-t, --target "lang"` Target language code
113
116
  - `--qe` Enable quality estimation score
114
- - `--full` Full details table (source + translation + QE + latency)
115
117
 
116
118
  ```
117
119
  > "Hello world" -s "en" -t "es"
120
+ > "Hello" "Good morning" "Thank you" -s "en" -t "es"
118
121
  > t "Hello" -s "en" -t "es" --qe
119
- > t "Hello" -s "en" -t "es" --qe --full
120
122
  $ prompsit translate "Hello world" -s "en" -t "es"
121
- $ prompsit translate "Hello" "World" -s "en" -t "es"
123
+ $ prompsit translate "Hello" "Good morning" "Thank you" -s "en" -t "es"
122
124
  ```
123
125
 
124
- #### `tf` "file..." --source \<lang> --target \<lang> [--output \<path>] [--output-format \<fmt>]
126
+ #### `tf` "file..." --source "lang" --target "lang" [--output "path"] [--output-format "fmt"]
125
127
 
126
128
  Translate files (XLIFF, CSV, PDF, DOCX, etc.). Full name: `translate file`
127
129
 
128
- - `-s, --source <lang>` Source language code
129
- - `-t, --target <lang>` Target language code
130
- - `-o, --output <path>` Output file path (single file only)
131
- - `--output-format <fmt>` Output format (e.g. docx)
130
+ - `-s, --source "lang"` Source language code
131
+ - `-t, --target "lang"` Target language code
132
+ - `-o, --output "path"` Output file path (single file only)
133
+ - `--output-format "fmt"` Output format (e.g. docx)
132
134
 
133
135
  ```
134
- > tf "input.xliff" -s "en" -t "es"
135
- > tf "data.csv" -s "en" -t "fr" -o "translated.csv"
136
- > tf "doc1.pdf" "doc2.pdf" -s "en" -t "es" --output-format "docx"
137
- $ prompsit translate file "input.xliff" -s "en" -t "es"
138
- $ prompsit translate file "data.csv" -s "en" -t "fr" -o "translated.csv"
136
+ > tf "~/.prompsit/examples/sample.xliff" -s "en" -t "es"
137
+ > tf "~/.prompsit/examples/sample.txt" "~/.prompsit/examples/sample.csv" -s "en" -t "es"
138
+ > tf "~/.prompsit/examples/sample.csv" -s "en" -t "es" -o "translated.csv"
139
+ > tf "report.pdf" -s "en" -t "es" --output-format "docx"
140
+ $ prompsit translate file "~/.prompsit/examples/sample.xliff" -s "en" -t "es"
141
+ $ prompsit translate file "~/.prompsit/examples/sample.csv" -s "en" -t "es" -o "translated.csv"
142
+ $ prompsit translate file "report.pdf" -s "en" -t "es" --output-format "docx"
143
+ $ prompsit translate file "manual.md" "notes.md" -s "en" -t "es" --output-format "docx"
139
144
  ```
140
145
 
141
146
  ---
142
147
 
143
148
  ### Engines
144
149
 
145
- #### `engines` [--source \<lang>] [--target \<lang>]
150
+ #### `engines` [--source "lang"] [--target "lang"]
146
151
 
147
152
  List available translation engines.
148
153
 
149
- - `-s, --source <lang>` Filter by source language
150
- - `-t, --target <lang>` Filter by target language
154
+ - `-s, --source "lang"` Filter by source language
155
+ - `-t, --target "lang"` Filter by target language
151
156
 
152
157
  ```
153
158
  > engines
@@ -160,18 +165,18 @@ $ prompsit engines -s "en" -t "es"
160
165
 
161
166
  ### Quality Evaluation
162
167
 
163
- #### `eval` --source "src" --hypothesis "hyp" --reference "ref" [--metrics \<metrics>]
168
+ #### `eval` --source "src" --hypothesis "hyp" --reference "ref" [--metrics "metrics"]
164
169
 
165
170
  Evaluate translation quality with automatic metrics. Full name: `evaluate metrics`
166
171
 
167
172
  - `-s, --source "src"` Source text
168
173
  - `-h, --hypothesis "hyp"` Machine translation (hypothesis)
169
174
  - `-r, --reference "ref"` Reference translation
170
- - `-m, --metrics <metrics>` Comma-separated: bleu,chrf,metricx (default: bleu,chrf)
175
+ - `-m, --metrics "metrics"` Comma-separated: bleu,chrf,metricx (default: bleu,chrf)
171
176
 
172
177
  **Subcommands:**
173
178
 
174
- - `evaluate batch <file> [-m <metrics>]` Batch evaluation from TSV file
179
+ - `evaluate batch "file" [-m "metrics"]` Batch evaluation from TSV file
175
180
 
176
181
  ```
177
182
  > eval -s "Hello" -h "Hola" -r "Hola"
@@ -184,21 +189,20 @@ $ prompsit evaluate metrics -s "Hello" -h "Hola" -r "Hola" -m "bleu,chrf,metricx
184
189
 
185
190
  ### Data Processing
186
191
 
187
- #### `data` \<subcommand> \<file> [options]
192
+ #### `data` subcommand "file" [options]
188
193
 
189
194
  Process parallel corpora and monolingual data.
190
195
 
191
196
  **Subcommands:**
192
197
 
193
- - `data annotate "<file>" --lang "<code>" [--output "<path>"]` Annotate monolingual data
194
- - `data score "<file>" [--target "<path>"] [--format "<fmt>"] [--output "<path>"]` Score parallel corpus
198
+ - `data annotate "file" --lang "code" [--output "path"]` Annotate monolingual data
199
+ - `data score "file" [--target "path"] [--format "fmt"] [--output "path"]` Score parallel corpus
195
200
 
196
201
  ```
197
- > data annotate "corpus.jsonl" -l "eng_Latn"
198
- > data score "corpus.tmx"
199
- $ prompsit data annotate "corpus.jsonl" -l "eng_Latn"
200
- $ prompsit data score "corpus.tmx"
201
- $ prompsit data score "source.txt" -t "target.txt"
202
+ > data annotate "~/.prompsit/examples/sample.jsonl" -l "eng_Latn"
203
+ > data score "~/.prompsit/examples/sample.tmx"
204
+ $ prompsit data annotate "~/.prompsit/examples/sample.jsonl" -l "eng_Latn"
205
+ $ prompsit data score "~/.prompsit/examples/sample.tmx"
202
206
  ```
203
207
 
204
208
  ---
@@ -221,7 +225,6 @@ $ prompsit formats
221
225
  | Command | Description |
222
226
  |---------|-------------|
223
227
  | `health` | API health check |
224
- | `verbose` / `terse` | Enable/disable verbose HTTP output |
225
228
  | `help` | Show all commands (also: `?`) |
226
229
  | `clear` | Clear screen |
227
230
  | `exit` | Quit CLI (also: `quit`, `q`) |
@@ -236,8 +239,8 @@ Config file: `~/.prompsit/config.toml` | Env override: `PROMPSIT_<SECTION>__<KEY
236
239
  |-----|-------------|---------|-------------|
237
240
  | `api.base_url` | `config api-url` | `https://edge.prompsit.com` | API endpoint |
238
241
  | `api.timeout` | - | `30` | HTTP read timeout (sec) |
239
- | `cli.language` | `language <code>` | `en` | Interface language |
240
- | `cli.log_level` | `config set log-level <val>` | `INFO` | Log level |
242
+ | `cli.language` | `language "code"` | `en` | Interface language |
243
+ | `cli.log_level` | `config set log-level "val"` | `INFO` | Log level |
241
244
 
242
245
  ## Data Directory: `~/.prompsit/`
243
246
 
@@ -247,8 +250,15 @@ Config file: `~/.prompsit/config.toml` | Env override: `PROMPSIT_<SECTION>__<KEY
247
250
  | `credentials.json` | OAuth2 tokens |
248
251
  | `history` | REPL command history |
249
252
  | `translations/{lang}.json` | Interface translation cache |
250
- | `examples/sample.txt` | Bundled example: text file |
251
- | `examples/sample.tmx` | Bundled example: TMX corpus |
253
+ | `examples/sample.txt` | Bundled example: plain text file |
254
+ | `examples/sample.tmx` | Bundled example: TMX parallel corpus |
255
+ | `examples/sample.jsonl` | Bundled example: JSONL monolingual corpus |
256
+ | `examples/sample.xliff` | Bundled example: XLIFF 1.2 translation file |
257
+ | `examples/sample.csv` | Bundled example: CSV tabular data |
258
+
259
+ ## Troubleshooting
260
+
261
+ See [docs/project/runbook.md](docs/project/runbook.md) for setup issues, common errors, and fixes.
252
262
 
253
263
  ## License
254
264
 
@@ -1,5 +1,5 @@
1
1
  import type { Method, Options as GotOptions } from "got";
2
- import type { HttpTransport } from "./transport.ts";
2
+ import type { HttpTransport, RawResponse } from "./transport.ts";
3
3
  import { AuthResource } from "./resources/auth.ts";
4
4
  /**
5
5
  * Authenticated HTTP session with automatic token refresh.
@@ -18,19 +18,19 @@ export declare class AuthSession {
18
18
  private readonly authResource;
19
19
  private refreshPromise;
20
20
  constructor(transport: HttpTransport, authResource: AuthResource);
21
+ /** Make authenticated JSON request with auto-refresh. */
22
+ request<T>(method: Method, url: string, options?: Partial<GotOptions>, signal?: AbortSignal): Promise<T>;
23
+ /** Make authenticated request returning raw buffer + headers. */
24
+ requestRaw(method: Method, url: string, options?: Partial<GotOptions>, signal?: AbortSignal): Promise<RawResponse>;
25
+ /** Stream authenticated response directly to file on disk. */
26
+ requestToFile(method: Method, url: string, outputPath: string, options?: Partial<GotOptions>, signal?: AbortSignal): Promise<string>;
21
27
  /**
22
- * Make authenticated request with auto-refresh.
23
- *
24
- * Flow: public fallback -> proactive refresh -> request -> reactive 401 retry
28
+ * Auth wrapper: public fallback -> proactive refresh -> execute -> reactive 401 retry.
25
29
  *
26
- * @param method - HTTP method
27
- * @param url - Request URL
28
- * @param options - Got request options
29
- * @returns Response body (JSON parsed)
30
- * @throws AuthenticationError if not authenticated or refresh fails
31
- * @throws NetworkError if API unreachable
30
+ * Generic over return type — works for JSON (request), buffer (requestRaw),
31
+ * and file streaming (requestToFile).
32
32
  */
33
- request<T>(method: Method, url: string, options?: Partial<GotOptions>, signal?: AbortSignal): Promise<T>;
33
+ private withAuth;
34
34
  /**
35
35
  * Attempt token refresh using refresh token.
36
36
  *
@@ -1 +1 @@
1
- {"version":3,"file":"auth-session.d.ts","sourceRoot":"","sources":["../../src/api/auth-session.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,KAAK,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAWnD;;;;;;;;;;;GAWG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;IAC1C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAE5C,OAAO,CAAC,cAAc,CAAiC;gBAE3C,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY;IAKhE;;;;;;;;;;;OAWG;IACG,OAAO,CAAC,CAAC,EACb,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,OAAO,CAAC,UAAU,CAAM,EACjC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,CAAC,CAAC;IAkCb;;;;;;;;;OASG;IACH,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;YAShB,UAAU;CAiCzB"}
1
+ {"version":3,"file":"auth-session.d.ts","sourceRoot":"","sources":["../../src/api/auth-session.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,KAAK,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAWnD;;;;;;;;;;;GAWG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;IAC1C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAE5C,OAAO,CAAC,cAAc,CAAiC;gBAE3C,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY;IAKhE,yDAAyD;IACnD,OAAO,CAAC,CAAC,EACb,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,OAAO,CAAC,UAAU,CAAM,EACjC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,CAAC,CAAC;IAOb,iEAAiE;IAC3D,UAAU,CACd,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,OAAO,CAAC,UAAU,CAAM,EACjC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,WAAW,CAAC;IAOvB,8DAA8D;IACxD,aAAa,CACjB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,OAAO,CAAC,UAAU,CAAM,EACjC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,MAAM,CAAC;IAQlB;;;;;OAKG;YACW,QAAQ;IAmCtB;;;;;;;;;OASG;IACH,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;YAShB,UAAU;CAiCzB"}
@@ -25,24 +25,28 @@ export class AuthSession {
25
25
  this.transport = transport;
26
26
  this.authResource = authResource;
27
27
  }
28
+ /** Make authenticated JSON request with auto-refresh. */
29
+ async request(method, url, options = {}, signal) {
30
+ return this.withAuth((publicFlag, sig) => this.transport.request(method, url, options, publicFlag, sig), signal);
31
+ }
32
+ /** Make authenticated request returning raw buffer + headers. */
33
+ async requestRaw(method, url, options = {}, signal) {
34
+ return this.withAuth((publicFlag, sig) => this.transport.requestRaw(method, url, options, publicFlag, sig), signal);
35
+ }
36
+ /** Stream authenticated response directly to file on disk. */
37
+ async requestToFile(method, url, outputPath, options = {}, signal) {
38
+ return this.withAuth((publicFlag, sig) => this.transport.requestToFile(method, url, outputPath, options, publicFlag, sig), signal);
39
+ }
28
40
  /**
29
- * Make authenticated request with auto-refresh.
30
- *
31
- * Flow: public fallback -> proactive refresh -> request -> reactive 401 retry
41
+ * Auth wrapper: public fallback -> proactive refresh -> execute -> reactive 401 retry.
32
42
  *
33
- * @param method - HTTP method
34
- * @param url - Request URL
35
- * @param options - Got request options
36
- * @returns Response body (JSON parsed)
37
- * @throws AuthenticationError if not authenticated or refresh fails
38
- * @throws NetworkError if API unreachable
43
+ * Generic over return type — works for JSON (request), buffer (requestRaw),
44
+ * and file streaming (requestToFile).
39
45
  */
40
- async request(method, url, options = {}, signal) {
41
- // 1. No token — send without auth header; let API decide (public vs protected).
42
- // Public endpoints (engines, formats) succeed; protected ones return 401
43
- // which transport classifies as AuthenticationError.
46
+ async withAuth(fn, signal) {
47
+ // 1. No token — send without auth header; let API decide (public vs protected)
44
48
  if (!isAuthenticated()) {
45
- return await this.transport.request(method, url, options, true, signal);
49
+ return await fn(true, signal);
46
50
  }
47
51
  // 2. Proactive refresh: if token expired, refresh before request
48
52
  if (isTokenExpired()) {
@@ -52,16 +56,16 @@ export class AuthSession {
52
56
  throw new AuthenticationError("Session expired. Run: prompsit login");
53
57
  }
54
58
  }
55
- // 3. Execute request with auth client
59
+ // 3. Execute with auth
56
60
  try {
57
- return await this.transport.request(method, url, options, false, signal);
61
+ return await fn(false, signal);
58
62
  }
59
63
  catch (error) {
60
64
  // 4. Reactive refresh: on 401, refresh once and retry
61
65
  if (error instanceof AuthenticationError) {
62
66
  const refreshed = await this.tryRefresh();
63
67
  if (refreshed) {
64
- return await this.transport.request(method, url, options, false, signal);
68
+ return await fn(false, signal);
65
69
  }
66
70
  clearTokens();
67
71
  throw new AuthenticationError("Authentication failed. Run: prompsit login");
@@ -1 +1 @@
1
- {"version":3,"file":"auth-session.js","sourceRoot":"","sources":["../../src/api/auth-session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth-session.js","sourceRoot":"","sources":["../../src/api/auth-session.ts"],"names":[],"mappings":"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"}
@@ -3,8 +3,8 @@ import { AuthResource } from "./resources/auth.ts";
3
3
  import { HealthResource } from "./resources/health.ts";
4
4
  import { TranslationResource } from "./resources/translation.ts";
5
5
  import { EvaluationResource } from "./resources/evaluation.ts";
6
- import { EnginesResource } from "./resources/engines.ts";
7
- import { FormatsResource } from "./resources/formats.ts";
6
+ import { LanguagesResource } from "./resources/languages.ts";
7
+ import { DiscoveryResource } from "./resources/discovery.ts";
8
8
  import { JobsResource } from "./resources/jobs.ts";
9
9
  import { DataResource } from "./resources/data.ts";
10
10
  /**
@@ -21,8 +21,8 @@ export declare class APIClient {
21
21
  readonly health: HealthResource;
22
22
  readonly translation: TranslationResource;
23
23
  readonly evaluation: EvaluationResource;
24
- readonly engines: EnginesResource;
25
- readonly formats: FormatsResource;
24
+ readonly languages: LanguagesResource;
25
+ readonly discovery: DiscoveryResource;
26
26
  readonly jobs: JobsResource;
27
27
  readonly data: DataResource;
28
28
  constructor();
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD;;;;;GAKG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;IAC1C,SAAgB,OAAO,EAAE,MAAM,CAAC;IAChC,SAAgB,IAAI,EAAE,YAAY,CAAC;IACnC,SAAgB,OAAO,EAAE,WAAW,CAAC;IACrC,SAAgB,MAAM,EAAE,cAAc,CAAC;IACvC,SAAgB,WAAW,EAAE,mBAAmB,CAAC;IACjD,SAAgB,UAAU,EAAE,kBAAkB,CAAC;IAC/C,SAAgB,OAAO,EAAE,eAAe,CAAC;IACzC,SAAgB,OAAO,EAAE,eAAe,CAAC;IACzC,SAAgB,IAAI,EAAE,YAAY,CAAC;IACnC,SAAgB,IAAI,EAAE,YAAY,CAAC;;IAgBnC;;OAEG;IACH,SAAS,IAAI,IAAI;IAIjB;;OAEG;IACH,KAAK,IAAI,IAAI;CAGd;AAKD;;GAEG;AACH,wBAAgB,YAAY,IAAI,SAAS,CAGxC;AAED;;;GAGG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAKrC"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD;;;;;GAKG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;IAC1C,SAAgB,OAAO,EAAE,MAAM,CAAC;IAChC,SAAgB,IAAI,EAAE,YAAY,CAAC;IACnC,SAAgB,OAAO,EAAE,WAAW,CAAC;IACrC,SAAgB,MAAM,EAAE,cAAc,CAAC;IACvC,SAAgB,WAAW,EAAE,mBAAmB,CAAC;IACjD,SAAgB,UAAU,EAAE,kBAAkB,CAAC;IAC/C,SAAgB,SAAS,EAAE,iBAAiB,CAAC;IAC7C,SAAgB,SAAS,EAAE,iBAAiB,CAAC;IAC7C,SAAgB,IAAI,EAAE,YAAY,CAAC;IACnC,SAAgB,IAAI,EAAE,YAAY,CAAC;;IAgBnC;;OAEG;IACH,SAAS,IAAI,IAAI;IAIjB;;OAEG;IACH,KAAK,IAAI,IAAI;CAGd;AAKD;;GAEG;AACH,wBAAgB,YAAY,IAAI,SAAS,CAGxC;AAED;;;GAGG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAKrC"}
@@ -1,14 +1,14 @@
1
1
  // See API-448, API-469, API-477, API-484, API-490, API-496: API Client facade with singleton pattern
2
2
  // Composes resource instances over shared HttpTransport.
3
- // Pattern: Module-level singleton with explicit invalidation (Python get_api_client port).
3
+ // Pattern: Module-level singleton with explicit invalidation.
4
4
  import { HttpTransport } from "./transport.js";
5
5
  import { AuthSession } from "./auth-session.js";
6
6
  import { AuthResource } from "./resources/auth.js";
7
7
  import { HealthResource } from "./resources/health.js";
8
8
  import { TranslationResource } from "./resources/translation.js";
9
9
  import { EvaluationResource } from "./resources/evaluation.js";
10
- import { EnginesResource } from "./resources/engines.js";
11
- import { FormatsResource } from "./resources/formats.js";
10
+ import { LanguagesResource } from "./resources/languages.js";
11
+ import { DiscoveryResource } from "./resources/discovery.js";
12
12
  import { JobsResource } from "./resources/jobs.js";
13
13
  import { DataResource } from "./resources/data.js";
14
14
  import { getSettings } from "../config/settings.js";
@@ -26,20 +26,20 @@ export class APIClient {
26
26
  health;
27
27
  translation;
28
28
  evaluation;
29
- engines;
30
- formats;
29
+ languages;
30
+ discovery;
31
31
  jobs;
32
32
  data;
33
33
  constructor() {
34
- this.baseUrl = getSettings().api.base_url.replace(/\/+$/, "");
34
+ this.baseUrl = getSettings().api.base_url.replace(/\/{1,100}$/, "");
35
35
  this.transport = new HttpTransport();
36
36
  this.auth = new AuthResource(this.transport, this.baseUrl);
37
37
  this.session = new AuthSession(this.transport, this.auth);
38
38
  this.health = new HealthResource(this.transport, this.baseUrl);
39
39
  this.translation = new TranslationResource(this.session, this.baseUrl);
40
40
  this.evaluation = new EvaluationResource(this.session, this.baseUrl);
41
- this.engines = new EnginesResource(this.session, this.baseUrl);
42
- this.formats = new FormatsResource(this.session, this.baseUrl);
41
+ this.languages = new LanguagesResource(this.session, this.baseUrl);
42
+ this.discovery = new DiscoveryResource(this.session, this.baseUrl);
43
43
  this.jobs = new JobsResource(this.session, this.baseUrl);
44
44
  this.data = new DataResource(this.session, this.baseUrl);
45
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import type { Options as GotOptions } from "got";
2
+ /**
3
+ * Set the output function for curl display.
4
+ * Callback receives sanitized curl (for display) and raw curl (for clipboard copy).
5
+ */
6
+ export declare function setCurlOutputFn(fn: ((sanitized: string, raw: string) => void) | null): void;
7
+ /**
8
+ * Check if curl display is enabled.
9
+ */
10
+ export declare function isCurlEnabled(): boolean;
11
+ /**
12
+ * Enable or disable curl display.
13
+ */
14
+ export declare function setCurlEnabled(enabled: boolean): void;
15
+ /**
16
+ * Convert got request options to a curl command string.
17
+ *
18
+ * Includes method, URL, headers (except SKIP_HEADERS), and body.
19
+ * Pretty-formats JSON body for readability.
20
+ */
21
+ export declare function buildCurl(options: GotOptions): string;
22
+ /**
23
+ * Remove sensitive data from curl string for display.
24
+ *
25
+ * - Replaces Bearer tokens with [token]
26
+ * - Hides password/secret/refresh_token/access_token values
27
+ */
28
+ export declare function sanitizeCurl(curl: string): string;
29
+ export declare function logCurl(options: GotOptions): void;
30
+ //# sourceMappingURL=curl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"curl.d.ts","sourceRoot":"","sources":["../../src/api/curl.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,KAAK,CAAC;AASjD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAE3F;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAEvC;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAErD;AAaD;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAqCrD;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAiBjD;AAWD,wBAAgB,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,CAWjD"}
@@ -0,0 +1,115 @@
1
+ // See API-444: Curl command output for API requests
2
+ // Shows API requests as curl commands for --debug flag and show_curl setting.
3
+ // Layer: Infrastructure. Output is injected via setCurlOutputFn() callback.
4
+ // Module-level curl display state
5
+ let curlEnabled = false;
6
+ // Injectable output callback: (sanitized, raw) => void
7
+ // CLI mode displays sanitized only; REPL stores both for panel + clipboard.
8
+ let outputFn = null;
9
+ /**
10
+ * Set the output function for curl display.
11
+ * Callback receives sanitized curl (for display) and raw curl (for clipboard copy).
12
+ */
13
+ export function setCurlOutputFn(fn) {
14
+ outputFn = fn;
15
+ }
16
+ /**
17
+ * Check if curl display is enabled.
18
+ */
19
+ export function isCurlEnabled() {
20
+ return curlEnabled;
21
+ }
22
+ /**
23
+ * Enable or disable curl display.
24
+ */
25
+ export function setCurlEnabled(enabled) {
26
+ curlEnabled = enabled;
27
+ }
28
+ // Headers to skip in curl output (standard HTTP headers added by got/Node)
29
+ const SKIP_HEADERS = new Set([
30
+ "host",
31
+ "user-agent",
32
+ "accept",
33
+ "accept-encoding",
34
+ "connection",
35
+ "content-length",
36
+ "transfer-encoding",
37
+ ]);
38
+ /**
39
+ * Convert got request options to a curl command string.
40
+ *
41
+ * Includes method, URL, headers (except SKIP_HEADERS), and body.
42
+ * Pretty-formats JSON body for readability.
43
+ */
44
+ export function buildCurl(options) {
45
+ const method = options.method;
46
+ const url = typeof options.url === "string" ? options.url : (options.url?.toString() ?? "");
47
+ const parts = [`curl -X ${method} '${url}'`];
48
+ // Add headers (skip standard ones)
49
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- got types say headers is defined, but runtime can be undefined
50
+ const headers = options.headers ?? {};
51
+ for (const [key, value] of Object.entries(headers)) {
52
+ if (SKIP_HEADERS.has(key.toLowerCase())) {
53
+ continue;
54
+ }
55
+ const headerValue = Array.isArray(value) ? value.join(", ") : (value ?? "");
56
+ parts.push(` -H '${key}: ${headerValue}'`);
57
+ }
58
+ // Add body
59
+ if (options.json) {
60
+ const body = JSON.stringify(options.json);
61
+ parts.push(` -d '${body}'`);
62
+ }
63
+ else if (options.form) {
64
+ const formData = new URLSearchParams(options.form).toString();
65
+ parts.push(` -H 'Content-Type: application/x-www-form-urlencoded'`, ` -d '${formData}'`);
66
+ }
67
+ else if (options.body) {
68
+ const body = typeof options.body === "string" ? options.body : JSON.stringify(options.body);
69
+ // Try to pretty-format JSON
70
+ try {
71
+ const parsed = JSON.parse(body);
72
+ const formatted = JSON.stringify(parsed);
73
+ parts.push(` -d '${formatted}'`);
74
+ }
75
+ catch {
76
+ parts.push(` -d '${body}'`);
77
+ }
78
+ }
79
+ return parts.join("\n");
80
+ }
81
+ /**
82
+ * Remove sensitive data from curl string for display.
83
+ *
84
+ * - Replaces Bearer tokens with [token]
85
+ * - Hides password/secret/refresh_token/access_token values
86
+ */
87
+ export function sanitizeCurl(curl) {
88
+ // Replace Bearer tokens
89
+ let result = curl.replaceAll(/(Bearer )\S+/g, "$1[token]");
90
+ // Hide sensitive query params and form data
91
+ result = result.replaceAll(/((?:refresh_token|password|access_token|secret)=)[^&'\s]{1,1000}/g, "$1[hidden]");
92
+ // Hide sensitive JSON body fields: "key": "value" or "key":"value"
93
+ result = result.replaceAll(/("(?:password|secret|token|(?:access_|refresh_)token)":\s{0,100}")[^"]{0,10000}"/g, '$1[hidden]"');
94
+ return result;
95
+ }
96
+ /**
97
+ * Log curl for got request (called from got hooks).
98
+ *
99
+ * Builds both raw and sanitized curl, passes both to outputFn.
100
+ * Raw version contains real tokens (for clipboard), sanitized has [token] (for display).
101
+ */
102
+ /** URL paths to exclude from curl output (internal/service requests). */
103
+ const SKIP_URLS = ["/v1/auth/token", "/v1/jobs/"];
104
+ export function logCurl(options) {
105
+ if (!curlEnabled || !outputFn) {
106
+ return;
107
+ }
108
+ const url = typeof options.url === "string" ? options.url : (options.url?.toString() ?? "");
109
+ if (SKIP_URLS.some((path) => url.includes(path)))
110
+ return;
111
+ const raw = buildCurl(options);
112
+ const sanitized = sanitizeCurl(raw);
113
+ outputFn(sanitized, raw);
114
+ }
115
+ //# sourceMappingURL=curl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"curl.js","sourceRoot":"","sources":["../../src/api/curl.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
- import { APIError, AuthenticationError, CancelledError, ForbiddenError, JobError, NetworkError, ProblemDetailSchema, RateLimitError, ServerError, ValidationError, type ProblemDetail } from "../errors/contracts.ts";
2
- export { APIError, AuthenticationError, CancelledError, ForbiddenError, JobError, NetworkError, ProblemDetailSchema, RateLimitError, ServerError, ValidationError, };
3
- export type { ProblemDetail };
1
+ import { APIError } from "../errors/contracts.ts";
4
2
  export declare function parseApiError(responseData: unknown, statusCode: number): APIError;
3
+ export { CancelledError, NetworkError, APIError, AuthenticationError, RateLimitError, ServerError, } from "../errors/contracts.ts";
5
4
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/api/errors.ts"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,EACR,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,mBAAmB,EACnB,cAAc,EACd,WAAW,EACX,eAAe,EACf,KAAK,aAAa,EACnB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,QAAQ,EACR,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,mBAAmB,EACnB,cAAc,EACd,WAAW,EACX,eAAe,GAChB,CAAC;AACF,YAAY,EAAE,aAAa,EAAE,CAAC;AAI9B,wBAAgB,aAAa,CAAC,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,QAAQ,CA4EjF"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/api/errors.ts"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,EAOT,MAAM,wBAAwB,CAAC;AAQhC,wBAAgB,aAAa,CAAC,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,QAAQ,CA4EjF;AAcD,OAAO,EACL,cAAc,EACd,YAAY,EACZ,QAAQ,EACR,mBAAmB,EACnB,cAAc,EACd,WAAW,GACZ,MAAM,wBAAwB,CAAC"}
@@ -1,7 +1,8 @@
1
1
  // See API-442: Error hierarchy with codes & RFC 9457 ProblemDetail
2
- import { APIError, AuthenticationError, CancelledError, ForbiddenError, JobError, NetworkError, ProblemDetailSchema, RateLimitError, ServerError, ValidationError, } from "../errors/contracts.js";
2
+ import { APIError, AuthenticationError, ForbiddenError, ProblemDetailSchema, RateLimitError, ServerError, ValidationError, } from "../errors/contracts.js";
3
3
  import { HttpStatus } from "../constants.js";
4
- export { APIError, AuthenticationError, CancelledError, ForbiddenError, JobError, NetworkError, ProblemDetailSchema, RateLimitError, ServerError, ValidationError, };
4
+ // Re-export only symbols that external consumers actually import.
5
+ // ForbiddenError, ValidationError, ProblemDetailSchema are used internally by parseApiError().
5
6
  // Parse API response and return appropriate exception
6
7
  // Supports RFC 9457 ProblemDetail format with fallback payload normalization.
7
8
  export function parseApiError(responseData, statusCode) {
@@ -70,4 +71,5 @@ function mapStatusToError(statusCode, message) {
70
71
  return new ServerError(message, statusCode);
71
72
  return new APIError(message, `E${statusCode}`, statusCode);
72
73
  }
74
+ export { CancelledError, NetworkError, APIError, AuthenticationError, RateLimitError, ServerError, } from "../errors/contracts.js";
73
75
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/api/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/api/errors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /** Build auth headers object from current token (empty object if not authenticated). */
2
+ export declare function getAuthHeaders(): Record<string, string>;
3
+ /** Extract filename from Content-Disposition header value. Returns null if not found. */
4
+ export declare function parseContentDispositionFilename(header: string | undefined): string | null;
5
+ //# sourceMappingURL=http-utils.d.ts.map