hybridtm 0.8.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/README.md +3 -5
  2. package/dist/backupHandler.d.ts +1 -1
  3. package/dist/backupHandler.js +1 -1
  4. package/dist/backupReader.d.ts +1 -1
  5. package/dist/backupReader.js +1 -1
  6. package/dist/batchImporter.d.ts +1 -1
  7. package/dist/batchImporter.js +1 -1
  8. package/dist/cli/backupCommand.d.ts +5 -3
  9. package/dist/cli/backupCommand.js +33 -31
  10. package/dist/cli/backupCommand.js.map +1 -1
  11. package/dist/cli/cliUtils.d.ts +2 -1
  12. package/dist/cli/cliUtils.js +13 -1
  13. package/dist/cli/cliUtils.js.map +1 -1
  14. package/dist/cli/createCommand.d.ts +5 -3
  15. package/dist/cli/createCommand.js +33 -31
  16. package/dist/cli/createCommand.js.map +1 -1
  17. package/dist/cli/hybridtmCli.d.ts +1 -1
  18. package/dist/cli/hybridtmCli.js +24 -14
  19. package/dist/cli/hybridtmCli.js.map +1 -1
  20. package/dist/cli/importCommand.d.ts +11 -3
  21. package/dist/cli/importCommand.js +75 -76
  22. package/dist/cli/importCommand.js.map +1 -1
  23. package/dist/cli/matchCommand.d.ts +17 -3
  24. package/dist/cli/matchCommand.js +88 -234
  25. package/dist/cli/matchCommand.js.map +1 -1
  26. package/dist/cli/registryCommands.d.ts +8 -5
  27. package/dist/cli/registryCommands.js +63 -61
  28. package/dist/cli/registryCommands.js.map +1 -1
  29. package/dist/cli/restoreCommand.d.ts +8 -3
  30. package/dist/cli/restoreCommand.js +80 -78
  31. package/dist/cli/restoreCommand.js.map +1 -1
  32. package/dist/cli/serveCommand.d.ts +17 -0
  33. package/dist/cli/serveCommand.js +87 -0
  34. package/dist/cli/serveCommand.js.map +1 -0
  35. package/dist/cli/stopCommand.d.ts +15 -0
  36. package/dist/cli/stopCommand.js +73 -0
  37. package/dist/cli/stopCommand.js.map +1 -0
  38. package/dist/hybridtm.d.ts +1 -1
  39. package/dist/hybridtm.js +48 -24
  40. package/dist/hybridtm.js.map +1 -1
  41. package/dist/hybridtmFactory.d.ts +1 -1
  42. package/dist/hybridtmFactory.js +6 -1
  43. package/dist/hybridtmFactory.js.map +1 -1
  44. package/dist/importOptions.d.ts +5 -4
  45. package/dist/importOptions.js +11 -10
  46. package/dist/importOptions.js.map +1 -1
  47. package/dist/index.d.ts +2 -1
  48. package/dist/index.js +2 -1
  49. package/dist/index.js.map +1 -1
  50. package/dist/langEntry.d.ts +1 -1
  51. package/dist/langEntry.js +1 -1
  52. package/dist/match.d.ts +1 -1
  53. package/dist/match.js +1 -1
  54. package/dist/matchQuality.d.ts +1 -1
  55. package/dist/matchQuality.js +1 -1
  56. package/dist/pendingEntry.d.ts +1 -1
  57. package/dist/pendingEntry.js +1 -1
  58. package/dist/searchFilters.d.ts +1 -1
  59. package/dist/searchFilters.js +1 -1
  60. package/dist/server/hybridtmServer.d.ts +40 -0
  61. package/dist/server/hybridtmServer.js +527 -0
  62. package/dist/server/hybridtmServer.js.map +1 -0
  63. package/dist/server/hybridtmServerMain.d.ts +12 -0
  64. package/dist/server/hybridtmServerMain.js +18 -0
  65. package/dist/server/hybridtmServerMain.js.map +1 -0
  66. package/dist/tmxHandler.d.ts +1 -1
  67. package/dist/tmxHandler.js +5 -5
  68. package/dist/tmxHandler.js.map +1 -1
  69. package/dist/tmxReader.d.ts +1 -1
  70. package/dist/tmxReader.js +4 -4
  71. package/dist/tmxReader.js.map +1 -1
  72. package/dist/utils.d.ts +26 -2
  73. package/dist/utils.js +153 -2
  74. package/dist/utils.js.map +1 -1
  75. package/dist/xliffHandler.d.ts +1 -1
  76. package/dist/xliffHandler.js +8 -8
  77. package/dist/xliffHandler.js.map +1 -1
  78. package/dist/xliffReader.d.ts +1 -1
  79. package/dist/xliffReader.js +4 -4
  80. package/dist/xliffReader.js.map +1 -1
  81. package/package.json +1 -1
