@happyvertical/smrt-languages 0.51.32 → 0.51.33
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/dist/__smrt-register__.d.ts +2 -0
- package/dist/__smrt-register__.d.ts.map +1 -0
- package/dist/cache.d.ts +50 -0
- package/dist/cache.d.ts.map +1 -0
- package/dist/cli.d.ts +38 -94
- package/dist/cli.d.ts.map +1 -0
- package/dist/collections/LanguageOverrideCollection.d.ts +27 -0
- package/dist/collections/LanguageOverrideCollection.d.ts.map +1 -0
- package/dist/glossary.d.ts +17 -0
- package/dist/glossary.d.ts.map +1 -0
- package/dist/index.d.ts +31 -252
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1 -1
- package/dist/jobs/translation-job.d.ts +45 -0
- package/dist/jobs/translation-job.d.ts.map +1 -0
- package/dist/jobs.d.ts +14 -68
- package/dist/jobs.d.ts.map +1 -0
- package/dist/language-registry.d.ts +19 -0
- package/dist/language-registry.d.ts.map +1 -0
- package/dist/language-resolver.d.ts +4 -0
- package/dist/language-resolver.d.ts.map +1 -0
- package/dist/manifest.json +89 -89
- package/dist/models/LanguageOverride.d.ts +34 -0
- package/dist/models/LanguageOverride.d.ts.map +1 -0
- package/dist/smrt-knowledge.json +42 -42
- package/dist/types.d.ts +95 -110
- package/dist/types.d.ts.map +1 -0
- package/dist/utils.d.ts +40 -0
- package/dist/utils.d.ts.map +1 -0
- package/package.json +10 -10
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { type SmrtClassOptions, SmrtObject } from '@happyvertical/smrt-core';
|
|
2
|
+
import type { TranslationJobPayload } from '../types.js';
|
|
3
|
+
/** Feature flag key honored as the kill-switch for AI auto-translation. */
|
|
4
|
+
export declare const AUTO_TRANSLATE_FEATURE_KEY = "smrt-languages.auto_translate";
|
|
5
|
+
/**
|
|
6
|
+
* Prompt key registered with `smrt-prompts` so ops can tune the AI translation
|
|
7
|
+
* style without redeploying. The prompt itself is referenced by the job
|
|
8
|
+
* handler when calling `@happyvertical/ai`.
|
|
9
|
+
*/
|
|
10
|
+
export declare const TRANSLATION_PROMPT_KEY = "smrt-languages.translation";
|
|
11
|
+
/**
|
|
12
|
+
* SmrtObject that owns the translation job's `execute` method. The TaskRunner
|
|
13
|
+
* resolves jobs by `objectType` so the registered class name needs to match
|
|
14
|
+
* what `enqueueTranslationJob` writes.
|
|
15
|
+
*/
|
|
16
|
+
export declare class LanguageTranslationTask extends SmrtObject {
|
|
17
|
+
/**
|
|
18
|
+
* Job-runner entrypoint. Reads the translation payload, calls
|
|
19
|
+
* `@happyvertical/ai`, and upserts a `LanguageOverride` row.
|
|
20
|
+
*/
|
|
21
|
+
execute(args: TranslationJobPayload): Promise<{
|
|
22
|
+
skipped?: 'feature_disabled' | 'not_supported' | 'budget' | 'stale';
|
|
23
|
+
template?: string;
|
|
24
|
+
}>;
|
|
25
|
+
}
|
|
26
|
+
interface EnqueueTranslationOptions {
|
|
27
|
+
key: string;
|
|
28
|
+
targetLocale: string;
|
|
29
|
+
sourceLocale?: string;
|
|
30
|
+
tenantId?: string | null;
|
|
31
|
+
db: SmrtClassOptions['db'];
|
|
32
|
+
/** When true, skip the dedup check and force a fresh job. */
|
|
33
|
+
force?: boolean;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Enqueue a translation job for `(key, targetLocale)`, deduplicated against
|
|
37
|
+
* any already-pending job for the same target. Returns the (possibly existing)
|
|
38
|
+
* job's deterministic ID.
|
|
39
|
+
*/
|
|
40
|
+
export declare function enqueueTranslationJob(options: EnqueueTranslationOptions): Promise<{
|
|
41
|
+
id: string;
|
|
42
|
+
status: 'enqueued' | 'duplicate' | 'skipped';
|
|
43
|
+
}>;
|
|
44
|
+
export {};
|
|
45
|
+
//# sourceMappingURL=translation-job.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"translation-job.d.ts","sourceRoot":"","sources":["../../src/jobs/translation-job.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,gBAAgB,EACrB,UAAU,EAEX,MAAM,0BAA0B,CAAC;AAQlC,OAAO,KAAK,EAEV,qBAAqB,EACtB,MAAM,aAAa,CAAC;AASrB,2EAA2E;AAC3E,eAAO,MAAM,0BAA0B,kCAAkC,CAAC;AAE1E;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,+BAA+B,CAAC;AA4BnE;;;;GAIG;AACH,qBAKa,uBAAwB,SAAQ,UAAU;IACrD;;;OAGG;IACG,OAAO,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC;QAClD,OAAO,CAAC,EAAE,kBAAkB,GAAG,eAAe,GAAG,QAAQ,GAAG,OAAO,CAAC;QACpE,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CAsJH;AAED,UAAU,yBAAyB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,EAAE,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC3B,6DAA6D;IAC7D,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,UAAU,GAAG,WAAW,GAAG,SAAS,CAAA;CAAE,CAAC,CA2DvE"}
|
package/dist/jobs.d.ts
CHANGED
|
@@ -1,68 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*/
|
|
12
|
-
export
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
}>;
|
|
16
|
-
|
|
17
|
-
declare interface EnqueueTranslationOptions {
|
|
18
|
-
key: string;
|
|
19
|
-
targetLocale: string;
|
|
20
|
-
sourceLocale?: string;
|
|
21
|
-
tenantId?: string | null;
|
|
22
|
-
db: SmrtClassOptions['db'];
|
|
23
|
-
/** When true, skip the dedup check and force a fresh job. */
|
|
24
|
-
force?: boolean;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* SmrtObject that owns the translation job's `execute` method. The TaskRunner
|
|
29
|
-
* resolves jobs by `objectType` so the registered class name needs to match
|
|
30
|
-
* what `enqueueTranslationJob` writes.
|
|
31
|
-
*/
|
|
32
|
-
export declare class LanguageTranslationTask extends SmrtObject {
|
|
33
|
-
/**
|
|
34
|
-
* Job-runner entrypoint. Reads the translation payload, calls
|
|
35
|
-
* `@happyvertical/ai`, and upserts a `LanguageOverride` row.
|
|
36
|
-
*/
|
|
37
|
-
execute(args: TranslationJobPayload): Promise<{
|
|
38
|
-
skipped?: 'feature_disabled' | 'not_supported' | 'budget' | 'stale';
|
|
39
|
-
template?: string;
|
|
40
|
-
}>;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* Prompt key registered with `smrt-prompts` so ops can tune the AI translation
|
|
45
|
-
* style without redeploying. The prompt itself is referenced by the job
|
|
46
|
-
* handler when calling `@happyvertical/ai`.
|
|
47
|
-
*/
|
|
48
|
-
export declare const TRANSLATION_PROMPT_KEY = "smrt-languages.translation";
|
|
49
|
-
|
|
50
|
-
/** Payload pushed to the smrt-jobs translation handler. */
|
|
51
|
-
export declare interface TranslationJobPayload {
|
|
52
|
-
key: string;
|
|
53
|
-
sourceLocale: string;
|
|
54
|
-
sourceTemplate: string;
|
|
55
|
-
sourceHash: string;
|
|
56
|
-
targetLocale: string;
|
|
57
|
-
tenantId?: string | null;
|
|
58
|
-
/** Optional model override; defaults to config / @happyvertical/ai default. */
|
|
59
|
-
model?: string;
|
|
60
|
-
[key: string]: unknown;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
export { }
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
declare global {
|
|
67
|
-
var __smrtLanguageRegistry: Map<string, Map<string, LanguageStringDefinition>> | undefined;
|
|
68
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Subpath entry: `@happyvertical/smrt-languages/jobs`.
|
|
3
|
+
*
|
|
4
|
+
* Importing this module is what pulls in `@happyvertical/ai`, smrt-jobs,
|
|
5
|
+
* smrt-features, and smrt-prompts. Keeping it off the package root means
|
|
6
|
+
* consumers that only need `defineLanguageString` / `resolveLanguageString`
|
|
7
|
+
* do not pay for the translation-worker stack in their bundles.
|
|
8
|
+
*
|
|
9
|
+
* Use this entry from background workers, CLI tools, and tests that need
|
|
10
|
+
* to enqueue or run translation jobs directly.
|
|
11
|
+
*/
|
|
12
|
+
export { AUTO_TRANSLATE_FEATURE_KEY, enqueueTranslationJob, LanguageTranslationTask, TRANSLATION_PROMPT_KEY, } from './jobs/translation-job.js';
|
|
13
|
+
export type { TranslationJobPayload } from './types.js';
|
|
14
|
+
//# sourceMappingURL=jobs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jobs.d.ts","sourceRoot":"","sources":["../src/jobs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { LanguageStringDefinition, LanguageStringDefinitionInput } from './types.js';
|
|
2
|
+
declare global {
|
|
3
|
+
var __smrtLanguageRegistry: Map<string, Map<string, LanguageStringDefinition>> | undefined;
|
|
4
|
+
}
|
|
5
|
+
export declare const LanguageRegistry: {
|
|
6
|
+
register(input: LanguageStringDefinitionInput): LanguageStringDefinition;
|
|
7
|
+
get(key: string, locale: string): LanguageStringDefinition | undefined;
|
|
8
|
+
has(key: string, locale: string): boolean;
|
|
9
|
+
hasKey(key: string): boolean;
|
|
10
|
+
/** Return the locales that have a registered code default for the given key. */
|
|
11
|
+
getLocalesForKey(key: string): string[];
|
|
12
|
+
/** All registered (key, locale, template) triples. Used by the batch translator. */
|
|
13
|
+
getAll(): LanguageStringDefinition[];
|
|
14
|
+
/** Distinct keys currently registered. */
|
|
15
|
+
getKeys(): string[];
|
|
16
|
+
clear(): void;
|
|
17
|
+
};
|
|
18
|
+
export declare function defineLanguageString(input: LanguageStringDefinitionInput): LanguageStringDefinition;
|
|
19
|
+
//# sourceMappingURL=language-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"language-registry.d.ts","sourceRoot":"","sources":["../src/language-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,6BAA6B,EAC9B,MAAM,YAAY,CAAC;AAGpB,OAAO,CAAC,MAAM,CAAC;IAEb,IAAI,sBAAsB,EACtB,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC,GAClD,SAAS,CAAC;CACf;AAgBD,eAAO,MAAM,gBAAgB;oBACX,6BAA6B,GAAG,wBAAwB;aA4C/D,MAAM,UAAU,MAAM,GAAG,wBAAwB,GAAG,SAAS;aAI7D,MAAM,UAAU,MAAM,GAAG,OAAO;gBAI7B,MAAM,GAAG,OAAO;IAI5B,gFAAgF;0BAC1D,MAAM,GAAG,MAAM,EAAE;IAKvC,oFAAoF;cAC1E,wBAAwB,EAAE;IAUpC,0CAA0C;eAC/B,MAAM,EAAE;aAIV,IAAI;CAGd,CAAC;AAEF,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,6BAA6B,GACnC,wBAAwB,CAE1B"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ResolvedLanguageString, ResolveLanguageStringOptions } from './types.js';
|
|
2
|
+
export declare function resolveLanguageString(key: string, options?: ResolveLanguageStringOptions): Promise<ResolvedLanguageString>;
|
|
3
|
+
export declare function invalidateResolvedLanguageCache(key: string, locale: string, tenantId: string | null | undefined, db: unknown): void;
|
|
4
|
+
//# sourceMappingURL=language-resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"language-resolver.d.ts","sourceRoot":"","sources":["../src/language-resolver.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAGV,sBAAsB,EACtB,4BAA4B,EAC7B,MAAM,YAAY,CAAC;AAuLpB,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,4BAAiC,GACzC,OAAO,CAAC,sBAAsB,CAAC,CAuFjC;AAuCD,wBAAgB,+BAA+B,CAC7C,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACnC,EAAE,EAAE,OAAO,GACV,IAAI,CAEN"}
|
package/dist/manifest.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"version": "1.0.0",
|
|
3
3
|
"timestamp": 0,
|
|
4
4
|
"packageName": "@happyvertical/smrt-languages",
|
|
5
|
-
"packageVersion": "0.51.
|
|
5
|
+
"packageVersion": "0.51.33",
|
|
6
6
|
"objects": {
|
|
7
7
|
"@happyvertical/smrt-languages:LanguageOverrideCollection": {
|
|
8
8
|
"name": "languageoverridecollection",
|
|
@@ -234,94 +234,6 @@
|
|
|
234
234
|
},
|
|
235
235
|
"importPath": "@happyvertical/smrt-languages"
|
|
236
236
|
},
|
|
237
|
-
"@happyvertical/smrt-languages:LanguageTranslationTask": {
|
|
238
|
-
"name": "languagetranslationtask",
|
|
239
|
-
"className": "LanguageTranslationTask",
|
|
240
|
-
"qualifiedName": "@happyvertical/smrt-languages:LanguageTranslationTask",
|
|
241
|
-
"collection": "languagetranslationtasks",
|
|
242
|
-
"filePath": "/home/runner/work/smrt/smrt/packages/languages/src/jobs/translation-job.ts",
|
|
243
|
-
"packageName": "@happyvertical/smrt-languages",
|
|
244
|
-
"fields": {},
|
|
245
|
-
"methods": {
|
|
246
|
-
"execute": {
|
|
247
|
-
"name": "execute",
|
|
248
|
-
"async": true,
|
|
249
|
-
"parameters": [
|
|
250
|
-
{
|
|
251
|
-
"name": "args",
|
|
252
|
-
"type": "TranslationJobPayload",
|
|
253
|
-
"optional": false
|
|
254
|
-
}
|
|
255
|
-
],
|
|
256
|
-
"returnType": "Promise<object>",
|
|
257
|
-
"isStatic": false,
|
|
258
|
-
"isPublic": true
|
|
259
|
-
}
|
|
260
|
-
},
|
|
261
|
-
"decoratorConfig": {
|
|
262
|
-
"api": {
|
|
263
|
-
"include": []
|
|
264
|
-
},
|
|
265
|
-
"cli": {
|
|
266
|
-
"include": []
|
|
267
|
-
},
|
|
268
|
-
"mcp": {
|
|
269
|
-
"include": []
|
|
270
|
-
}
|
|
271
|
-
},
|
|
272
|
-
"extends": "SmrtObject",
|
|
273
|
-
"exportName": "LanguageTranslationTask",
|
|
274
|
-
"collectionExportName": "LanguageTranslationTaskCollection",
|
|
275
|
-
"schema": {
|
|
276
|
-
"tableName": "language_translation_tasks",
|
|
277
|
-
"ddl": "CREATE TABLE IF NOT EXISTS \"language_translation_tasks\" (\n \"id\" UUID PRIMARY KEY NOT NULL,\n \"slug\" TEXT NOT NULL,\n \"context\" TEXT NOT NULL DEFAULT '',\n \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp\n);",
|
|
278
|
-
"columns": {
|
|
279
|
-
"id": {
|
|
280
|
-
"type": "UUID",
|
|
281
|
-
"primaryKey": true,
|
|
282
|
-
"referenceKind": "id",
|
|
283
|
-
"notNull": true
|
|
284
|
-
},
|
|
285
|
-
"slug": {
|
|
286
|
-
"type": "TEXT",
|
|
287
|
-
"notNull": true
|
|
288
|
-
},
|
|
289
|
-
"context": {
|
|
290
|
-
"type": "TEXT",
|
|
291
|
-
"notNull": true,
|
|
292
|
-
"default": ""
|
|
293
|
-
},
|
|
294
|
-
"created_at": {
|
|
295
|
-
"type": "TIMESTAMP",
|
|
296
|
-
"notNull": true,
|
|
297
|
-
"default": "current_timestamp"
|
|
298
|
-
},
|
|
299
|
-
"updated_at": {
|
|
300
|
-
"type": "TIMESTAMP",
|
|
301
|
-
"notNull": true,
|
|
302
|
-
"default": "current_timestamp"
|
|
303
|
-
}
|
|
304
|
-
},
|
|
305
|
-
"indexes": [
|
|
306
|
-
{
|
|
307
|
-
"name": "language_translation_tasks_slug_context_idx",
|
|
308
|
-
"columns": [
|
|
309
|
-
"slug",
|
|
310
|
-
"context"
|
|
311
|
-
],
|
|
312
|
-
"unique": true
|
|
313
|
-
},
|
|
314
|
-
{
|
|
315
|
-
"name": "language_translation_tasks_created_at_idx",
|
|
316
|
-
"columns": [
|
|
317
|
-
"created_at"
|
|
318
|
-
]
|
|
319
|
-
}
|
|
320
|
-
],
|
|
321
|
-
"version": "2cfc8812"
|
|
322
|
-
},
|
|
323
|
-
"importPath": "@happyvertical/smrt-languages/jobs"
|
|
324
|
-
},
|
|
325
237
|
"@happyvertical/smrt-languages:LanguageOverride": {
|
|
326
238
|
"name": "languageoverride",
|
|
327
239
|
"className": "LanguageOverride",
|
|
@@ -591,6 +503,94 @@
|
|
|
591
503
|
"version": "4bef8abc"
|
|
592
504
|
},
|
|
593
505
|
"importPath": "@happyvertical/smrt-languages"
|
|
506
|
+
},
|
|
507
|
+
"@happyvertical/smrt-languages:LanguageTranslationTask": {
|
|
508
|
+
"name": "languagetranslationtask",
|
|
509
|
+
"className": "LanguageTranslationTask",
|
|
510
|
+
"qualifiedName": "@happyvertical/smrt-languages:LanguageTranslationTask",
|
|
511
|
+
"collection": "languagetranslationtasks",
|
|
512
|
+
"filePath": "/home/runner/work/smrt/smrt/packages/languages/src/jobs/translation-job.ts",
|
|
513
|
+
"packageName": "@happyvertical/smrt-languages",
|
|
514
|
+
"fields": {},
|
|
515
|
+
"methods": {
|
|
516
|
+
"execute": {
|
|
517
|
+
"name": "execute",
|
|
518
|
+
"async": true,
|
|
519
|
+
"parameters": [
|
|
520
|
+
{
|
|
521
|
+
"name": "args",
|
|
522
|
+
"type": "TranslationJobPayload",
|
|
523
|
+
"optional": false
|
|
524
|
+
}
|
|
525
|
+
],
|
|
526
|
+
"returnType": "Promise<object>",
|
|
527
|
+
"isStatic": false,
|
|
528
|
+
"isPublic": true
|
|
529
|
+
}
|
|
530
|
+
},
|
|
531
|
+
"decoratorConfig": {
|
|
532
|
+
"api": {
|
|
533
|
+
"include": []
|
|
534
|
+
},
|
|
535
|
+
"cli": {
|
|
536
|
+
"include": []
|
|
537
|
+
},
|
|
538
|
+
"mcp": {
|
|
539
|
+
"include": []
|
|
540
|
+
}
|
|
541
|
+
},
|
|
542
|
+
"extends": "SmrtObject",
|
|
543
|
+
"exportName": "LanguageTranslationTask",
|
|
544
|
+
"collectionExportName": "LanguageTranslationTaskCollection",
|
|
545
|
+
"schema": {
|
|
546
|
+
"tableName": "language_translation_tasks",
|
|
547
|
+
"ddl": "CREATE TABLE IF NOT EXISTS \"language_translation_tasks\" (\n \"id\" UUID PRIMARY KEY NOT NULL,\n \"slug\" TEXT NOT NULL,\n \"context\" TEXT NOT NULL DEFAULT '',\n \"created_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\n \"updated_at\" TIMESTAMP NOT NULL DEFAULT current_timestamp\n);",
|
|
548
|
+
"columns": {
|
|
549
|
+
"id": {
|
|
550
|
+
"type": "UUID",
|
|
551
|
+
"primaryKey": true,
|
|
552
|
+
"referenceKind": "id",
|
|
553
|
+
"notNull": true
|
|
554
|
+
},
|
|
555
|
+
"slug": {
|
|
556
|
+
"type": "TEXT",
|
|
557
|
+
"notNull": true
|
|
558
|
+
},
|
|
559
|
+
"context": {
|
|
560
|
+
"type": "TEXT",
|
|
561
|
+
"notNull": true,
|
|
562
|
+
"default": ""
|
|
563
|
+
},
|
|
564
|
+
"created_at": {
|
|
565
|
+
"type": "TIMESTAMP",
|
|
566
|
+
"notNull": true,
|
|
567
|
+
"default": "current_timestamp"
|
|
568
|
+
},
|
|
569
|
+
"updated_at": {
|
|
570
|
+
"type": "TIMESTAMP",
|
|
571
|
+
"notNull": true,
|
|
572
|
+
"default": "current_timestamp"
|
|
573
|
+
}
|
|
574
|
+
},
|
|
575
|
+
"indexes": [
|
|
576
|
+
{
|
|
577
|
+
"name": "language_translation_tasks_slug_context_idx",
|
|
578
|
+
"columns": [
|
|
579
|
+
"slug",
|
|
580
|
+
"context"
|
|
581
|
+
],
|
|
582
|
+
"unique": true
|
|
583
|
+
},
|
|
584
|
+
{
|
|
585
|
+
"name": "language_translation_tasks_created_at_idx",
|
|
586
|
+
"columns": [
|
|
587
|
+
"created_at"
|
|
588
|
+
]
|
|
589
|
+
}
|
|
590
|
+
],
|
|
591
|
+
"version": "2cfc8812"
|
|
592
|
+
},
|
|
593
|
+
"importPath": "@happyvertical/smrt-languages/jobs"
|
|
594
594
|
}
|
|
595
595
|
},
|
|
596
596
|
"moduleType": "smrt",
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { SmrtObject, type SmrtObjectOptions } from '@happyvertical/smrt-core';
|
|
2
|
+
import type { LanguageOverrideOptions } from '../types.js';
|
|
3
|
+
export interface LanguageOverrideCtorOptions extends SmrtObjectOptions, LanguageOverrideOptions {
|
|
4
|
+
}
|
|
5
|
+
export declare class LanguageOverride extends SmrtObject {
|
|
6
|
+
key: string;
|
|
7
|
+
locale: string;
|
|
8
|
+
tenantId: string | null;
|
|
9
|
+
template: string;
|
|
10
|
+
/** True when this row was produced by the AI translation job. */
|
|
11
|
+
auto_generated: boolean;
|
|
12
|
+
/** sha256 of the source template at translation time, for re-translation gating. */
|
|
13
|
+
source_hash: string | null;
|
|
14
|
+
/** AI model identifier (null for human-edited rows). */
|
|
15
|
+
ai_model: string | null;
|
|
16
|
+
/** ISO timestamp marking admin review of an auto-generated row. */
|
|
17
|
+
reviewed_at: string | null;
|
|
18
|
+
/** User ID of the reviewer. */
|
|
19
|
+
reviewed_by: string | null;
|
|
20
|
+
constructor(options?: LanguageOverrideCtorOptions);
|
|
21
|
+
save(): Promise<this>;
|
|
22
|
+
private saveAfterIdentityChange;
|
|
23
|
+
private saveAfterIdentityChangeInTransaction;
|
|
24
|
+
private saveAfterIdentityChangeWithDeferredDelete;
|
|
25
|
+
delete(): Promise<void>;
|
|
26
|
+
/**
|
|
27
|
+
* Mark this auto-generated row as reviewed by an admin. Useful for the
|
|
28
|
+
* admin review queue surfaced via `smrt languages approve <id>`.
|
|
29
|
+
*/
|
|
30
|
+
approve(reviewerId: string): Promise<this>;
|
|
31
|
+
private getPersistedIdentity;
|
|
32
|
+
}
|
|
33
|
+
export type { LanguageOverrideOptions } from '../types.js';
|
|
34
|
+
//# sourceMappingURL=LanguageOverride.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LanguageOverride.d.ts","sourceRoot":"","sources":["../../src/models/LanguageOverride.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EACV,KAAK,iBAAiB,EAEvB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAQ3D,MAAM,WAAW,2BACf,SAAQ,iBAAiB,EACvB,uBAAuB;CAAG;AAE9B,qBAYa,gBAAiB,SAAQ,UAAU;IAE9C,GAAG,EAAE,MAAM,CAAM;IAGjB,MAAM,EAAE,MAAM,CAAM;IAGpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAQ;IAG/B,QAAQ,EAAE,MAAM,CAAM;IAEtB,iEAAiE;IAEjE,cAAc,EAAE,OAAO,CAAS;IAEhC,oFAAoF;IAEpF,WAAW,EAAE,MAAM,GAAG,IAAI,CAAQ;IAElC,wDAAwD;IAExD,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE/B,mEAAmE;IAEnE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAQ;IAElC,+BAA+B;IAE/B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAQ;gBAEtB,OAAO,GAAE,2BAAgC;IAoBtC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YA+CtB,uBAAuB;YAOvB,oCAAoC;YA+BpC,yCAAyC;IA4BxC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAQtC;;;OAGG;IACG,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAMlC,oBAAoB;CA0BnC;AAED,YAAY,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/smrt-knowledge.json
CHANGED
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
"sensitiveFieldsExcluded": true,
|
|
4
4
|
"generatedAt": "1970-01-01T00:00:00.000Z",
|
|
5
5
|
"packageName": "@happyvertical/smrt-languages",
|
|
6
|
-
"packageVersion": "0.51.
|
|
6
|
+
"packageVersion": "0.51.33",
|
|
7
7
|
"sourceManifestPath": "dist/manifest.json",
|
|
8
8
|
"agentDocPath": "AGENTS.md",
|
|
9
9
|
"sourceHashes": {
|
|
10
|
-
"manifest": "
|
|
11
|
-
"packageJson": "
|
|
10
|
+
"manifest": "d5d774c2033a7c24a9c7cfbd66ba57371dc4d312b5a78f2a656c3a41b3e35d94",
|
|
11
|
+
"packageJson": "5e18e69450a8e63a00e774b4b657863d8fb16659cc75edc933dcf7af56262011",
|
|
12
12
|
"agents": "45d290839ba542a82a3cdf421d919a9dbc31f5280823ac432662bd678a087d7a"
|
|
13
13
|
},
|
|
14
14
|
"exports": [
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"@happyvertical/smrt-cli": "workspace:*",
|
|
32
32
|
"@happyvertical/smrt-vitest": "workspace:*",
|
|
33
33
|
"@types/node": "24.13.6",
|
|
34
|
-
"typescript": "
|
|
34
|
+
"typescript": "6.0.3",
|
|
35
35
|
"vite": "8.1.4",
|
|
36
36
|
"vitest": "4.1.10"
|
|
37
37
|
},
|
|
@@ -234,44 +234,6 @@
|
|
|
234
234
|
"tags": [],
|
|
235
235
|
"risks": []
|
|
236
236
|
},
|
|
237
|
-
{
|
|
238
|
-
"name": "LanguageTranslationTask",
|
|
239
|
-
"qualifiedName": "@happyvertical/smrt-languages:LanguageTranslationTask",
|
|
240
|
-
"collection": "languagetranslationtasks",
|
|
241
|
-
"tableName": "language_translation_tasks",
|
|
242
|
-
"packageName": "@happyvertical/smrt-languages",
|
|
243
|
-
"extends": "SmrtObject",
|
|
244
|
-
"fields": [],
|
|
245
|
-
"relationships": [],
|
|
246
|
-
"methods": [
|
|
247
|
-
"execute"
|
|
248
|
-
],
|
|
249
|
-
"methodSignatures": [
|
|
250
|
-
{
|
|
251
|
-
"name": "execute",
|
|
252
|
-
"async": true,
|
|
253
|
-
"params": [
|
|
254
|
-
"args: TranslationJobPayload"
|
|
255
|
-
],
|
|
256
|
-
"returns": "Promise<object>"
|
|
257
|
-
}
|
|
258
|
-
],
|
|
259
|
-
"surfaces": [],
|
|
260
|
-
"withheldSurfaces": [
|
|
261
|
-
{
|
|
262
|
-
"kind": "api",
|
|
263
|
-
"operation": "execute",
|
|
264
|
-
"code": "not-included",
|
|
265
|
-
"reason": "not listed in api.include",
|
|
266
|
-
"objectName": "@happyvertical/smrt-languages:LanguageTranslationTask"
|
|
267
|
-
}
|
|
268
|
-
],
|
|
269
|
-
"relationshipFeatures": [
|
|
270
|
-
"uuidColumns"
|
|
271
|
-
],
|
|
272
|
-
"tags": [],
|
|
273
|
-
"risks": []
|
|
274
|
-
},
|
|
275
237
|
{
|
|
276
238
|
"name": "LanguageOverride",
|
|
277
239
|
"qualifiedName": "@happyvertical/smrt-languages:LanguageOverride",
|
|
@@ -468,6 +430,44 @@
|
|
|
468
430
|
],
|
|
469
431
|
"tags": [],
|
|
470
432
|
"risks": []
|
|
433
|
+
},
|
|
434
|
+
{
|
|
435
|
+
"name": "LanguageTranslationTask",
|
|
436
|
+
"qualifiedName": "@happyvertical/smrt-languages:LanguageTranslationTask",
|
|
437
|
+
"collection": "languagetranslationtasks",
|
|
438
|
+
"tableName": "language_translation_tasks",
|
|
439
|
+
"packageName": "@happyvertical/smrt-languages",
|
|
440
|
+
"extends": "SmrtObject",
|
|
441
|
+
"fields": [],
|
|
442
|
+
"relationships": [],
|
|
443
|
+
"methods": [
|
|
444
|
+
"execute"
|
|
445
|
+
],
|
|
446
|
+
"methodSignatures": [
|
|
447
|
+
{
|
|
448
|
+
"name": "execute",
|
|
449
|
+
"async": true,
|
|
450
|
+
"params": [
|
|
451
|
+
"args: TranslationJobPayload"
|
|
452
|
+
],
|
|
453
|
+
"returns": "Promise<object>"
|
|
454
|
+
}
|
|
455
|
+
],
|
|
456
|
+
"surfaces": [],
|
|
457
|
+
"withheldSurfaces": [
|
|
458
|
+
{
|
|
459
|
+
"kind": "api",
|
|
460
|
+
"operation": "execute",
|
|
461
|
+
"code": "not-included",
|
|
462
|
+
"reason": "not listed in api.include",
|
|
463
|
+
"objectName": "@happyvertical/smrt-languages:LanguageTranslationTask"
|
|
464
|
+
}
|
|
465
|
+
],
|
|
466
|
+
"relationshipFeatures": [
|
|
467
|
+
"uuidColumns"
|
|
468
|
+
],
|
|
469
|
+
"tags": [],
|
|
470
|
+
"risks": []
|
|
471
471
|
}
|
|
472
472
|
],
|
|
473
473
|
"surfaces": [
|