prompsit-cli 26.307.1516 → 26.311.1358
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 +280 -274
- package/dist/api/client.d.ts +2 -0
- package/dist/api/client.d.ts.map +1 -1
- package/dist/api/client.js +3 -0
- package/dist/api/client.js.map +1 -1
- package/dist/api/errors.d.ts.map +1 -1
- package/dist/api/errors.js +8 -1
- package/dist/api/errors.js.map +1 -1
- package/dist/api/models.d.ts +50 -0
- package/dist/api/models.d.ts.map +1 -1
- package/dist/api/models.js +36 -0
- package/dist/api/models.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/user.d.ts +22 -0
- package/dist/api/resources/user.d.ts.map +1 -0
- package/dist/api/resources/user.js +30 -0
- package/dist/api/resources/user.js.map +1 -0
- package/dist/api/verbose.d.ts +8 -2
- package/dist/api/verbose.d.ts.map +1 -1
- package/dist/api/verbose.js +8 -13
- package/dist/api/verbose.js.map +1 -1
- package/dist/api/warmup-retry.d.ts +15 -0
- package/dist/api/warmup-retry.d.ts.map +1 -0
- package/dist/api/warmup-retry.js +79 -0
- package/dist/api/warmup-retry.js.map +1 -0
- package/dist/cli/options.js +2 -2
- package/dist/cli/options.js.map +1 -1
- package/dist/commands/annotate.d.ts.map +1 -1
- package/dist/commands/annotate.js +8 -1
- package/dist/commands/annotate.js.map +1 -1
- package/dist/commands/evaluate.d.ts.map +1 -1
- package/dist/commands/evaluate.js +20 -3
- 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 +12 -5
- package/dist/commands/formats.js.map +1 -1
- package/dist/commands/mappers.d.ts +4 -2
- package/dist/commands/mappers.d.ts.map +1 -1
- package/dist/commands/mappers.js +11 -0
- package/dist/commands/mappers.js.map +1 -1
- package/dist/commands/score.d.ts.map +1 -1
- package/dist/commands/score.js +14 -2
- package/dist/commands/score.js.map +1 -1
- package/dist/commands/translate.d.ts.map +1 -1
- package/dist/commands/translate.js +7 -1
- package/dist/commands/translate.js.map +1 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +1 -7
- package/dist/commands/update.js.map +1 -1
- package/dist/commands/usage.d.ts +8 -0
- package/dist/commands/usage.d.ts.map +1 -0
- package/dist/commands/usage.js +39 -0
- package/dist/commands/usage.js.map +1 -0
- package/dist/config/schemas.d.ts +2 -0
- package/dist/config/schemas.d.ts.map +1 -1
- package/dist/config/schemas.js +1 -0
- package/dist/config/schemas.js.map +1 -1
- package/dist/constants.d.ts +17 -10
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +18 -10
- package/dist/constants.js.map +1 -1
- package/dist/i18n/catalog.d.ts +7 -0
- package/dist/i18n/catalog.d.ts.map +1 -1
- package/dist/i18n/catalog.js +9 -0
- package/dist/i18n/catalog.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 +5 -4
- package/dist/logging/file-handler.js.map +1 -1
- package/dist/output/index.d.ts +1 -0
- package/dist/output/index.d.ts.map +1 -1
- package/dist/output/index.js +1 -0
- package/dist/output/index.js.map +1 -1
- package/dist/output/usage-display.d.ts +14 -0
- package/dist/output/usage-display.d.ts.map +1 -0
- package/dist/output/usage-display.js +57 -0
- package/dist/output/usage-display.js.map +1 -0
- package/dist/output/view-models.d.ts +9 -0
- package/dist/output/view-models.d.ts.map +1 -1
- package/dist/program.d.ts.map +1 -1
- package/dist/program.js +4 -1
- package/dist/program.js.map +1 -1
- package/dist/repl/registry.d.ts.map +1 -1
- package/dist/repl/registry.js +11 -3
- package/dist/repl/registry.js.map +1 -1
- package/dist/runtime/progress-adapters.d.ts +1 -1
- package/dist/runtime/progress-adapters.d.ts.map +1 -1
- package/dist/shared/constants.d.ts +1 -0
- package/dist/shared/constants.d.ts.map +1 -1
- package/dist/shared/constants.js +1 -0
- package/dist/shared/constants.js.map +1 -1
- package/dist/update/version.d.ts +0 -5
- package/dist/update/version.d.ts.map +1 -1
- package/dist/update/version.js +3 -19
- package/dist/update/version.js.map +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +2 -3
- package/dist/version.js.map +1 -1
- package/package.json +1 -1
- package/dist/api/http-utils.d.ts +0 -5
- package/dist/api/http-utils.d.ts.map +0 -1
- package/dist/api/http-utils.js +0 -19
- package/dist/api/http-utils.js.map +0 -1
- package/dist/commands/config.d.ts +0 -8
- package/dist/commands/config.d.ts.map +0 -1
- package/dist/commands/config.js +0 -331
- package/dist/commands/config.js.map +0 -1
- package/dist/commands/languages.d.ts +0 -12
- package/dist/commands/languages.d.ts.map +0 -1
- package/dist/commands/languages.js +0 -48
- package/dist/commands/languages.js.map +0 -1
- package/dist/i18n/translator-adapter.d.ts +0 -3
- package/dist/i18n/translator-adapter.d.ts.map +0 -1
- package/dist/i18n/translator-adapter.js +0 -12
- package/dist/i18n/translator-adapter.js.map +0 -1
- package/dist/output/console.d.ts +0 -77
- package/dist/output/console.d.ts.map +0 -1
- package/dist/output/console.js +0 -128
- package/dist/output/console.js.map +0 -1
- package/dist/output/tables.d.ts +0 -52
- package/dist/output/tables.d.ts.map +0 -1
- package/dist/output/tables.js +0 -448
- package/dist/output/tables.js.map +0 -1
- package/dist/repl/App.d.ts +0 -6
- package/dist/repl/App.d.ts.map +0 -1
- package/dist/repl/App.js +0 -216
- package/dist/repl/App.js.map +0 -1
- package/dist/repl/components/ControllableTextInput.d.ts +0 -12
- package/dist/repl/components/ControllableTextInput.d.ts.map +0 -1
- package/dist/repl/components/ControllableTextInput.js +0 -102
- package/dist/repl/components/ControllableTextInput.js.map +0 -1
- package/dist/repl/components/HistoryRow.d.ts +0 -8
- package/dist/repl/components/HistoryRow.d.ts.map +0 -1
- package/dist/repl/components/HistoryRow.js +0 -40
- package/dist/repl/components/HistoryRow.js.map +0 -1
- package/dist/repl/components/ProgressIndicator.d.ts +0 -10
- package/dist/repl/components/ProgressIndicator.d.ts.map +0 -1
- package/dist/repl/components/ProgressIndicator.js +0 -39
- package/dist/repl/components/ProgressIndicator.js.map +0 -1
- package/dist/repl/components/Separator.d.ts +0 -5
- package/dist/repl/components/Separator.d.ts.map +0 -1
- package/dist/repl/components/Separator.js +0 -9
- package/dist/repl/components/Separator.js.map +0 -1
- package/dist/repl/hooks.d.ts +0 -9
- package/dist/repl/hooks.d.ts.map +0 -1
- package/dist/repl/hooks.js +0 -29
- package/dist/repl/hooks.js.map +0 -1
- package/dist/repl/plugins/manager.d.ts +0 -22
- package/dist/repl/plugins/manager.d.ts.map +0 -1
- package/dist/repl/plugins/manager.js +0 -111
- package/dist/repl/plugins/manager.js.map +0 -1
- package/dist/repl/plugins/types.d.ts +0 -33
- package/dist/repl/plugins/types.d.ts.map +0 -1
- package/dist/repl/plugins/types.js +0 -3
- package/dist/repl/plugins/types.js.map +0 -1
- package/dist/repl/progress-context.d.ts +0 -14
- package/dist/repl/progress-context.d.ts.map +0 -1
- package/dist/repl/progress-context.js +0 -15
- package/dist/repl/progress-context.js.map +0 -1
- package/dist/repl/ui-state.d.ts +0 -9
- package/dist/repl/ui-state.d.ts.map +0 -1
- package/dist/repl/ui-state.js +0 -16
- package/dist/repl/ui-state.js.map +0 -1
- package/dist/runtime/external-transport.d.ts +0 -12
- package/dist/runtime/external-transport.d.ts.map +0 -1
- package/dist/runtime/external-transport.js +0 -59
- package/dist/runtime/external-transport.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,274 +1,280 @@
|
|
|
1
|
-
# Prompsit CLI
|
|
2
|
-
|
|
3
|
-
[](https://www.npmjs.com/package/prompsit-cli)
|
|
4
|
-
[](https://www.npmjs.com/package/prompsit-cli)
|
|
5
|
-
[](https://nodejs.org/)
|
|
6
|
-
|
|
7
|
-
CLI for the Prompsit Translation API. Translate text and documents, evaluate quality, score parallel corpora, and annotate monolingual data.
|
|
8
|
-
|
|
9
|
-
## Requirements
|
|
10
|
-
|
|
11
|
-
[Node.js](https://nodejs.org/) 22+
|
|
12
|
-
|
|
13
|
-
```bash
|
|
14
|
-
node -v # Should print v22.x or higher
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
## Install
|
|
18
|
-
|
|
19
|
-
```bash
|
|
20
|
-
npm install -g prompsit-cli
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
**Update:** `npm install -g prompsit-cli@latest --prefer-online`
|
|
24
|
-
**Uninstall:** `npm uninstall -g prompsit-cli`
|
|
25
|
-
|
|
26
|
-
<details>
|
|
27
|
-
<summary>Command not found after install?</summary>
|
|
28
|
-
|
|
29
|
-
```bash
|
|
30
|
-
# Check global npm bin is on PATH
|
|
31
|
-
echo "$PATH" | tr ':' '\n' | grep '.npm-global/bin'
|
|
32
|
-
command -v prompsit
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
</details>
|
|
36
|
-
|
|
37
|
-
## Usage
|
|
38
|
-
|
|
39
|
-
Run `prompsit` to enter interactive REPL with tab completion.
|
|
40
|
-
|
|
41
|
-
```bash
|
|
42
|
-
prompsit # Enter interactive REPL
|
|
43
|
-
prompsit translate "Hello" -s "en" -t "es" # Run single command
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
> **Quoting rule:** All values must be quoted. Commands, subcommands, and flags stay unquoted.
|
|
47
|
-
|
|
48
|
-
## Commands
|
|
49
|
-
|
|
50
|
-
### Authentication
|
|
51
|
-
|
|
52
|
-
#### `login` --account "EMAIL" --secret "SECRET"
|
|
53
|
-
|
|
54
|
-
Authenticate with the Prompsit API.
|
|
55
|
-
|
|
56
|
-
- `-a, --account "EMAIL"` Account email
|
|
57
|
-
- `-s, --secret "SECRET"` API secret
|
|
58
|
-
|
|
59
|
-
```
|
|
60
|
-
$ prompsit login # Open contact page
|
|
61
|
-
$ prompsit login -a "EMAIL" -s "SECRET" # Login with credentials
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
#### `logout`
|
|
65
|
-
|
|
66
|
-
Clear stored credentials (`~/.prompsit/credentials.json`).
|
|
67
|
-
|
|
68
|
-
#### `status`
|
|
69
|
-
|
|
70
|
-
Show auth state, plan type, and token expiry.
|
|
71
|
-
|
|
72
|
-
---
|
|
73
|
-
|
|
74
|
-
### Configuration
|
|
75
|
-
|
|
76
|
-
#### `config` [subcommand|key] [value]
|
|
77
|
-
|
|
78
|
-
Interactive TUI settings screen, or manage config via subcommands.
|
|
79
|
-
|
|
80
|
-
**Subcommands:**
|
|
81
|
-
|
|
82
|
-
- `config show` Show current configuration
|
|
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
|
|
86
|
-
- `config reset [--force]` Reset to defaults
|
|
87
|
-
- `config path` Show config file path
|
|
88
|
-
|
|
89
|
-
```
|
|
90
|
-
> config show
|
|
91
|
-
> config "api-base-url"
|
|
92
|
-
> config "api-base-url" "https://my-server.com"
|
|
93
|
-
> config api-url "test"
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
#### `language` [code]
|
|
97
|
-
|
|
98
|
-
Set interface language.
|
|
99
|
-
|
|
100
|
-
```
|
|
101
|
-
> language "es"
|
|
102
|
-
$ prompsit language "en"
|
|
103
|
-
$ prompsit config language
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
---
|
|
107
|
-
|
|
108
|
-
### Translation
|
|
109
|
-
|
|
110
|
-
#### `translate` "text" --source "lang" --target "lang" [--qe]
|
|
111
|
-
|
|
112
|
-
Translate text. Aliases: `t`
|
|
113
|
-
|
|
114
|
-
- `-s, --source "lang"` Source language code
|
|
115
|
-
- `-t, --target "lang"` Target language code
|
|
116
|
-
- `--qe` Enable quality estimation score
|
|
117
|
-
|
|
118
|
-
```
|
|
119
|
-
> "Hello world" -s "en" -t "es"
|
|
120
|
-
> "Hello" "Good morning" "Thank you" -s "en" -t "es"
|
|
121
|
-
> t "Hello" -s "en" -t "es" --qe
|
|
122
|
-
$ prompsit translate "Hello world" -s "en" -t "es"
|
|
123
|
-
$ prompsit translate "Hello" "Good morning" "Thank you" -s "en" -t "es"
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
#### `translate` @"file..." --source "lang" --target "lang" [--out "dir"] [--output-format "fmt"]
|
|
127
|
-
|
|
128
|
-
Translate files (XLIFF, CSV, PDF, DOCX, etc.). Use `@` prefix for file mode. Alias: `t`
|
|
129
|
-
|
|
130
|
-
- `-s, --source "lang"` Source language code
|
|
131
|
-
- `-t, --target "lang"` Target language code
|
|
132
|
-
- `--out "dir"` Output directory (default: beside input file)
|
|
133
|
-
- `--output-format "fmt"` Output format (e.g. docx)
|
|
134
|
-
|
|
135
|
-
```
|
|
136
|
-
> t @"~/.prompsit/examples/translate/sample.xliff" -s "en" -t "es"
|
|
137
|
-
> t @"~/.prompsit/examples/translate/sample.txt" @"~/.prompsit/examples/translate/sample.csv" -s "en" -t "es"
|
|
138
|
-
> t @"~/.prompsit/examples/translate/sample.csv" -s "en" -t "es" --out "./translated/"
|
|
139
|
-
> t @"report.pdf" -s "en" -t "es" --output-format "docx"
|
|
140
|
-
$ prompsit translate @"~/.prompsit/examples/translate/sample.xliff" -s "en" -t "es"
|
|
141
|
-
$ prompsit translate @"~/.prompsit/examples/translate/sample.csv" -s "en" -t "es" --out "./translated/"
|
|
142
|
-
$ prompsit translate @"report.pdf" -s "en" -t "es" --output-format "docx"
|
|
143
|
-
$ prompsit translate @"manual.md" @"notes.md" -s "en" -t "es" --output-format "docx"
|
|
144
|
-
```
|
|
145
|
-
|
|
146
|
-
---
|
|
147
|
-
|
|
148
|
-
### Engines
|
|
149
|
-
|
|
150
|
-
#### `engines` [--source "lang"] [--target "lang"]
|
|
151
|
-
|
|
152
|
-
List available translation engines.
|
|
153
|
-
|
|
154
|
-
- `-s, --source "lang"` Filter by source language
|
|
155
|
-
- `-t, --target "lang"` Filter by target language
|
|
156
|
-
|
|
157
|
-
```
|
|
158
|
-
> engines
|
|
159
|
-
> engines -s "en" -t "es"
|
|
160
|
-
$ prompsit engines
|
|
161
|
-
$ prompsit engines -s "en" -t "es"
|
|
162
|
-
```
|
|
163
|
-
|
|
164
|
-
---
|
|
165
|
-
|
|
166
|
-
### Quality Evaluation
|
|
167
|
-
|
|
168
|
-
#### `eval` --source "src" --hypothesis "hyp" --reference "ref" [--metrics "metrics"]
|
|
169
|
-
|
|
170
|
-
Evaluate translation quality with automatic metrics (inline mode). Alias: `e`
|
|
171
|
-
|
|
172
|
-
- `-s, --source "src"` Source text
|
|
173
|
-
- `-h, --hypothesis "hyp"` Machine translation (hypothesis)
|
|
174
|
-
- `-r, --reference "ref"` Reference translation
|
|
175
|
-
- `-m, --metrics "metrics"` Comma-separated: bleu,chrf,metricx (default: bleu,chrf)
|
|
176
|
-
|
|
177
|
-
#### `eval` "file" [--metrics "metrics"]
|
|
178
|
-
|
|
179
|
-
Batch evaluation from TSV file.
|
|
180
|
-
|
|
181
|
-
#### `eval` @"file" [options]
|
|
182
|
-
|
|
183
|
-
File scoring mode. Use `@` prefix.
|
|
184
|
-
|
|
185
|
-
```
|
|
186
|
-
> eval -s "Hello" -h "Hola" -r "Hola"
|
|
187
|
-
> eval -s "Hello" -h "Hola" -r "Hola" -m "bleu,chrf,metricx"
|
|
188
|
-
> eval "segments.tsv" -m "bleu,chrf"
|
|
189
|
-
> eval @"report.txt" -s "en" -t "es"
|
|
190
|
-
$ prompsit eval -s "Hello" -h "Hola" -r "Hola"
|
|
191
|
-
$ prompsit eval -s "Hello" -h "Hola" -r "Hola" -m "bleu,chrf,metricx"
|
|
192
|
-
```
|
|
193
|
-
|
|
194
|
-
---
|
|
195
|
-
|
|
196
|
-
### Data Processing
|
|
197
|
-
|
|
198
|
-
#### `score` "file" [options]
|
|
199
|
-
|
|
200
|
-
Compute translation likelihood scores with Bicleaner-AI.
|
|
201
|
-
|
|
202
|
-
```
|
|
203
|
-
> score "~/.prompsit/examples/score/sample.tmx"
|
|
204
|
-
> score "corpus.tsv" --output-format "tsv" --out "results/"
|
|
205
|
-
$ prompsit score "corpus.tmx" --out "results/"
|
|
206
|
-
```
|
|
207
|
-
|
|
208
|
-
#### `annotate` "file" --lang "code" [options]
|
|
209
|
-
|
|
210
|
-
Annotate monolingual documents with metadata using Monotextor.
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
```
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
|
258
|
-
|
|
259
|
-
| `
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
|
264
|
-
|
|
265
|
-
| `
|
|
266
|
-
| `
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
1
|
+
# Prompsit CLI
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/prompsit-cli)
|
|
4
|
+
[](https://www.npmjs.com/package/prompsit-cli)
|
|
5
|
+
[](https://nodejs.org/)
|
|
6
|
+
|
|
7
|
+
CLI for the Prompsit Translation API. Translate text and documents, evaluate quality, score parallel corpora, and annotate monolingual data.
|
|
8
|
+
|
|
9
|
+
## Requirements
|
|
10
|
+
|
|
11
|
+
[Node.js](https://nodejs.org/) 22+
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
node -v # Should print v22.x or higher
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Install
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
npm install -g prompsit-cli
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
**Update:** `npm install -g prompsit-cli@latest --prefer-online`
|
|
24
|
+
**Uninstall:** `npm uninstall -g prompsit-cli`
|
|
25
|
+
|
|
26
|
+
<details>
|
|
27
|
+
<summary>Command not found after install?</summary>
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
# Check global npm bin is on PATH
|
|
31
|
+
echo "$PATH" | tr ':' '\n' | grep '.npm-global/bin'
|
|
32
|
+
command -v prompsit
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
</details>
|
|
36
|
+
|
|
37
|
+
## Usage
|
|
38
|
+
|
|
39
|
+
Run `prompsit` to enter interactive REPL with tab completion.
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
prompsit # Enter interactive REPL
|
|
43
|
+
prompsit translate "Hello" -s "en" -t "es" # Run single command
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
> **Quoting rule:** All values must be quoted. Commands, subcommands, and flags stay unquoted.
|
|
47
|
+
|
|
48
|
+
## Commands
|
|
49
|
+
|
|
50
|
+
### Authentication
|
|
51
|
+
|
|
52
|
+
#### `login` --account "EMAIL" --secret "SECRET"
|
|
53
|
+
|
|
54
|
+
Authenticate with the Prompsit API.
|
|
55
|
+
|
|
56
|
+
- `-a, --account "EMAIL"` Account email
|
|
57
|
+
- `-s, --secret "SECRET"` API secret
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
$ prompsit login # Open contact page
|
|
61
|
+
$ prompsit login -a "EMAIL" -s "SECRET" # Login with credentials
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
#### `logout`
|
|
65
|
+
|
|
66
|
+
Clear stored credentials (`~/.prompsit/credentials.json`).
|
|
67
|
+
|
|
68
|
+
#### `status`
|
|
69
|
+
|
|
70
|
+
Show auth state, plan type, and token expiry.
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
### Configuration
|
|
75
|
+
|
|
76
|
+
#### `config` [subcommand|key] [value]
|
|
77
|
+
|
|
78
|
+
Interactive TUI settings screen, or manage config via subcommands.
|
|
79
|
+
|
|
80
|
+
**Subcommands:**
|
|
81
|
+
|
|
82
|
+
- `config show` Show current configuration
|
|
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
|
|
86
|
+
- `config reset [--force]` Reset to defaults
|
|
87
|
+
- `config path` Show config file path
|
|
88
|
+
|
|
89
|
+
```
|
|
90
|
+
> config show
|
|
91
|
+
> config "api-base-url"
|
|
92
|
+
> config "api-base-url" "https://my-server.com"
|
|
93
|
+
> config api-url "test"
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
#### `language` [code]
|
|
97
|
+
|
|
98
|
+
Set interface language.
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
> language "es"
|
|
102
|
+
$ prompsit language "en"
|
|
103
|
+
$ prompsit config language
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
### Translation
|
|
109
|
+
|
|
110
|
+
#### `translate` "text" --source "lang" --target "lang" [--qe]
|
|
111
|
+
|
|
112
|
+
Translate text. Aliases: `t`
|
|
113
|
+
|
|
114
|
+
- `-s, --source "lang"` Source language code
|
|
115
|
+
- `-t, --target "lang"` Target language code
|
|
116
|
+
- `--qe` Enable quality estimation score
|
|
117
|
+
|
|
118
|
+
```
|
|
119
|
+
> "Hello world" -s "en" -t "es"
|
|
120
|
+
> "Hello" "Good morning" "Thank you" -s "en" -t "es"
|
|
121
|
+
> t "Hello" -s "en" -t "es" --qe
|
|
122
|
+
$ prompsit translate "Hello world" -s "en" -t "es"
|
|
123
|
+
$ prompsit translate "Hello" "Good morning" "Thank you" -s "en" -t "es"
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
#### `translate` @"file..." --source "lang" --target "lang" [--out "dir"] [--output-format "fmt"]
|
|
127
|
+
|
|
128
|
+
Translate files (XLIFF, CSV, PDF, DOCX, etc.). Use `@` prefix for file mode. Alias: `t`
|
|
129
|
+
|
|
130
|
+
- `-s, --source "lang"` Source language code
|
|
131
|
+
- `-t, --target "lang"` Target language code
|
|
132
|
+
- `--out "dir"` Output directory (default: beside input file)
|
|
133
|
+
- `--output-format "fmt"` Output format (e.g. docx)
|
|
134
|
+
|
|
135
|
+
```
|
|
136
|
+
> t @"~/.prompsit/examples/translate/sample.xliff" -s "en" -t "es"
|
|
137
|
+
> t @"~/.prompsit/examples/translate/sample.txt" @"~/.prompsit/examples/translate/sample.csv" -s "en" -t "es"
|
|
138
|
+
> t @"~/.prompsit/examples/translate/sample.csv" -s "en" -t "es" --out "./translated/"
|
|
139
|
+
> t @"report.pdf" -s "en" -t "es" --output-format "docx"
|
|
140
|
+
$ prompsit translate @"~/.prompsit/examples/translate/sample.xliff" -s "en" -t "es"
|
|
141
|
+
$ prompsit translate @"~/.prompsit/examples/translate/sample.csv" -s "en" -t "es" --out "./translated/"
|
|
142
|
+
$ prompsit translate @"report.pdf" -s "en" -t "es" --output-format "docx"
|
|
143
|
+
$ prompsit translate @"manual.md" @"notes.md" -s "en" -t "es" --output-format "docx"
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
### Engines
|
|
149
|
+
|
|
150
|
+
#### `engines` [--source "lang"] [--target "lang"]
|
|
151
|
+
|
|
152
|
+
List available translation engines.
|
|
153
|
+
|
|
154
|
+
- `-s, --source "lang"` Filter by source language
|
|
155
|
+
- `-t, --target "lang"` Filter by target language
|
|
156
|
+
|
|
157
|
+
```
|
|
158
|
+
> engines
|
|
159
|
+
> engines -s "en" -t "es"
|
|
160
|
+
$ prompsit engines
|
|
161
|
+
$ prompsit engines -s "en" -t "es"
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
### Quality Evaluation
|
|
167
|
+
|
|
168
|
+
#### `eval` --source "src" --hypothesis "hyp" --reference "ref" [--metrics "metrics"]
|
|
169
|
+
|
|
170
|
+
Evaluate translation quality with automatic metrics (inline mode). Alias: `e`
|
|
171
|
+
|
|
172
|
+
- `-s, --source "src"` Source text
|
|
173
|
+
- `-h, --hypothesis "hyp"` Machine translation (hypothesis)
|
|
174
|
+
- `-r, --reference "ref"` Reference translation
|
|
175
|
+
- `-m, --metrics "metrics"` Comma-separated: bleu,chrf,metricx (default: bleu,chrf)
|
|
176
|
+
|
|
177
|
+
#### `eval` "file" [--metrics "metrics"]
|
|
178
|
+
|
|
179
|
+
Batch evaluation from TSV file.
|
|
180
|
+
|
|
181
|
+
#### `eval` @"file" [options]
|
|
182
|
+
|
|
183
|
+
File scoring mode. Use `@` prefix.
|
|
184
|
+
|
|
185
|
+
```
|
|
186
|
+
> eval -s "Hello" -h "Hola" -r "Hola"
|
|
187
|
+
> eval -s "Hello" -h "Hola" -r "Hola" -m "bleu,chrf,metricx"
|
|
188
|
+
> eval "segments.tsv" -m "bleu,chrf"
|
|
189
|
+
> eval @"report.txt" -s "en" -t "es"
|
|
190
|
+
$ prompsit eval -s "Hello" -h "Hola" -r "Hola"
|
|
191
|
+
$ prompsit eval -s "Hello" -h "Hola" -r "Hola" -m "bleu,chrf,metricx"
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
### Data Processing
|
|
197
|
+
|
|
198
|
+
#### `score` "file" [options]
|
|
199
|
+
|
|
200
|
+
Compute translation likelihood scores with Bicleaner-AI.
|
|
201
|
+
|
|
202
|
+
```
|
|
203
|
+
> score "~/.prompsit/examples/score/sample.tmx"
|
|
204
|
+
> score "corpus.tsv" --output-format "tsv" --out "results/"
|
|
205
|
+
$ prompsit score "corpus.tmx" --out "results/"
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
#### `annotate` "file" --lang "code" [--metadata "options"] [--out "dir"]
|
|
209
|
+
|
|
210
|
+
Annotate monolingual documents with metadata using Monotextor.
|
|
211
|
+
|
|
212
|
+
- `-l, --lang "code"` Language code (e.g. en, es, zh-Hans)
|
|
213
|
+
- `--metadata "options"` Metadata to add (comma-separated: lid, dedup, pii, adult_filter, monofixer, docscorer)
|
|
214
|
+
- `--out "dir"` Output directory (default: beside input file)
|
|
215
|
+
|
|
216
|
+
```
|
|
217
|
+
> annotate @"data.jsonl" -l "en" --metadata "lid,docscorer"
|
|
218
|
+
> annotate @"data.jsonl" -l "en" --out "results/"
|
|
219
|
+
> annotate --metadata
|
|
220
|
+
$ prompsit annotate @"data.jsonl" -l "en" --metadata "lid,docscorer" --out "results/"
|
|
221
|
+
$ prompsit annotate --metadata
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
---
|
|
225
|
+
|
|
226
|
+
### Reference
|
|
227
|
+
|
|
228
|
+
#### `formats`
|
|
229
|
+
|
|
230
|
+
List supported file formats. Alias: `f`
|
|
231
|
+
|
|
232
|
+
```
|
|
233
|
+
> formats
|
|
234
|
+
$ prompsit formats
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
---
|
|
238
|
+
|
|
239
|
+
### System
|
|
240
|
+
|
|
241
|
+
| Command | Description |
|
|
242
|
+
|---------|-------------|
|
|
243
|
+
| `health` | API health check |
|
|
244
|
+
| `help` | Show all commands (also: `?`) |
|
|
245
|
+
| `clear` | Clear screen |
|
|
246
|
+
| `exit` | Quit CLI (also: `quit`, `q`) |
|
|
247
|
+
|
|
248
|
+
---
|
|
249
|
+
|
|
250
|
+
## Configuration Reference
|
|
251
|
+
|
|
252
|
+
Config file: `~/.prompsit/config.toml` | Env override: `PROMPSIT_<SECTION>__<KEY>`
|
|
253
|
+
|
|
254
|
+
| Key | CLI Command | Default | Description |
|
|
255
|
+
|-----|-------------|---------|-------------|
|
|
256
|
+
| `api.base_url` | `config api-url` | `https://edge.prompsit.com` | API endpoint |
|
|
257
|
+
| `api.timeout` | - | `30` | HTTP read timeout (sec) |
|
|
258
|
+
| `cli.language` | `language "code"` | `en` | Interface language |
|
|
259
|
+
| `cli.log_level` | `config set log-level "val"` | `INFO` | Log level |
|
|
260
|
+
|
|
261
|
+
## Data Directory: `~/.prompsit/`
|
|
262
|
+
|
|
263
|
+
| Path | Purpose |
|
|
264
|
+
|------|---------|
|
|
265
|
+
| `config.toml` | User configuration (TOML) |
|
|
266
|
+
| `credentials.json` | OAuth2 tokens |
|
|
267
|
+
| `history` | REPL command history |
|
|
268
|
+
| `translations/{lang}.json` | Interface translation cache |
|
|
269
|
+
| `examples/translate/` | Translation examples (txt, csv, xliff) |
|
|
270
|
+
| `examples/evaluate/` | Evaluation examples (tmx) |
|
|
271
|
+
| `examples/score/` | Scoring examples (tmx) |
|
|
272
|
+
| `examples/annotate/` | Annotation examples (jsonl) |
|
|
273
|
+
|
|
274
|
+
## Troubleshooting
|
|
275
|
+
|
|
276
|
+
See [docs/project/runbook.md](docs/project/runbook.md) for setup issues, common errors, and fixes.
|
|
277
|
+
|
|
278
|
+
## License
|
|
279
|
+
|
|
280
|
+
MIT
|
package/dist/api/client.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ import { LanguagesResource } from "./resources/languages.ts";
|
|
|
7
7
|
import { DiscoveryResource } from "./resources/discovery.ts";
|
|
8
8
|
import { JobsResource } from "./resources/jobs.ts";
|
|
9
9
|
import { DataResource } from "./resources/data.ts";
|
|
10
|
+
import { UserResource } from "./resources/user.ts";
|
|
10
11
|
/**
|
|
11
12
|
* API Client facade composing resource instances.
|
|
12
13
|
*
|
|
@@ -25,6 +26,7 @@ export declare class APIClient {
|
|
|
25
26
|
readonly discovery: DiscoveryResource;
|
|
26
27
|
readonly jobs: JobsResource;
|
|
27
28
|
readonly data: DataResource;
|
|
29
|
+
readonly user: UserResource;
|
|
28
30
|
constructor();
|
|
29
31
|
/**
|
|
30
32
|
* Reset auth client (after token refresh or logout).
|
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,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;;
|
|
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;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;IACnC,SAAgB,IAAI,EAAE,YAAY,CAAC;;IAiBnC;;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
|
@@ -11,6 +11,7 @@ import { LanguagesResource } from "./resources/languages.js";
|
|
|
11
11
|
import { DiscoveryResource } from "./resources/discovery.js";
|
|
12
12
|
import { JobsResource } from "./resources/jobs.js";
|
|
13
13
|
import { DataResource } from "./resources/data.js";
|
|
14
|
+
import { UserResource } from "./resources/user.js";
|
|
14
15
|
import { getSettings } from "../config/settings.js";
|
|
15
16
|
/**
|
|
16
17
|
* API Client facade composing resource instances.
|
|
@@ -30,6 +31,7 @@ export class APIClient {
|
|
|
30
31
|
discovery;
|
|
31
32
|
jobs;
|
|
32
33
|
data;
|
|
34
|
+
user;
|
|
33
35
|
constructor() {
|
|
34
36
|
this.baseUrl = getSettings().api.base_url.replace(/\/{1,100}$/, "");
|
|
35
37
|
this.transport = new HttpTransport();
|
|
@@ -42,6 +44,7 @@ export class APIClient {
|
|
|
42
44
|
this.discovery = new DiscoveryResource(this.session, this.baseUrl);
|
|
43
45
|
this.jobs = new JobsResource(this.session, this.baseUrl);
|
|
44
46
|
this.data = new DataResource(this.session, this.baseUrl);
|
|
47
|
+
this.user = new UserResource(this.session, this.baseUrl);
|
|
45
48
|
}
|
|
46
49
|
/**
|
|
47
50
|
* Reset auth client (after token refresh or logout).
|
package/dist/api/client.js.map
CHANGED
|
@@ -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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"}
|
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,EAOT,MAAM,wBAAwB,CAAC;AAQhC,wBAAgB,aAAa,CAAC,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,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,CAkFjF;AAcD,OAAO,EACL,cAAc,EACd,YAAY,EACZ,QAAQ,EACR,mBAAmB,EACnB,cAAc,EACd,WAAW,GACZ,MAAM,wBAAwB,CAAC"}
|
package/dist/api/errors.js
CHANGED
|
@@ -14,13 +14,20 @@ export function parseApiError(responseData, statusCode) {
|
|
|
14
14
|
try {
|
|
15
15
|
const problem = ProblemDetailSchema.parse(responseData);
|
|
16
16
|
const detail = problem.detail ?? "API error";
|
|
17
|
-
// Map error codes to specific exception types
|
|
17
|
+
// Map error codes to specific exception types (prefix-based)
|
|
18
18
|
if (problem.code?.startsWith("AUTH_")) {
|
|
19
19
|
return new AuthenticationError(detail);
|
|
20
20
|
}
|
|
21
21
|
if (problem.code?.startsWith("RATE_")) {
|
|
22
22
|
return new RateLimitError(detail);
|
|
23
23
|
}
|
|
24
|
+
// Map by HTTP status for proper classification (5xx → ServerError, etc.)
|
|
25
|
+
if (statusCode === HttpStatus.FORBIDDEN)
|
|
26
|
+
return new ForbiddenError(detail);
|
|
27
|
+
if (statusCode === HttpStatus.UNPROCESSABLE)
|
|
28
|
+
return new ValidationError([{ type: "value_error", loc: [], msg: detail }]);
|
|
29
|
+
if (statusCode >= HttpStatus.INTERNAL_ERROR)
|
|
30
|
+
return new ServerError(detail, statusCode);
|
|
24
31
|
return new APIError(detail, problem.code ?? "EUNKNOWN", statusCode, problem);
|
|
25
32
|
}
|
|
26
33
|
catch {
|