package/README.md CHANGED
@@ -11,6 +11,7 @@ HybridTM is a semantic translation memory engine that stores bilingual content i
11
11
  - Prevents duplicate segments by rewriting entries with deterministic IDs (`fileId:unitId:segmentIndex:lang`)
12
12
  - Backs up any instance to a single format-agnostic XML file and restores it into an existing or brand-new instance, optionally under a different embedding model
13
13
  - Ships a `hybridtm` command-line tool for creating instances, importing files, backing up/restoring data, and enriching XLIFF files with TM match candidates from the shell
14
+ - Runs as a JSON-over-HTTP server too (`hybridtm serve`, or embed `HybridTMServer` directly), for CAT tool and editor integrations that want to keep an instance and its loaded model open across many requests, with ticketed handling for long-running imports and matches, and a `storeXliffUnit` command for persisting a single confirmed unit as the user works
14
15
 
15
16
  Models download automatically the first time you initialize an instance and are cached in the standard Hugging Face directory.
16
17
 
@@ -102,7 +103,7 @@ npm install -g hybridtm
102
103
 
103
104
  hybridtm create -name project -path ./project.lancedb
104
105
  hybridtm import -name project -file ./translations/project.xlf
105
- hybridtm match -name project -file ./new-content.xlf -output ./new-content.matches.xlf
106
+ hybridtm match -name project -file ./new-content.xlf -similarity 60 -output ./new-content.matches.xlf
106
107
  hybridtm backup -name project -file ./project-backup.xml
107
108
  hybridtm restore -file ./project-backup.xml -name project
108
109
  hybridtm list
@@ -122,6 +123,7 @@ see [05 · Command-Line Interface](docs/05-command-line-interface.md).
122
123
  - [04 · Sample Scenarios](docs/04-sample-scenarios.md)
123
124
  - [05 · Command-Line Interface](docs/05-command-line-interface.md)
124
125
  - [06 · Backup and Restore](docs/06-backup-and-restore.md)
126
+ - [07 · HTTP Server](docs/07-http-server.md)
125
127
 
126
128
  Each guide is short and task-oriented, so you can jump directly to the workflow you need.
127
129
 
