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.
- package/README.md +51 -41
- package/dist/api/auth-session.d.ts +11 -11
- package/dist/api/auth-session.d.ts.map +1 -1
- package/dist/api/auth-session.js +21 -17
- package/dist/api/auth-session.js.map +1 -1
- package/dist/api/client.d.ts +4 -4
- package/dist/api/client.d.ts.map +1 -1
- package/dist/api/client.js +8 -8
- package/dist/api/client.js.map +1 -1
- package/dist/api/curl.d.ts +30 -0
- package/dist/api/curl.d.ts.map +1 -0
- package/dist/api/curl.js +115 -0
- package/dist/api/curl.js.map +1 -0
- package/dist/api/errors.d.ts +2 -3
- package/dist/api/errors.d.ts.map +1 -1
- package/dist/api/errors.js +4 -2
- package/dist/api/errors.js.map +1 -1
- package/dist/api/http-utils.d.ts +5 -0
- package/dist/api/http-utils.d.ts.map +1 -0
- package/dist/api/http-utils.js +19 -0
- package/dist/api/http-utils.js.map +1 -0
- package/dist/api/models.d.ts +135 -89
- package/dist/api/models.d.ts.map +1 -1
- package/dist/api/models.js +62 -72
- package/dist/api/models.js.map +1 -1
- package/dist/api/resources/data.d.ts +3 -5
- package/dist/api/resources/data.d.ts.map +1 -1
- package/dist/api/resources/data.js +11 -12
- package/dist/api/resources/data.js.map +1 -1
- package/dist/api/resources/discovery.d.ts +26 -0
- package/dist/api/resources/discovery.d.ts.map +1 -0
- package/dist/api/resources/discovery.js +46 -0
- package/dist/api/resources/discovery.js.map +1 -0
- package/dist/api/resources/evaluation.d.ts +9 -12
- package/dist/api/resources/evaluation.d.ts.map +1 -1
- package/dist/api/resources/evaluation.js +45 -20
- package/dist/api/resources/evaluation.js.map +1 -1
- package/dist/api/resources/formats.d.ts +1 -1
- package/dist/api/resources/formats.js +2 -2
- package/dist/api/resources/formats.js.map +1 -1
- package/dist/api/resources/jobs.d.ts +7 -8
- package/dist/api/resources/jobs.d.ts.map +1 -1
- package/dist/api/resources/jobs.js +10 -49
- package/dist/api/resources/jobs.js.map +1 -1
- package/dist/api/resources/languages.d.ts +25 -0
- package/dist/api/resources/languages.d.ts.map +1 -0
- package/dist/api/resources/languages.js +44 -0
- package/dist/api/resources/languages.js.map +1 -0
- package/dist/api/resources/translation.d.ts +8 -16
- package/dist/api/resources/translation.d.ts.map +1 -1
- package/dist/api/resources/translation.js +11 -15
- package/dist/api/resources/translation.js.map +1 -1
- package/dist/api/sse-client.d.ts +10 -16
- package/dist/api/sse-client.d.ts.map +1 -1
- package/dist/api/sse-client.js +158 -197
- package/dist/api/sse-client.js.map +1 -1
- package/dist/api/sse-models.js +1 -1
- package/dist/api/sse-models.js.map +1 -1
- package/dist/api/trace.js +1 -1
- package/dist/api/trace.js.map +1 -1
- package/dist/api/transport.d.ts +28 -1
- package/dist/api/transport.d.ts.map +1 -1
- package/dist/api/transport.js +89 -17
- package/dist/api/transport.js.map +1 -1
- package/dist/api/verbose.d.ts +2 -8
- package/dist/api/verbose.d.ts.map +1 -1
- package/dist/api/verbose.js +13 -8
- package/dist/api/verbose.js.map +1 -1
- package/dist/cli/arg-order.d.ts +2 -0
- package/dist/cli/arg-order.d.ts.map +1 -1
- package/dist/cli/arg-order.js +2 -0
- package/dist/cli/arg-order.js.map +1 -1
- package/dist/cli/exit-codes.d.ts +0 -2
- package/dist/cli/exit-codes.d.ts.map +1 -1
- package/dist/cli/exit-codes.js +0 -2
- package/dist/cli/exit-codes.js.map +1 -1
- package/dist/cli/exit.d.ts +4 -4
- package/dist/cli/exit.d.ts.map +1 -1
- package/dist/cli/exit.js +4 -4
- package/dist/cli/exit.js.map +1 -1
- package/dist/cli/options.js +2 -2
- package/dist/cli/options.js.map +1 -1
- package/dist/cli/prompts.d.ts +0 -2
- package/dist/cli/prompts.d.ts.map +1 -1
- package/dist/cli/prompts.js +1 -1
- package/dist/cli/prompts.js.map +1 -1
- package/dist/commands/auth.d.ts.map +1 -1
- package/dist/commands/auth.js +5 -6
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/batch-processor.d.ts +38 -0
- package/dist/commands/batch-processor.d.ts.map +1 -0
- package/dist/commands/batch-processor.js +73 -0
- package/dist/commands/batch-processor.js.map +1 -0
- package/dist/commands/config/api-url.d.ts.map +1 -1
- package/dist/commands/config/api-url.js +9 -5
- package/dist/commands/config/api-url.js.map +1 -1
- package/dist/commands/config/command.d.ts.map +1 -1
- package/dist/commands/config/command.js +3 -2
- package/dist/commands/config/command.js.map +1 -1
- package/dist/commands/config/language.d.ts.map +1 -1
- package/dist/commands/config/language.js +10 -16
- package/dist/commands/config/language.js.map +1 -1
- package/dist/commands/config/reset.d.ts.map +1 -1
- package/dist/commands/config/reset.js +4 -3
- package/dist/commands/config/reset.js.map +1 -1
- package/dist/commands/config/shared.d.ts.map +1 -1
- package/dist/commands/config/shared.js +5 -4
- package/dist/commands/config/shared.js.map +1 -1
- package/dist/commands/config/show.d.ts.map +1 -1
- package/dist/commands/config/show.js +0 -13
- package/dist/commands/config/show.js.map +1 -1
- package/dist/commands/data.d.ts.map +1 -1
- package/dist/commands/data.js +241 -68
- package/dist/commands/data.js.map +1 -1
- package/dist/commands/evaluate.d.ts.map +1 -1
- package/dist/commands/evaluate.js +111 -29
- package/dist/commands/evaluate.js.map +1 -1
- package/dist/commands/formats.d.ts +1 -1
- package/dist/commands/formats.d.ts.map +1 -1
- package/dist/commands/formats.js +5 -12
- package/dist/commands/formats.js.map +1 -1
- package/dist/commands/health.d.ts +1 -1
- package/dist/commands/health.d.ts.map +1 -1
- package/dist/commands/health.js +3 -10
- package/dist/commands/health.js.map +1 -1
- package/dist/commands/job-tracking.d.ts +13 -5
- package/dist/commands/job-tracking.d.ts.map +1 -1
- package/dist/commands/job-tracking.js +25 -18
- package/dist/commands/job-tracking.js.map +1 -1
- package/dist/commands/languages.d.ts +12 -0
- package/dist/commands/languages.d.ts.map +1 -0
- package/dist/commands/languages.js +48 -0
- package/dist/commands/languages.js.map +1 -0
- package/dist/commands/mappers.d.ts +15 -3
- package/dist/commands/mappers.d.ts.map +1 -1
- package/dist/commands/mappers.js +38 -18
- package/dist/commands/mappers.js.map +1 -1
- package/dist/commands/progress-animator.d.ts +2 -1
- package/dist/commands/progress-animator.d.ts.map +1 -1
- package/dist/commands/progress-animator.js +4 -2
- package/dist/commands/progress-animator.js.map +1 -1
- package/dist/commands/translate.d.ts.map +1 -1
- package/dist/commands/translate.js +151 -93
- package/dist/commands/translate.js.map +1 -1
- package/dist/config/credentials.d.ts +11 -87
- package/dist/config/credentials.d.ts.map +1 -1
- package/dist/config/credentials.js +28 -87
- package/dist/config/credentials.js.map +1 -1
- package/dist/config/env-parser.d.ts.map +1 -1
- package/dist/config/env-parser.js +3 -2
- package/dist/config/env-parser.js.map +1 -1
- package/dist/config/file-utils.js +1 -1
- package/dist/config/file-utils.js.map +1 -1
- package/dist/config/index.d.ts +4 -7
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +6 -12
- package/dist/config/index.js.map +1 -1
- package/dist/config/schemas.d.ts +4 -27
- package/dist/config/schemas.d.ts.map +1 -1
- package/dist/config/schemas.js +14 -16
- package/dist/config/schemas.js.map +1 -1
- package/dist/config/settings.d.ts +4 -4
- package/dist/config/settings.d.ts.map +1 -1
- package/dist/config/settings.js +16 -21
- package/dist/config/settings.js.map +1 -1
- package/dist/config/toml-io.js +1 -1
- package/dist/config/toml-io.js.map +1 -1
- package/dist/constants.d.ts +10 -9
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +10 -9
- package/dist/constants.js.map +1 -1
- package/dist/errors/catalog.d.ts.map +1 -1
- package/dist/errors/catalog.js +6 -8
- package/dist/errors/catalog.js.map +1 -1
- package/dist/errors/contracts.d.ts.map +1 -1
- package/dist/errors/contracts.js +2 -3
- package/dist/errors/contracts.js.map +1 -1
- package/dist/i18n/cache.d.ts +0 -2
- package/dist/i18n/cache.d.ts.map +1 -1
- package/dist/i18n/cache.js +5 -5
- package/dist/i18n/cache.js.map +1 -1
- package/dist/i18n/catalog.d.ts +67 -33
- package/dist/i18n/catalog.d.ts.map +1 -1
- package/dist/i18n/catalog.js +73 -36
- package/dist/i18n/catalog.js.map +1 -1
- package/dist/i18n/index.d.ts +3 -1
- package/dist/i18n/index.d.ts.map +1 -1
- package/dist/i18n/index.js +9 -2
- package/dist/i18n/index.js.map +1 -1
- package/dist/i18n/translator-adapter.d.ts +3 -0
- package/dist/i18n/translator-adapter.d.ts.map +1 -0
- package/dist/i18n/translator-adapter.js +12 -0
- package/dist/i18n/translator-adapter.js.map +1 -0
- package/dist/i18n/translator.d.ts.map +1 -1
- package/dist/i18n/translator.js +1 -0
- package/dist/i18n/translator.js.map +1 -1
- package/dist/index.d.ts +1 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -3
- package/dist/index.js.map +1 -1
- package/dist/logging/console-handler.js +1 -1
- package/dist/logging/console-handler.js.map +1 -1
- package/dist/logging/file-handler.d.ts.map +1 -1
- package/dist/logging/file-handler.js +4 -5
- package/dist/logging/file-handler.js.map +1 -1
- package/dist/logging/index.d.ts +2 -2
- package/dist/logging/index.d.ts.map +1 -1
- package/dist/logging/index.js +1 -1
- package/dist/logging/index.js.map +1 -1
- package/dist/logging/logger.d.ts +18 -22
- package/dist/logging/logger.d.ts.map +1 -1
- package/dist/logging/logger.js +38 -64
- package/dist/logging/logger.js.map +1 -1
- package/dist/logging/loki-handler.js +1 -1
- package/dist/logging/loki-handler.js.map +1 -1
- package/dist/logging/setup.d.ts +4 -3
- package/dist/logging/setup.d.ts.map +1 -1
- package/dist/logging/setup.js +136 -33
- package/dist/logging/setup.js.map +1 -1
- package/dist/output/ansi-utils.d.ts +13 -0
- package/dist/output/ansi-utils.d.ts.map +1 -0
- package/dist/output/ansi-utils.js +37 -0
- package/dist/output/ansi-utils.js.map +1 -0
- package/dist/output/index.d.ts +2 -5
- package/dist/output/index.d.ts.map +1 -1
- package/dist/output/index.js +3 -2
- package/dist/output/index.js.map +1 -1
- package/dist/output/output-events.d.ts +0 -1
- package/dist/output/output-events.d.ts.map +1 -1
- package/dist/output/tables/catalog.d.ts +5 -2
- package/dist/output/tables/catalog.d.ts.map +1 -1
- package/dist/output/tables/catalog.js +65 -9
- package/dist/output/tables/catalog.js.map +1 -1
- package/dist/output/tables/evaluation.d.ts.map +1 -1
- package/dist/output/tables/evaluation.js +3 -0
- package/dist/output/tables/evaluation.js.map +1 -1
- package/dist/output/tables/health-status.d.ts +1 -1
- package/dist/output/tables/health-status.d.ts.map +1 -1
- package/dist/output/tables/health-status.js +15 -19
- package/dist/output/tables/health-status.js.map +1 -1
- package/dist/output/tables/index.d.ts +3 -3
- package/dist/output/tables/index.d.ts.map +1 -1
- package/dist/output/tables/index.js +2 -2
- package/dist/output/tables/index.js.map +1 -1
- package/dist/output/tables/render.d.ts.map +1 -1
- package/dist/output/tables/render.js +2 -10
- package/dist/output/tables/render.js.map +1 -1
- package/dist/output/terminal.d.ts +1 -5
- package/dist/output/terminal.d.ts.map +1 -1
- package/dist/output/terminal.js +25 -24
- package/dist/output/terminal.js.map +1 -1
- package/dist/output/view-models.d.ts +28 -2
- package/dist/output/view-models.d.ts.map +1 -1
- package/dist/program.d.ts.map +1 -1
- package/dist/program.js +21 -29
- package/dist/program.js.map +1 -1
- package/dist/repl/controller.d.ts +3 -4
- package/dist/repl/controller.d.ts.map +1 -1
- package/dist/repl/controller.js +122 -168
- package/dist/repl/controller.js.map +1 -1
- package/dist/repl/core/output-bridge.d.ts.map +1 -1
- package/dist/repl/core/output-bridge.js +6 -4
- package/dist/repl/core/output-bridge.js.map +1 -1
- package/dist/repl/core/progress-types.d.ts +1 -1
- package/dist/repl/core/progress-types.d.ts.map +1 -1
- package/dist/repl/core/progress-types.js +1 -1
- package/dist/repl/core/progress-types.js.map +1 -1
- package/dist/repl/examples.d.ts +0 -2
- package/dist/repl/examples.d.ts.map +1 -1
- package/dist/repl/examples.js +9 -3
- package/dist/repl/examples.js.map +1 -1
- package/dist/repl/executor.d.ts +2 -4
- package/dist/repl/executor.d.ts.map +1 -1
- package/dist/repl/executor.js +78 -50
- package/dist/repl/executor.js.map +1 -1
- package/dist/repl/help.d.ts +10 -3
- package/dist/repl/help.d.ts.map +1 -1
- package/dist/repl/help.js +37 -10
- package/dist/repl/help.js.map +1 -1
- package/dist/repl/history/command-history.js +5 -5
- package/dist/repl/history/command-history.js.map +1 -1
- package/dist/repl/history/output-render.d.ts +1 -3
- package/dist/repl/history/output-render.d.ts.map +1 -1
- package/dist/repl/history/output-render.js +4 -6
- package/dist/repl/history/output-render.js.map +1 -1
- package/dist/repl/history/output-store.d.ts.map +1 -1
- package/dist/repl/history/output-store.js +6 -3
- package/dist/repl/history/output-store.js.map +1 -1
- package/dist/repl/input/autocomplete-provider.d.ts.map +1 -1
- package/dist/repl/input/autocomplete-provider.js +1 -2
- package/dist/repl/input/autocomplete-provider.js.map +1 -1
- package/dist/repl/input/completer.d.ts +0 -2
- package/dist/repl/input/completer.d.ts.map +1 -1
- package/dist/repl/input/completer.js +9 -7
- package/dist/repl/input/completer.js.map +1 -1
- package/dist/repl/input/ghost-text.d.ts +1 -1
- package/dist/repl/input/ghost-text.d.ts.map +1 -1
- package/dist/repl/input/ghost-text.js +1 -1
- package/dist/repl/input/ghost-text.js.map +1 -1
- package/dist/repl/input/input-handler.d.ts +34 -0
- package/dist/repl/input/input-handler.d.ts.map +1 -0
- package/dist/repl/input/input-handler.js +115 -0
- package/dist/repl/input/input-handler.js.map +1 -0
- package/dist/repl/input/keybindings.d.ts +0 -5
- package/dist/repl/input/keybindings.d.ts.map +1 -1
- package/dist/repl/input/keybindings.js +0 -65
- package/dist/repl/input/keybindings.js.map +1 -1
- package/dist/repl/loop.d.ts +1 -2
- package/dist/repl/loop.d.ts.map +1 -1
- package/dist/repl/loop.js +36 -11
- package/dist/repl/loop.js.map +1 -1
- package/dist/repl/registry.d.ts +31 -23
- package/dist/repl/registry.d.ts.map +1 -1
- package/dist/repl/registry.js +255 -188
- package/dist/repl/registry.js.map +1 -1
- package/dist/repl/service.d.ts +1 -10
- package/dist/repl/service.d.ts.map +1 -1
- package/dist/repl/service.js +15 -26
- package/dist/repl/service.js.map +1 -1
- package/dist/repl/ui/components/curl-panel.d.ts +6 -0
- package/dist/repl/ui/components/curl-panel.d.ts.map +1 -0
- package/dist/repl/ui/components/curl-panel.js +37 -0
- package/dist/repl/ui/components/curl-panel.js.map +1 -0
- package/dist/repl/ui/components/ghost-text-editor.d.ts +4 -0
- package/dist/repl/ui/components/ghost-text-editor.d.ts.map +1 -1
- package/dist/repl/ui/components/ghost-text-editor.js +17 -6
- package/dist/repl/ui/components/ghost-text-editor.js.map +1 -1
- package/dist/repl/ui/components/history-component.d.ts.map +1 -1
- package/dist/repl/ui/components/history-component.js +7 -69
- package/dist/repl/ui/components/history-component.js.map +1 -1
- package/dist/repl/ui/components/progress-bar.js.map +1 -1
- package/dist/repl/ui/components/status-bar-line.d.ts +6 -0
- package/dist/repl/ui/components/status-bar-line.d.ts.map +1 -0
- package/dist/repl/ui/components/status-bar-line.js +12 -0
- package/dist/repl/ui/components/status-bar-line.js.map +1 -0
- package/dist/repl/ui/curl-store.d.ts +9 -0
- package/dist/repl/ui/curl-store.d.ts.map +1 -0
- package/dist/repl/ui/curl-store.js +24 -0
- package/dist/repl/ui/curl-store.js.map +1 -0
- package/dist/repl/ui/data.d.ts +2 -0
- package/dist/repl/ui/data.d.ts.map +1 -1
- package/dist/repl/ui/data.js +5 -3
- package/dist/repl/ui/data.js.map +1 -1
- package/dist/repl/ui/hint-state.d.ts +2 -1
- package/dist/repl/ui/hint-state.d.ts.map +1 -1
- package/dist/repl/ui/hint-state.js +18 -1
- package/dist/repl/ui/hint-state.js.map +1 -1
- package/dist/repl/ui/progress-controller.d.ts +17 -0
- package/dist/repl/ui/progress-controller.d.ts.map +1 -0
- package/dist/repl/ui/progress-controller.js +68 -0
- package/dist/repl/ui/progress-controller.js.map +1 -0
- package/dist/repl/ui/selection-utils.d.ts +28 -0
- package/dist/repl/ui/selection-utils.d.ts.map +1 -0
- package/dist/repl/ui/selection-utils.js +70 -0
- package/dist/repl/ui/selection-utils.js.map +1 -0
- package/dist/repl/ui/status-bar.d.ts +1 -4
- package/dist/repl/ui/status-bar.d.ts.map +1 -1
- package/dist/repl/ui/status-bar.js +7 -34
- package/dist/repl/ui/status-bar.js.map +1 -1
- package/dist/runtime/async-utils.d.ts +16 -0
- package/dist/runtime/async-utils.d.ts.map +1 -0
- package/dist/runtime/async-utils.js +40 -0
- package/dist/runtime/async-utils.js.map +1 -0
- package/dist/runtime/clipboard-win32.d.ts.map +1 -1
- package/dist/runtime/clipboard-win32.js +2 -1
- package/dist/runtime/clipboard-win32.js.map +1 -1
- package/dist/runtime/clipboard.d.ts.map +1 -1
- package/dist/runtime/clipboard.js +6 -2
- package/dist/runtime/clipboard.js.map +1 -1
- package/dist/runtime/external-transport.d.ts.map +1 -1
- package/dist/runtime/external-transport.js +1 -1
- package/dist/runtime/external-transport.js.map +1 -1
- package/dist/runtime/file-args.d.ts +38 -0
- package/dist/runtime/file-args.d.ts.map +1 -0
- package/dist/runtime/file-args.js +133 -0
- package/dist/runtime/file-args.js.map +1 -0
- package/dist/runtime/platform.d.ts +0 -2
- package/dist/runtime/platform.d.ts.map +1 -1
- package/dist/runtime/platform.js +0 -6
- package/dist/runtime/platform.js.map +1 -1
- package/dist/tui/settings-screen.d.ts +1 -1
- package/dist/tui/settings-screen.d.ts.map +1 -1
- package/dist/tui/settings-screen.js +94 -68
- package/dist/tui/settings-screen.js.map +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +3 -2
- package/dist/version.js.map +1 -1
- package/examples/sample.csv +4 -0
- package/examples/sample.jsonl +3 -0
- package/examples/sample.tmx +6 -0
- package/examples/sample.xliff +19 -0
- package/examples/sample_scored.tmx +37 -37
- 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.
|
|
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 "
|
|
81
|
-
- `config "
|
|
82
|
-
- `config api-url ["
|
|
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
|
|
110
|
+
#### `translate` "text" --source "lang" --target "lang" [--qe]
|
|
108
111
|
|
|
109
112
|
Translate text. Aliases: `t`
|
|
110
113
|
|
|
111
|
-
- `-s, --source
|
|
112
|
-
- `-t, --target
|
|
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" "
|
|
123
|
+
$ prompsit translate "Hello" "Good morning" "Thank you" -s "en" -t "es"
|
|
122
124
|
```
|
|
123
125
|
|
|
124
|
-
#### `tf` "file..." --source
|
|
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
|
|
129
|
-
- `-t, --target
|
|
130
|
-
- `-o, --output
|
|
131
|
-
- `--output-format
|
|
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 "
|
|
135
|
-
> tf "
|
|
136
|
-
> tf "
|
|
137
|
-
|
|
138
|
-
$ prompsit translate file "
|
|
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
|
|
150
|
+
#### `engines` [--source "lang"] [--target "lang"]
|
|
146
151
|
|
|
147
152
|
List available translation engines.
|
|
148
153
|
|
|
149
|
-
- `-s, --source
|
|
150
|
-
- `-t, --target
|
|
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
|
|
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
|
|
175
|
+
- `-m, --metrics "metrics"` Comma-separated: bleu,chrf,metricx (default: bleu,chrf)
|
|
171
176
|
|
|
172
177
|
**Subcommands:**
|
|
173
178
|
|
|
174
|
-
- `evaluate batch
|
|
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`
|
|
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 "
|
|
194
|
-
- `data score "
|
|
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 "
|
|
198
|
-
> data score "
|
|
199
|
-
$ prompsit data annotate "
|
|
200
|
-
$ prompsit data score "
|
|
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
|
|
240
|
-
| `cli.log_level` | `config set 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
|
-
*
|
|
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
|
-
*
|
|
27
|
-
*
|
|
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
|
-
|
|
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;
|
|
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"}
|
package/dist/api/auth-session.js
CHANGED
|
@@ -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
|
-
*
|
|
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
|
-
*
|
|
34
|
-
*
|
|
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
|
|
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
|
|
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
|
|
59
|
+
// 3. Execute with auth
|
|
56
60
|
try {
|
|
57
|
-
return await
|
|
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
|
|
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":"AAAA,oEAAoE;AACpE,qFAAqF;AACrF,iFAAiF;AAIjF,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,EACL,eAAe,EACf,YAAY,EACZ,UAAU,EACV,WAAW,EACX,eAAe,EACf,cAAc,GACf,MAAM,0BAA0B,CAAC;AAElC;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,WAAW;IACL,SAAS,CAAgB;IACzB,YAAY,CAAe;IAC5C,oGAAoG;IAC5F,cAAc,GAA4B,IAAI,CAAC;IAEvD,YAAY,SAAwB,EAAE,YAA0B;QAC9D,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"auth-session.js","sourceRoot":"","sources":["../../src/api/auth-session.ts"],"names":[],"mappings":"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"}
|
package/dist/api/client.d.ts
CHANGED
|
@@ -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 {
|
|
7
|
-
import {
|
|
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
|
|
25
|
-
readonly
|
|
24
|
+
readonly languages: LanguagesResource;
|
|
25
|
+
readonly discovery: DiscoveryResource;
|
|
26
26
|
readonly jobs: JobsResource;
|
|
27
27
|
readonly data: DataResource;
|
|
28
28
|
constructor();
|
package/dist/api/client.d.ts.map
CHANGED
|
@@ -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,
|
|
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"}
|
package/dist/api/client.js
CHANGED
|
@@ -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
|
|
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 {
|
|
11
|
-
import {
|
|
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
|
-
|
|
30
|
-
|
|
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.
|
|
42
|
-
this.
|
|
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
|
}
|
package/dist/api/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAAA,qGAAqG;AACrG,yDAAyD;AACzD,
|
|
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"}
|
package/dist/api/curl.js
ADDED
|
@@ -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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"}
|
package/dist/api/errors.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { APIError
|
|
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
|
package/dist/api/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/api/errors.ts"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,
|
|
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"}
|
package/dist/api/errors.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
// See API-442: Error hierarchy with codes & RFC 9457 ProblemDetail
|
|
2
|
-
import { APIError, AuthenticationError,
|
|
2
|
+
import { APIError, AuthenticationError, ForbiddenError, ProblemDetailSchema, RateLimitError, ServerError, ValidationError, } from "../errors/contracts.js";
|
|
3
3
|
import { HttpStatus } from "../constants.js";
|
|
4
|
-
export
|
|
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
|
package/dist/api/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/api/errors.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,OAAO,EACL,QAAQ,EACR,mBAAmB,EACnB,cAAc,EACd,
|
|
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
|