@@ -148,14 +150,10 @@ If you copy `samples/` elsewhere, update `samples/package.json` so the `hybridtm
148
150
  - `dist/` – compiled JavaScript and declarations (`npm run build`)
149
151
  - `docs/` – task-focused tutorials referenced above
150
152
  - `samples/` – standalone TypeScript project with runnable workflows
151
- - `models/` – local cache for pre-downloaded embedding models (optional)
152
153
 
153
154
  ## Development
154
155
 
155
156
  - `npm run build` – compile TypeScript to `dist/`
156
- - The [samples](docs/04-sample-scenarios.md) project doubles as a manual regression check for the importers and search APIs
157
-
158
- Contributions should include unit or integration coverage when you touch importer or search logic. Use `HybridTMFactory.removeInstance(name)` to clean up any throwaway databases you create during manual tests.
159
157
 
160
158
  ## License
161
159
 
@@ -2,7 +2,7 @@
2
2
  * Copyright (c) 2025-2026 Maxprograms.
3
3
  *
4
4
  * This program and the accompanying materials
5
- * are made available under the terms of the Eclipse License 1.0
5
+ * are made available under the terms of the Eclipse Public License v1.0
6
6
  * which accompanies this distribution, and is available at
7
7
  * https://www.eclipse.org/org/documents/epl-v10.html
8
8
  *
@@ -2,7 +2,7 @@
2
2
  * Copyright (c) 2025-2026 Maxprograms.
3
3
  *
4
4
  * This program and the accompanying materials
5
- * are made available under the terms of the Eclipse License 1.0
5
+ * are made available under the terms of the Eclipse Public License v1.0
6
6
  * which accompanies this distribution, and is available at
7
7
  * https://www.eclipse.org/org/documents/epl-v10.html
8
8
  *
@@ -2,7 +2,7 @@
2
2
  * Copyright (c) 2025-2026 Maxprograms.
3
3
  *
4
4
  * This program and the accompanying materials
5
- * are made available under the terms of the Eclipse License 1.0
5
+ * are made available under the terms of the Eclipse Public License v1.0
6
6
  * which accompanies this distribution, and is available at
7
7
  * https://www.eclipse.org/org/documents/epl-v10.html
8
8
  *
@@ -2,7 +2,7 @@
2
2
  * Copyright (c) 2025-2026 Maxprograms.
3
3
  *
4
4
  * This program and the accompanying materials
5
- * are made available under the terms of the Eclipse License 1.0
5
+ * are made available under the terms of the Eclipse Public License v1.0
6
6
  * which accompanies this distribution, and is available at
7
7
  * https://www.eclipse.org/org/documents/epl-v10.html
8
8
  *
@@ -2,7 +2,7 @@
2
2
  * Copyright (c) 2025-2026 Maxprograms.
3
3
  *
4
4
  * This program and the accompanying materials
5
- * are made available under the terms of the Eclipse License 1.0
5
+ * are made available under the terms of the Eclipse Public License v1.0
6
6
  * which accompanies this distribution, and is available at
7
7
  * https://www.eclipse.org/org/documents/epl-v10.html
8
8
  *
@@ -2,7 +2,7 @@
2
2
  * Copyright (c) 2025-2026 Maxprograms.
3
3
  *
4
4
  * This program and the accompanying materials
5
- * are made available under the terms of the Eclipse License 1.0
5
+ * are made available under the terms of the Eclipse Public License v1.0
6
6
  * which accompanies this distribution, and is available at
7
7
  * https://www.eclipse.org/org/documents/epl-v10.html
8
8
  *
@@ -2,12 +2,14 @@
2
2
  * Copyright (c) 2025-2026 Maxprograms.
3
3
  *
4
4
  * This program and the accompanying materials
5
- * are made available under the terms of the Eclipse License 1.0
5
+ * are made available under the terms of the Eclipse Public License v1.0
6
6
  * which accompanies this distribution, and is available at
7
7
  * https://www.eclipse.org/org/documents/epl-v10.html
8
8
  *
9
9
  * Contributors:
10
10
  * Maxprograms - initial API and implementation
11
11
  *******************************************************************************/
12
- export declare function usage(): void;
13
- export declare function runBackupCommand(args: string[]): Promise<void>;
12
+ export declare class BackupCommand {
13
+ static usage(): void;
14
+ static run(args: string[]): Promise<void>;
15
+ }
@@ -2,7 +2,7 @@
2
2
  * Copyright (c) 2025-2026 Maxprograms.
3
3
  *
4
4
  * This program and the accompanying materials
5
- * are made available under the terms of the Eclipse License 1.0
5
+ * are made available under the terms of the Eclipse Public License v1.0
6
6
  * which accompanies this distribution, and is available at
7
7
  * https://www.eclipse.org/org/documents/epl-v10.html
8
8
  *
@@ -11,37 +11,39 @@
11
11
  *******************************************************************************/
12
12
  import { HybridTMFactory } from '../index.js';
13
13
  import { CliUtils } from './cliUtils.js';
14
- export function usage() {
15
- console.log('Usage: hybridtm backup -name <name> -file <path>');
16
- console.log();
17
- console.log(' -name Instance to back up (required)');
18
- console.log(' -file Output XML file path (required)');
19
- }
20
- export async function runBackupCommand(args) {
21
- if (CliUtils.hasFlag(args, '-help')) {
22
- usage();
23
- return;
24
- }
25
- const name = CliUtils.getFlag(args, '-name');
26
- const rawFile = CliUtils.getFlag(args, '-file');
27
- if (!name || !rawFile) {
28
- usage();
29
- CliUtils.fail('Missing required -name or -file.');
30
- }
31
- const outputPath = CliUtils.resolvePath(rawFile);
32
- const tm = HybridTMFactory.getInstance(name);
33
- if (!tm) {
34
- CliUtils.fail('No instance named "' + name + '". Run "hybridtm create" or "hybridtm list" first.');
35
- }
36
- try {
37
- const count = await tm.backup(outputPath);
38
- console.log('Backed up ' + count + ' entries from "' + name + '" to ' + outputPath + '.');
39
- }
40
- catch (error) {
41
- CliUtils.fail(error instanceof Error ? error.message : String(error));
14
+ export class BackupCommand {
15
+ static usage() {
16
+ console.log('Usage: hybridtm backup -name <name> -file <path>');
17
+ console.log();
18
+ console.log(' -name Instance to back up (required)');
19
+ console.log(' -file Output XML file path (required)');
42
20
  }
43
- finally {
44
- await tm.close();
21
+ static async run(args) {
22
+ if (CliUtils.hasFlag(args, '-help')) {
23
+ BackupCommand.usage();
24
+ return;
25
+ }
26
+ const name = CliUtils.getFlag(args, '-name');
27
+ const rawFile = CliUtils.getFlag(args, '-file');
28
+ if (!name || !rawFile) {
29
+ BackupCommand.usage();
30
+ CliUtils.fail('Missing required -name or -file.');
31
+ }
32
+ const outputPath = CliUtils.resolvePath(rawFile);
33
+ const tm = HybridTMFactory.getInstance(name);
34
+ if (!tm) {
35
+ CliUtils.fail('No instance named "' + name + '". Run "hybridtm create" or "hybridtm list" first.');
36
+ }
37
+ try {
38
+ const count = await tm.backup(outputPath);
39
+ console.log('Backed up ' + count + ' entries from "' + name + '" to ' + outputPath + '.');
40
+ }
41
+ catch (error) {
42
+ CliUtils.fail(error instanceof Error ? error.message : String(error));
43
+ }
44
+ finally {
45
+ await tm.close();
46
+ }
45
47
  }
46
48
  }
47
49
  //# sourceMappingURL=backupCommand.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"backupCommand.js","sourceRoot":"","sources":["../../ts/cli/backupCommand.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;iFAUiF;AAEjF,OAAO,EAAY,eAAe,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,UAAU,KAAK;IACjB,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;IAChE,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAc;IACjD,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;QAClC,KAAK,EAAE,CAAC;QACR,OAAO;IACX,CAAC;IAED,MAAM,IAAI,GAAuB,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACjE,MAAM,OAAO,GAAuB,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACpE,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACpB,KAAK,EAAE,CAAC;QACR,QAAQ,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,UAAU,GAAW,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAEzD,MAAM,EAAE,GAAyB,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACnE,IAAI,CAAC,EAAE,EAAE,CAAC;QACN,QAAQ,CAAC,IAAI,CAAC,qBAAqB,GAAG,IAAI,GAAG,oDAAoD,CAAC,CAAC;IACvG,CAAC;IAED,IAAI,CAAC;QACD,MAAM,KAAK,GAAW,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,KAAK,GAAG,iBAAiB,GAAG,IAAI,GAAG,OAAO,GAAG,UAAU,GAAG,GAAG,CAAC,CAAC;IAC9F,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACtB,QAAQ,CAAC,IAAI,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1E,CAAC;YAAS,CAAC;QACP,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"backupCommand.js","sourceRoot":"","sources":["../../ts/cli/backupCommand.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;iFAUiF;AAEjF,OAAO,EAAY,eAAe,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,OAAO,aAAa;IAEtB,MAAM,CAAC,KAAK;QACR,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAc;QAC3B,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;YAClC,aAAa,CAAC,KAAK,EAAE,CAAC;YACtB,OAAO;QACX,CAAC;QAED,MAAM,IAAI,GAAuB,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACjE,MAAM,OAAO,GAAuB,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACpE,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACpB,aAAa,CAAC,KAAK,EAAE,CAAC;YACtB,QAAQ,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,UAAU,GAAW,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAEzD,MAAM,EAAE,GAAyB,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACnE,IAAI,CAAC,EAAE,EAAE,CAAC;YACN,QAAQ,CAAC,IAAI,CAAC,qBAAqB,GAAG,IAAI,GAAG,oDAAoD,CAAC,CAAC;QACvG,CAAC;QAED,IAAI,CAAC;YACD,MAAM,KAAK,GAAW,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAClD,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,KAAK,GAAG,iBAAiB,GAAG,IAAI,GAAG,OAAO,GAAG,UAAU,GAAG,GAAG,CAAC,CAAC;QAC9F,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACtB,QAAQ,CAAC,IAAI,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1E,CAAC;gBAAS,CAAC;YACP,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;QACrB,CAAC;IACL,CAAC;CACJ"}
@@ -2,7 +2,7 @@
2
2
  * Copyright (c) 2025-2026 Maxprograms.
3
3
  *
4
4
  * This program and the accompanying materials
5
- * are made available under the terms of the Eclipse License 1.0
5
+ * are made available under the terms of the Eclipse Public License v1.0
6
6
  * which accompanies this distribution, and is available at
7
7
  * https://www.eclipse.org/org/documents/epl-v10.html
8
8
  *
@@ -12,6 +12,7 @@
12
12
  export declare class CliUtils {
13
13
  static getFlag(args: string[], flag: string): string | undefined;
14
14
  static hasFlag(args: string[], flag: string): boolean;
15
+ static parseIntFlag(args: string[], flag: string, fallback: number, min: number, max?: number): number;
15
16
  static resolvePath(rawPath: string): string;
16
17
  static requireExistingFile(rawPath: string, label: string): string;
17
18
  static resolveModelName(alias: string | undefined): string;
@@ -2,7 +2,7 @@
2
2
  * Copyright (c) 2025-2026 Maxprograms.
3
3
  *
4
4
  * This program and the accompanying materials
5
- * are made available under the terms of the Eclipse License 1.0
5
+ * are made available under the terms of the Eclipse Public License v1.0
6
6
  * which accompanies this distribution, and is available at
7
7
  * https://www.eclipse.org/org/documents/epl-v10.html
8
8
  *
@@ -24,6 +24,18 @@ export class CliUtils {
24
24
  static hasFlag(args, flag) {
25
25
  return args.includes(flag);
26
26
  }
27
+ static parseIntFlag(args, flag, fallback, min, max) {
28
+ const raw = CliUtils.getFlag(args, flag);
29
+ if (raw === undefined) {
30
+ return fallback;
31
+ }
32
+ const parsed = Number(raw);
33
+ if (!Number.isInteger(parsed) || parsed < min || (max !== undefined && parsed > max)) {
34
+ const range = max !== undefined ? 'an integer between ' + min + ' and ' + max : 'an integer of at least ' + min;
35
+ CliUtils.fail('Invalid ' + flag + ' value "' + raw + '"; expected ' + range + '.');
36
+ }
37
+ return parsed;
38
+ }
27
39
  static resolvePath(rawPath) {
28
40
  let expanded = rawPath;
29
41
  if (expanded.startsWith('~')) {
@@ -1 +1 @@
1
- {"version":3,"file":"cliUtils.js","sourceRoot":"","sources":["../../ts/cli/cliUtils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;iFAUiF;AAEjF,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,MAAM,OAAO,QAAQ;IAEjB,MAAM,CAAC,OAAO,CAAC,IAAc,EAAE,IAAY;QACvC,MAAM,KAAK,GAAW,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9E,OAAO,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAC3B,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,IAAc,EAAE,IAAY;QACvC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,OAAe;QAC9B,IAAI,QAAQ,GAAW,OAAO,CAAC;QAC/B,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAW,OAAO,EAAE,CAAC;YAC/B,IAAI,QAAQ,KAAK,GAAG,EAAE,CAAC;gBACnB,QAAQ,GAAG,IAAI,CAAC;YACpB,CAAC;iBAAM,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnC,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7C,CAAC;QACL,CAAC;QACD,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM,CAAC,mBAAmB,CAAC,OAAe,EAAE,KAAa;QACrD,MAAM,QAAQ,GAAW,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACvD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,GAAG,QAAQ,GAAG,mBAAmB,CAAC,CAAC;YAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;QACD,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,KAAyB;QAC7C,QAAQ,KAAK,EAAE,CAAC;YACZ,KAAK,SAAS;gBACV,OAAO,QAAQ,CAAC,aAAa,CAAC;YAClC,KAAK,UAAU;gBACX,OAAO,QAAQ,CAAC,cAAc,CAAC;YACnC,KAAK,OAAO,CAAC;YACb,KAAK,SAAS;gBACV,OAAO,QAAQ,CAAC,WAAW,CAAC;YAChC;gBACI,sEAAsE;gBACtE,kEAAkE;gBAClE,OAAO,KAAK,CAAC;QACrB,CAAC;IACL,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,OAAe;QACvB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACvB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;CACJ"}
1
+ {"version":3,"file":"cliUtils.js","sourceRoot":"","sources":["../../ts/cli/cliUtils.ts"],"names":[],"mappings":"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"}
@@ -2,12 +2,14 @@
2
2
  * Copyright (c) 2025-2026 Maxprograms.
3
3
  *
4
4
  * This program and the accompanying materials
5
- * are made available under the terms of the Eclipse License 1.0
5
+ * are made available under the terms of the Eclipse Public License v1.0
6
6
  * which accompanies this distribution, and is available at
7
7
  * https://www.eclipse.org/org/documents/epl-v10.html
8
8
  *
9
9
  * Contributors:
10
10
  * Maxprograms - initial API and implementation
11
11
  *******************************************************************************/
12
- export declare function usage(): void;
13
- export declare function runCreateCommand(args: string[]): Promise<void>;
12
+ export declare class CreateCommand {
13
+ static usage(): void;
14
+ static run(args: string[]): Promise<void>;
15
+ }
@@ -2,7 +2,7 @@
2
2
  * Copyright (c) 2025-2026 Maxprograms.
3
3
  *
4
4
  * This program and the accompanying materials
5
- * are made available under the terms of the Eclipse License 1.0
5
+ * are made available under the terms of the Eclipse Public License v1.0
6
6
  * which accompanies this distribution, and is available at
7
7
  * https://www.eclipse.org/org/documents/epl-v10.html
8
8
  *
@@ -11,37 +11,39 @@
11
11
  *******************************************************************************/
12
12
  import { HybridTMFactory } from '../index.js';
13
13
  import { CliUtils } from './cliUtils.js';
14
- export function usage() {
15
- console.log('Usage: hybridtm create -name <name> -path <dir> [-model compact|standard|large|<model id>]');
16
- console.log();
17
- console.log(' -name Name to register the new instance under (required)');
18
- console.log(' -path Directory where the instance\'s LanceDB data will live (required)');
19
- console.log(' -model Embedding model preset (compact, standard, large [default]), or any');
20
- console.log(' other Hugging Face feature-extraction model id to load directly');
21
- console.log(' (e.g. onnx-community/gte-multilingual-base). See the README section');
22
- console.log(' "Choosing an embedding model" for guidance on which preset to pick.');
23
- }
24
- export async function runCreateCommand(args) {
25
- if (CliUtils.hasFlag(args, '-help')) {
26
- usage();
27
- return;
28
- }
29
- const name = CliUtils.getFlag(args, '-name');
30
- const rawPath = CliUtils.getFlag(args, '-path');
31
- if (!name || !rawPath) {
32
- usage();
33
- CliUtils.fail('Missing required -name or -path.');
34
- }
35
- const modelAlias = CliUtils.getFlag(args, '-model');
36
- const modelName = CliUtils.resolveModelName(modelAlias);
37
- const resolvedPath = CliUtils.resolvePath(rawPath);
38
- try {
39
- const tm = HybridTMFactory.createInstance(name, resolvedPath, modelName);
40
- await tm.close();
41
- console.log('Created instance "' + name + '" at ' + resolvedPath + ' (model: ' + modelName + ')');
14
+ export class CreateCommand {
15
+ static usage() {
16
+ console.log('Usage: hybridtm create -name <name> -path <dir> [-model compact|standard|large|<model id>]');
17
+ console.log();
18
+ console.log(' -name Name to register the new instance under (required)');
19
+ console.log(' -path Directory where the instance\'s LanceDB data will live (required)');
20
+ console.log(' -model Embedding model preset (compact, standard, large [default]), or any');
21
+ console.log(' other Hugging Face feature-extraction model id to load directly');
22
+ console.log(' (e.g. onnx-community/gte-multilingual-base). See the README section');
23
+ console.log(' "Choosing an embedding model" for guidance on which preset to pick.');
42
24
  }
43
- catch (error) {
44
- CliUtils.fail(error instanceof Error ? error.message : String(error));
25
+ static async run(args) {
26
+ if (CliUtils.hasFlag(args, '-help')) {
27
+ CreateCommand.usage();
28
+ return;
29
+ }
30
+ const name = CliUtils.getFlag(args, '-name');
31
+ const rawPath = CliUtils.getFlag(args, '-path');
32
+ if (!name || !rawPath) {
33
+ CreateCommand.usage();
34
+ CliUtils.fail('Missing required -name or -path.');
35
+ }
36
+ const modelAlias = CliUtils.getFlag(args, '-model');
37
+ const modelName = CliUtils.resolveModelName(modelAlias);
38
+ const resolvedPath = CliUtils.resolvePath(rawPath);
39
+ try {
40
+ const tm = HybridTMFactory.createInstance(name, resolvedPath, modelName);
41
+ await tm.close();
42
+ console.log('Created instance "' + name + '" at ' + resolvedPath + ' (model: ' + modelName + ')');
43
+ }
44
+ catch (error) {
45
+ CliUtils.fail(error instanceof Error ? error.message : String(error));
46
+ }
45
47
  }
46
48
  }
47
49
  //# sourceMappingURL=createCommand.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createCommand.js","sourceRoot":"","sources":["../../ts/cli/createCommand.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;iFAUiF;AAEjF,OAAO,EAAY,eAAe,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,UAAU,KAAK;IACjB,OAAO,CAAC,GAAG,CAAC,4FAA4F,CAAC,CAAC;IAC1G,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAC;IAC7E,OAAO,CAAC,GAAG,CAAC,8EAA8E,CAAC,CAAC;IAC5F,OAAO,CAAC,GAAG,CAAC,gFAAgF,CAAC,CAAC;IAC9F,OAAO,CAAC,GAAG,CAAC,4EAA4E,CAAC,CAAC;IAC1F,OAAO,CAAC,GAAG,CAAC,gFAAgF,CAAC,CAAC;IAC9F,OAAO,CAAC,GAAG,CAAC,gFAAgF,CAAC,CAAC;AAClG,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAc;IACjD,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;QAClC,KAAK,EAAE,CAAC;QACR,OAAO;IACX,CAAC;IAED,MAAM,IAAI,GAAuB,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACjE,MAAM,OAAO,GAAuB,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACpE,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACpB,KAAK,EAAE,CAAC;QACR,QAAQ,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,UAAU,GAAuB,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACxE,MAAM,SAAS,GAAW,QAAQ,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAChE,MAAM,YAAY,GAAW,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAE3D,IAAI,CAAC;QACD,MAAM,EAAE,GAAa,eAAe,CAAC,cAAc,CAAC,IAAI,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;QACnF,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,oBAAoB,GAAG,IAAI,GAAG,OAAO,GAAG,YAAY,GAAG,WAAW,GAAG,SAAS,GAAG,GAAG,CAAC,CAAC;IACtG,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACtB,QAAQ,CAAC,IAAI,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1E,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"createCommand.js","sourceRoot":"","sources":["../../ts/cli/createCommand.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;iFAUiF;AAEjF,OAAO,EAAY,eAAe,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,OAAO,aAAa;IAEtB,MAAM,CAAC,KAAK;QACR,OAAO,CAAC,GAAG,CAAC,4FAA4F,CAAC,CAAC;QAC1G,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAC;QAC7E,OAAO,CAAC,GAAG,CAAC,8EAA8E,CAAC,CAAC;QAC5F,OAAO,CAAC,GAAG,CAAC,gFAAgF,CAAC,CAAC;QAC9F,OAAO,CAAC,GAAG,CAAC,4EAA4E,CAAC,CAAC;QAC1F,OAAO,CAAC,GAAG,CAAC,gFAAgF,CAAC,CAAC;QAC9F,OAAO,CAAC,GAAG,CAAC,gFAAgF,CAAC,CAAC;IAClG,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAc;QAC3B,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;YAClC,aAAa,CAAC,KAAK,EAAE,CAAC;YACtB,OAAO;QACX,CAAC;QAED,MAAM,IAAI,GAAuB,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACjE,MAAM,OAAO,GAAuB,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACpE,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACpB,aAAa,CAAC,KAAK,EAAE,CAAC;YACtB,QAAQ,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,UAAU,GAAuB,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACxE,MAAM,SAAS,GAAW,QAAQ,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAChE,MAAM,YAAY,GAAW,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAE3D,IAAI,CAAC;YACD,MAAM,EAAE,GAAa,eAAe,CAAC,cAAc,CAAC,IAAI,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;YACnF,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,oBAAoB,GAAG,IAAI,GAAG,OAAO,GAAG,YAAY,GAAG,WAAW,GAAG,SAAS,GAAG,GAAG,CAAC,CAAC;QACtG,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACtB,QAAQ,CAAC,IAAI,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1E,CAAC;IACL,CAAC;CACJ"}
@@ -3,7 +3,7 @@
3
3
  * Copyright (c) 2025-2026 Maxprograms.
4
4
  *
5
5
  * This program and the accompanying materials
6
- * are made available under the terms of the Eclipse License 1.0
6
+ * are made available under the terms of the Eclipse Public License v1.0
7
7
  * which accompanies this distribution, and is available at
8
8
  * https://www.eclipse.org/org/documents/epl-v10.html
9
9
  *
@@ -3,19 +3,21 @@
3
3
  * Copyright (c) 2025-2026 Maxprograms.
4
4
  *
5
5
  * This program and the accompanying materials
6
- * are made available under the terms of the Eclipse License 1.0
6
+ * are made available under the terms of the Eclipse Public License v1.0
7
7
  * which accompanies this distribution, and is available at
8
8
  * https://www.eclipse.org/org/documents/epl-v10.html
9
9
  *
10
10
  * Contributors:
11
11
  * Maxprograms - initial API and implementation
12
12
  *******************************************************************************/
13
- import { runBackupCommand } from './backupCommand.js';
14
- import { runCreateCommand } from './createCommand.js';
15
- import { runImportCommand } from './importCommand.js';
16
- import { runMatchCommand } from './matchCommand.js';
17
- import { runListCommand, runRemoveCommand } from './registryCommands.js';
18
- import { runRestoreCommand } from './restoreCommand.js';
13
+ import { BackupCommand } from './backupCommand.js';
14
+ import { CreateCommand } from './createCommand.js';
15
+ import { ImportCommand } from './importCommand.js';
16
+ import { MatchCommand } from './matchCommand.js';
17
+ import { RegistryCommands } from './registryCommands.js';
18
+ import { RestoreCommand } from './restoreCommand.js';
19
+ import { ServeCommand } from './serveCommand.js';
20
+ import { StopCommand } from './stopCommand.js';
19
21
  class HybridTMCli {
20
22
  constructor() {
21
23
  this.run(process.argv.slice(2));
@@ -25,25 +27,31 @@ class HybridTMCli {
25
27
  const rest = argv.slice(1);
26
28
  try {
27
29
  if (command === 'create') {
28
- await runCreateCommand(rest);
30
+ await CreateCommand.run(rest);
29
31
  }
30
32
  else if (command === 'import') {
31
- await runImportCommand(rest);
33
+ await ImportCommand.run(rest);
32
34
  }
33
35
  else if (command === 'match') {
34
- await runMatchCommand(rest);
36
+ await MatchCommand.run(rest);
35
37
  }
36
38
  else if (command === 'backup') {
37
- await runBackupCommand(rest);
39
+ await BackupCommand.run(rest);
38
40
  }
39
41
  else if (command === 'restore') {
40
- await runRestoreCommand(rest);
42
+ await RestoreCommand.run(rest);
41
43
  }
42
44
  else if (command === 'list') {
43
- await runListCommand(rest);
45
+ await RegistryCommands.runList(rest);
44
46
  }
45
47
  else if (command === 'remove') {
46
- await runRemoveCommand(rest);
48
+ await RegistryCommands.runRemove(rest);
49
+ }
50
+ else if (command === 'serve') {
51
+ await ServeCommand.run(rest);
52
+ }
53
+ else if (command === 'stop') {
54
+ await StopCommand.run(rest);
47
55
  }
48
56
  else if (command === '-help' || command === '--help') {
49
57
  this.usage();
@@ -75,6 +83,8 @@ class HybridTMCli {
75
83
  console.log(' restore Reimport a backup XML file into an existing or new instance');
76
84
  console.log(' list List registered instances');
77
85
  console.log(' remove Delete a registered instance and its data');
86
+ console.log(' serve Start the HybridTM HTTP server');
87
+ console.log(' stop Stop the HybridTM HTTP server');
78
88
  console.log();
79
89
  console.log('Run "hybridtm <command> -help" for command-specific options.');
80
90
  }
@@ -1 +1 @@
1
- {"version":3,"file":"hybridtmCli.js","sourceRoot":"","sources":["../../ts/cli/hybridtmCli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hybridtmCli.js","sourceRoot":"","sources":["../../ts/cli/hybridtmCli.ts"],"names":[],"mappings":"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"}
@@ -2,12 +2,20 @@
2
2
  * Copyright (c) 2025-2026 Maxprograms.
3
3
  *
4
4
  * This program and the accompanying materials
5
- * are made available under the terms of the Eclipse License 1.0
5
+ * are made available under the terms of the Eclipse Public License v1.0
6
6
  * which accompanies this distribution, and is available at
7
7
  * https://www.eclipse.org/org/documents/epl-v10.html
8
8
  *
9
9
  * Contributors:
10
10
  * Maxprograms - initial API and implementation
11
11
  *******************************************************************************/
12
- export declare function usage(): void;
13
- export declare function runImportCommand(args: string[]): Promise<void>;
12
+ import { HybridTM, ImportOptions, TranslationState } from '../index.js';
13
+ export type ImportType = 'xliff' | 'tmx' | 'sdltm';
14
+ export declare class ImportCommand {
15
+ static usage(): void;
16
+ static run(args: string[]): Promise<void>;
17
+ static importFile(tm: HybridTM, filePath: string, type: ImportType, options: ImportOptions): Promise<number>;
18
+ static resolveImportType(explicit: string | undefined, filePath: string): ImportType;
19
+ static isTranslationState(value: string): value is TranslationState;
20
+ private static buildImportOptions;
21
+ }