aimeat 3.0.0 → 3.1.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.
- package/dist/build-stamp.json +4 -4
- package/dist/locales/en.json +9103 -9101
- package/dist/locales/es.json +9095 -0
- package/dist/locales/fi.json +9103 -9101
- package/dist/public/cortex-bundled/aimeat-input.js +611 -0
- package/dist/public/cortex-bundled/aimeat-input.yaml +149 -0
- package/dist/public/css/views/agents-detail.css +11 -0
- package/dist/public/js/utils.js +12 -7
- package/dist/public/spa.html +5 -2
- package/dist/public/views/admin/email-tab.js +459 -458
- package/dist/public/views/profile/agents/agent-card.js +25 -0
- package/dist/public/views/profile/agents/scope-model.js +296 -288
- package/dist/public/views/profile/agents-tab.js +26 -3
- package/dist/scripts/check-ai-disclosure.d.ts.map +1 -1
- package/dist/scripts/check-ai-disclosure.js +33 -18
- package/dist/scripts/check-ai-disclosure.js.map +1 -1
- package/dist/scripts/check-locales.d.ts +2 -0
- package/dist/scripts/check-locales.d.ts.map +1 -0
- package/dist/scripts/check-locales.js +46 -0
- package/dist/scripts/check-locales.js.map +1 -0
- package/dist/scripts/lib/locale-files.d.ts +40 -0
- package/dist/scripts/lib/locale-files.d.ts.map +1 -0
- package/dist/scripts/lib/locale-files.js +181 -0
- package/dist/scripts/lib/locale-files.js.map +1 -0
- package/dist/scripts/locale-extract.d.ts +2 -0
- package/dist/scripts/locale-extract.d.ts.map +1 -0
- package/dist/scripts/locale-extract.js +99 -0
- package/dist/scripts/locale-extract.js.map +1 -0
- package/dist/scripts/locale-merge.d.ts +2 -0
- package/dist/scripts/locale-merge.d.ts.map +1 -0
- package/dist/scripts/locale-merge.js +114 -0
- package/dist/scripts/locale-merge.js.map +1 -0
- package/dist/src/auth/middleware.d.ts +6 -0
- package/dist/src/auth/middleware.d.ts.map +1 -1
- package/dist/src/auth/middleware.js +24 -4
- package/dist/src/auth/middleware.js.map +1 -1
- package/dist/src/cli/connect/mcp/tools/agent-management.d.ts +1 -0
- package/dist/src/cli/connect/mcp/tools/agent-management.d.ts.map +1 -1
- package/dist/src/cli/connect/mcp/tools/agent-management.js +9 -0
- package/dist/src/cli/connect/mcp/tools/agent-management.js.map +1 -1
- package/dist/src/cli/connect/mcp/tools/schedules.d.ts +3 -0
- package/dist/src/cli/connect/mcp/tools/schedules.d.ts.map +1 -1
- package/dist/src/cli/connect/mcp/tools/schedules.js +5 -0
- package/dist/src/cli/connect/mcp/tools/schedules.js.map +1 -1
- package/dist/src/cli/connect/tool-call-defs-agent.d.ts +2 -0
- package/dist/src/cli/connect/tool-call-defs-agent.d.ts.map +1 -1
- package/dist/src/cli/connect/tool-call-defs-agent.js +16 -0
- package/dist/src/cli/connect/tool-call-defs-agent.js.map +1 -1
- package/dist/src/cli/connect/tool-call-defs-organism.d.ts.map +1 -1
- package/dist/src/cli/connect/tool-call-defs-organism.js +6 -0
- package/dist/src/cli/connect/tool-call-defs-organism.js.map +1 -1
- package/dist/src/config-operator.d.ts +4 -1
- package/dist/src/config-operator.d.ts.map +1 -1
- package/dist/src/config-operator.js +4 -4
- package/dist/src/config-operator.js.map +1 -1
- package/dist/src/data/library-packs/cortex.d.ts +3 -0
- package/dist/src/data/library-packs/cortex.d.ts.map +1 -1
- package/dist/src/data/library-packs/cortex.js +58 -0
- package/dist/src/data/library-packs/cortex.js.map +1 -1
- package/dist/src/generated/api-types.d.ts +90 -2
- package/dist/src/generated/api-types.d.ts.map +1 -1
- package/dist/src/i18n.d.ts +1 -1
- package/dist/src/i18n.d.ts.map +1 -1
- package/dist/src/i18n.js +13 -6
- package/dist/src/i18n.js.map +1 -1
- package/dist/src/mcp/agent-management.d.ts +6 -2
- package/dist/src/mcp/agent-management.d.ts.map +1 -1
- package/dist/src/mcp/agent-management.js +34 -3
- package/dist/src/mcp/agent-management.js.map +1 -1
- package/dist/src/mcp/agent-schedules.d.ts +6 -2
- package/dist/src/mcp/agent-schedules.d.ts.map +1 -1
- package/dist/src/mcp/agent-schedules.js +22 -1
- package/dist/src/mcp/agent-schedules.js.map +1 -1
- package/dist/src/mcp/annotations.d.ts +1 -0
- package/dist/src/mcp/annotations.d.ts.map +1 -1
- package/dist/src/mcp/annotations.js +5 -0
- package/dist/src/mcp/annotations.js.map +1 -1
- package/dist/src/mcp/catalog/definitions/agent-messaging.d.ts +2 -0
- package/dist/src/mcp/catalog/definitions/agent-messaging.d.ts.map +1 -1
- package/dist/src/mcp/catalog/definitions/agent-messaging.js +12 -0
- package/dist/src/mcp/catalog/definitions/agent-messaging.js.map +1 -1
- package/dist/src/mcp/catalog/definitions/schedules-tasks-memory.d.ts.map +1 -1
- package/dist/src/mcp/catalog/definitions/schedules-tasks-memory.js +7 -0
- package/dist/src/mcp/catalog/definitions/schedules-tasks-memory.js.map +1 -1
- package/dist/src/mcp/catalog/scopes.d.ts.map +1 -1
- package/dist/src/mcp/catalog/scopes.js +5 -0
- package/dist/src/mcp/catalog/scopes.js.map +1 -1
- package/dist/src/mcp/catalog/surfaces.d.ts.map +1 -1
- package/dist/src/mcp/catalog/surfaces.js +4 -2
- package/dist/src/mcp/catalog/surfaces.js.map +1 -1
- package/dist/src/routes/admin-features.d.ts.map +1 -1
- package/dist/src/routes/admin-features.js +5 -4
- package/dist/src/routes/admin-features.js.map +1 -1
- package/dist/src/routes/agents/constants.d.ts +18 -2
- package/dist/src/routes/agents/constants.d.ts.map +1 -1
- package/dist/src/routes/agents/constants.js +18 -2
- package/dist/src/routes/agents/constants.js.map +1 -1
- package/dist/src/routes/agents/device-auth.d.ts +2 -0
- package/dist/src/routes/agents/device-auth.d.ts.map +1 -1
- package/dist/src/routes/agents/device-auth.js +22 -2
- package/dist/src/routes/agents/device-auth.js.map +1 -1
- package/dist/src/routes/agents/management.d.ts +7 -0
- package/dist/src/routes/agents/management.d.ts.map +1 -1
- package/dist/src/routes/agents/management.js +59 -4
- package/dist/src/routes/agents/management.js.map +1 -1
- package/dist/src/routes/agents/profile-metadata.d.ts +4 -0
- package/dist/src/routes/agents/profile-metadata.d.ts.map +1 -1
- package/dist/src/routes/agents/profile-metadata.js +31 -2
- package/dist/src/routes/agents/profile-metadata.js.map +1 -1
- package/dist/src/routes/agents/registration.d.ts +2 -0
- package/dist/src/routes/agents/registration.d.ts.map +1 -1
- package/dist/src/routes/agents/registration.js +3 -0
- package/dist/src/routes/agents/registration.js.map +1 -1
- package/dist/src/routes/ai-transparency.d.ts.map +1 -1
- package/dist/src/routes/ai-transparency.js +5 -1
- package/dist/src/routes/ai-transparency.js.map +1 -1
- package/dist/src/routes/auth.d.ts +3 -0
- package/dist/src/routes/auth.d.ts.map +1 -1
- package/dist/src/routes/auth.js +22 -5
- package/dist/src/routes/auth.js.map +1 -1
- package/dist/src/routes/portal.d.ts +3 -0
- package/dist/src/routes/portal.d.ts.map +1 -1
- package/dist/src/routes/portal.js +39 -17
- package/dist/src/routes/portal.js.map +1 -1
- package/dist/src/routes/schedules.d.ts +3 -0
- package/dist/src/routes/schedules.d.ts.map +1 -1
- package/dist/src/routes/schedules.js +16 -29
- package/dist/src/routes/schedules.js.map +1 -1
- package/dist/src/services/agent-profile-write.d.ts +13 -1
- package/dist/src/services/agent-profile-write.d.ts.map +1 -1
- package/dist/src/services/agent-profile-write.js +55 -0
- package/dist/src/services/agent-profile-write.js.map +1 -1
- package/dist/src/services/build-app-prompt.d.ts.map +1 -1
- package/dist/src/services/build-app-prompt.js +22 -0
- package/dist/src/services/build-app-prompt.js.map +1 -1
- package/dist/src/services/email-templates.d.ts.map +1 -1
- package/dist/src/services/email-templates.js +79 -3
- package/dist/src/services/email-templates.js.map +1 -1
- package/dist/src/services/notification-templates.d.ts +5 -3
- package/dist/src/services/notification-templates.d.ts.map +1 -1
- package/dist/src/services/notification-templates.js +23 -3
- package/dist/src/services/notification-templates.js.map +1 -1
- package/dist/src/services/schedule-write.d.ts +25 -2
- package/dist/src/services/schedule-write.d.ts.map +1 -1
- package/dist/src/services/schedule-write.js +44 -0
- package/dist/src/services/schedule-write.js.map +1 -1
- package/dist/src/storage/providers/postgres-kysely/db-types.d.ts +2 -0
- package/dist/src/storage/providers/postgres-kysely/db-types.d.ts.map +1 -1
- package/dist/src/storage/providers/postgres-kysely/methods/identity.d.ts.map +1 -1
- package/dist/src/storage/providers/postgres-kysely/methods/identity.js +5 -1
- package/dist/src/storage/providers/postgres-kysely/methods/identity.js.map +1 -1
- package/dist/src/storage/providers/postgres-kysely/methods/sessions.d.ts +1 -0
- package/dist/src/storage/providers/postgres-kysely/methods/sessions.d.ts.map +1 -1
- package/dist/src/storage/providers/postgres-kysely/methods/sessions.js +4 -0
- package/dist/src/storage/providers/postgres-kysely/methods/sessions.js.map +1 -1
- package/dist/src/storage/providers/postgres-kysely/migrations/0034_agent_console_url.sql +16 -0
- package/dist/src/storage/providers/postgres-kysely/migrations/0035_agent_registered_by.sql +19 -0
- package/dist/src/storage/providers/sqlite/methods/extensions-notify.d.ts +2 -0
- package/dist/src/storage/providers/sqlite/methods/extensions-notify.d.ts.map +1 -1
- package/dist/src/storage/providers/sqlite/methods/extensions-notify.js +4 -0
- package/dist/src/storage/providers/sqlite/methods/extensions-notify.js.map +1 -1
- package/dist/src/storage/providers/sqlite/methods/owner.d.ts +5 -0
- package/dist/src/storage/providers/sqlite/methods/owner.d.ts.map +1 -1
- package/dist/src/storage/providers/sqlite/methods/owner.js +13 -4
- package/dist/src/storage/providers/sqlite/methods/owner.js.map +1 -1
- package/dist/src/storage/providers/sqlite/repos/auth.d.ts +2 -0
- package/dist/src/storage/providers/sqlite/repos/auth.d.ts.map +1 -1
- package/dist/src/storage/providers/sqlite/repos/auth.js +4 -0
- package/dist/src/storage/providers/sqlite/repos/auth.js.map +1 -1
- package/dist/src/storage/providers/sqlite/schema-tables-1.d.ts +3 -0
- package/dist/src/storage/providers/sqlite/schema-tables-1.d.ts.map +1 -1
- package/dist/src/storage/providers/sqlite/schema-tables-1.js +4 -2
- package/dist/src/storage/providers/sqlite/schema-tables-1.js.map +1 -1
- package/dist/src/storage/providers/sqlite/schema-tables-2.d.ts +3 -0
- package/dist/src/storage/providers/sqlite/schema-tables-2.d.ts.map +1 -1
- package/dist/src/storage/providers/sqlite/schema-tables-2.js +4 -3
- package/dist/src/storage/providers/sqlite/schema-tables-2.js.map +1 -1
- package/dist/src/storage/providers/sqlite/schema-tables-3.d.ts +3 -0
- package/dist/src/storage/providers/sqlite/schema-tables-3.d.ts.map +1 -1
- package/dist/src/storage/providers/sqlite/schema-tables-3.js +6 -9
- package/dist/src/storage/providers/sqlite/schema-tables-3.js.map +1 -1
- package/dist/src/storage/providers/sqlite/schema.d.ts +6 -0
- package/dist/src/storage/providers/sqlite/schema.d.ts.map +1 -1
- package/dist/src/storage/providers/sqlite/schema.js +9 -0
- package/dist/src/storage/providers/sqlite/schema.js.map +1 -1
- package/dist/src/storage/repositories/session.repository.d.ts +14 -0
- package/dist/src/storage/repositories/session.repository.d.ts.map +1 -1
- package/dist/src/storage/repositories/session.repository.js +2 -0
- package/dist/src/storage/repositories/session.repository.js.map +1 -1
- package/dist/src/storage/storage-factory.d.ts +6 -0
- package/dist/src/storage/storage-factory.d.ts.map +1 -1
- package/dist/src/storage/storage-factory.js +38 -19
- package/dist/src/storage/storage-factory.js.map +1 -1
- package/dist/src/storage/types/identity.d.ts +31 -0
- package/dist/src/storage/types/identity.d.ts.map +1 -1
- package/dist/src/utils/gaii.d.ts +11 -0
- package/dist/src/utils/gaii.d.ts.map +1 -1
- package/dist/src/utils/gaii.js +16 -0
- package/dist/src/utils/gaii.js.map +1 -1
- package/dist/static/sdk-libs/ai/strings.js +5 -2
- package/dist/static/sdk-libs/auth/i18n.js +9 -4
- package/dist/static/sdk-libs/auth/modal.js +11 -3
- package/dist/static/sdk-libs/auth/pill-strings.js +52 -0
- package/dist/static/sdk-libs/auth/pill.js +16 -2
- package/dist/static/sdk-libs/dist/aimeat-ai.js +30 -1
- package/dist/static/sdk-libs/dist/aimeat-auth.js +61 -5
- package/dist/static/sdk-libs/dist/aimeat-game.js +32 -2
- package/dist/static/sdk-libs/dist/aimeat-header.js +9 -4
- package/dist/static/sdk-libs/game/i18n.js +38 -7
- package/dist/static/sdk-libs/header/index.js +11 -5
- package/package.json +4 -1
|
@@ -61,6 +61,9 @@
|
|
|
61
61
|
* active tasks already fetched in loadData, so no extra requests); clicking a
|
|
62
62
|
* row deep-links into that agent's Tasks tab and auto-opens the task
|
|
63
63
|
* (expandedAgent + deepLink → AgentCard preSelectedTab/openTaskId).
|
|
64
|
+
* v3.10.0 -- 2026-08-13 -- `?tab=agents&agent=<name>` expands that agent, so an agent has an
|
|
65
|
+
* address a chat can hand to the person who asked for it. The parameter is consumed on arrival
|
|
66
|
+
* (replaceState) — it is a way in, not part of the URL you keep.
|
|
64
67
|
* v3.9.0 -- 2026-08-08 -- Copy control unified: the bespoke .copy-prompt-btn is the shared .btn-primary, whose
|
|
65
68
|
* .copied state now lives in theme.css. Copy labels come from the shared common.* keys.
|
|
66
69
|
*/
|
|
@@ -105,6 +108,14 @@ export default function AgentsTab({ session, showToast, onStats }) {
|
|
|
105
108
|
const [activeTasksMap, setActiveTasksMap] = useState({});
|
|
106
109
|
// Deep-link request from the running-now panel: { agent, taskId, nonce }.
|
|
107
110
|
// The nonce makes a repeat click re-fire the open even for the same task.
|
|
111
|
+
// Read during the first RENDER, not in an effect: the profile shell replaces the URL with a bare
|
|
112
|
+
// `/v1/profile?tab=<id>` on its own first-mount effect, so anything still living in the query
|
|
113
|
+
// string by then is gone. Captured here, consumed by the deep-link effect below.
|
|
114
|
+
const [urlAgent] = useState(() => {
|
|
115
|
+
try { return new URLSearchParams(window.location.search).get('agent'); }
|
|
116
|
+
// eslint-disable-next-line aimeat/no-silent-catch -- no query string, no deep link
|
|
117
|
+
catch { return null; }
|
|
118
|
+
});
|
|
108
119
|
const [deepLink, setDeepLink] = useState(null);
|
|
109
120
|
const deepLinkNonce = useRef(0);
|
|
110
121
|
// Per-agent unseen-change counts { name: { tasks, messages, memory } } driving
|
|
@@ -345,11 +356,20 @@ export default function AgentsTab({ session, showToast, onStats }) {
|
|
|
345
356
|
setExpandedAgent(prev => prev === name ? null : name);
|
|
346
357
|
}
|
|
347
358
|
|
|
348
|
-
// External deep-link
|
|
349
|
-
// agent
|
|
359
|
+
// External deep-link, two ways in:
|
|
360
|
+
// • ?tab=agents&agent=<name> — an ADDRESS, so a chat that just created an agent can hand the
|
|
361
|
+
// person a link straight to it. The parameter is stripped once used, so Back does not
|
|
362
|
+
// re-expand and the URL the person keeps is the plain tab.
|
|
363
|
+
// • sessionStorage `aimeat.agents.open` — the home dashboard's Agents card, which primes a name
|
|
364
|
+
// before switching tab (in-app, no URL to write).
|
|
350
365
|
useEffect(() => {
|
|
351
366
|
try {
|
|
352
|
-
|
|
367
|
+
if (urlAgent) {
|
|
368
|
+
const url = new URL(window.location.href);
|
|
369
|
+
url.searchParams.delete('agent');
|
|
370
|
+
window.history.replaceState({}, '', url.pathname + url.search + url.hash);
|
|
371
|
+
}
|
|
372
|
+
const name = urlAgent || sessionStorage.getItem('aimeat.agents.open');
|
|
353
373
|
if (!name) return;
|
|
354
374
|
sessionStorage.removeItem('aimeat.agents.open');
|
|
355
375
|
setExpandedAgent(name);
|
|
@@ -358,6 +378,9 @@ export default function AgentsTab({ session, showToast, onStats }) {
|
|
|
358
378
|
}, 500);
|
|
359
379
|
// eslint-disable-next-line aimeat/no-silent-catch -- noop
|
|
360
380
|
} catch { /* noop */ }
|
|
381
|
+
// urlAgent is captured once at first render and never changes; the empty-deps intent is
|
|
382
|
+
// "on mount", and re-running this would re-expand an agent the person had since collapsed.
|
|
383
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
361
384
|
}, []);
|
|
362
385
|
|
|
363
386
|
// Running-now panel → open a specific agent's Tasks tab on a specific task.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-ai-disclosure.d.ts","sourceRoot":"","sources":["../../scripts/check-ai-disclosure.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"check-ai-disclosure.d.ts","sourceRoot":"","sources":["../../scripts/check-ai-disclosure.ts"],"names":[],"mappings":"AAwEA;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAuBjD;AA0BD;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAS7D"}
|
|
@@ -20,12 +20,15 @@
|
|
|
20
20
|
* shell-callable dispatch all carry what it promises
|
|
21
21
|
* 3. one publish path — storage.createApp() has one caller plus named distinct acts
|
|
22
22
|
* 4. external vocabulary — IPTC/IETF values live only in the adapter (comments ignored)
|
|
23
|
-
* 5. locale parity — every aiLabel.* key in
|
|
23
|
+
* 5. locale parity — every aiLabel.* key in every locale shipped, no [TODO:xx]
|
|
24
24
|
* 6. the build prompt — the transparency non-negotiable is still literally in it
|
|
25
25
|
* 7. derived visibility — both providers' PUBLICLY_LINKED cover the declared containers
|
|
26
26
|
* @usage pnpm check:ai-disclosure (exit 1 on any violation)
|
|
27
27
|
* pnpm check:ai-disclosure --list (print what each assertion currently protects)
|
|
28
28
|
* @version-history
|
|
29
|
+
* v1.4.0 — 2026-08-12 — Assertion 5 reads the language list off locales/ instead of naming en and
|
|
30
|
+
* fi. Spanish was added, and a gate that had to be edited to notice a new language would have
|
|
31
|
+
* reported green on a disclosure nobody had written.
|
|
29
32
|
* v1.3.0 — 2026-08-01 — TARGET-058 Phase 11b. Assertion 2c: the READ direction. Phase 11 fixed
|
|
30
33
|
* writes and left reads broken, which is the same mistake one layer along.
|
|
31
34
|
* v1.2.0 — 2026-08-01 — TARGET-058 Phase 11. Assertion 2b: the gate reads BOTH MCP surfaces and the
|
|
@@ -528,31 +531,43 @@ function checkVocabularyContainment() {
|
|
|
528
531
|
}
|
|
529
532
|
// ── 5. LOCALE PARITY FOR THE LABEL COPY ─────────────────────────────────────────────────────────
|
|
530
533
|
// Rule 4, enforced rather than remembered. A label string is a compliance string: an English
|
|
531
|
-
// fallback shown to a Finnish reader is a disclosure they were not given in their own
|
|
534
|
+
// fallback shown to a Finnish or Spanish reader is a disclosure they were not given in their own
|
|
535
|
+
// language. The list of languages is read from locales/ rather than typed here, so the language
|
|
536
|
+
// somebody adds next enforces itself on the commit that adds it.
|
|
537
|
+
/** Every locale the node ships, taken from the files themselves. English first, then the rest. */
|
|
538
|
+
function shippedLocales() {
|
|
539
|
+
const tags = readdirSync(join(root, 'locales'))
|
|
540
|
+
.filter(f => /^[a-z]{2}\.json$/.test(f))
|
|
541
|
+
.map(f => f.slice(0, 2));
|
|
542
|
+
return ['en', ...tags.filter(t => t !== 'en').sort()];
|
|
543
|
+
}
|
|
532
544
|
function checkLocaleParity() {
|
|
545
|
+
const [, ...others] = shippedLocales();
|
|
533
546
|
const en = JSON.parse(read('locales/en.json'));
|
|
534
|
-
const fi = JSON.parse(read('locales/fi.json'));
|
|
535
547
|
const enKeys = Object.keys(en.aiLabel ?? {});
|
|
536
|
-
const fiKeys = Object.keys(fi.aiLabel ?? {});
|
|
537
548
|
if (enKeys.length === 0) {
|
|
538
549
|
fail('locales', 'locales/en.json has no aiLabel.* keys at all', 'the visible label reads its words from these keys; without them every label falls back to a '
|
|
539
550
|
+ 'raw key string.');
|
|
540
551
|
return;
|
|
541
552
|
}
|
|
542
|
-
for (const
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
553
|
+
for (const tag of others) {
|
|
554
|
+
const loc = JSON.parse(read(`locales/${tag}.json`));
|
|
555
|
+
const locKeys = Object.keys(loc.aiLabel ?? {});
|
|
556
|
+
for (const k of enKeys) {
|
|
557
|
+
if (!locKeys.includes(k)) {
|
|
558
|
+
fail('locales', `aiLabel.${k} exists in en.json but not in ${tag}.json`, `add it in ${tag}, composed in that language rather than translated from the English. `
|
|
559
|
+
+ 'This is the sentence that reader is legally owed.');
|
|
560
|
+
}
|
|
546
561
|
}
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
562
|
+
for (const k of locKeys) {
|
|
563
|
+
if (!enKeys.includes(k))
|
|
564
|
+
fail('locales', `aiLabel.${k} exists in ${tag}.json but not in en.json`, 'add the English.');
|
|
565
|
+
}
|
|
566
|
+
for (const [k, v] of Object.entries(loc.aiLabel ?? {})) {
|
|
567
|
+
if (String(v).includes(`[TODO:${tag}]`)) {
|
|
568
|
+
fail('locales', `aiLabel.${k} in ${tag}.json is still a [TODO:${tag}] placeholder`, `write the ${tag} text. A placeholder shipped as a disclosure is worse than an English `
|
|
569
|
+
+ 'one, because it reads as broken software rather than as a statement.');
|
|
570
|
+
}
|
|
556
571
|
}
|
|
557
572
|
}
|
|
558
573
|
}
|
|
@@ -626,7 +641,7 @@ function listProtected() {
|
|
|
626
641
|
+ `the ${CONNECTOR_SHELL_WRAPPER} wrapper must all carry them`);
|
|
627
642
|
console.log(` 3. one publish path — ${PUBLISH_PATH}; ${Object.keys(CREATE_APP_DISTINCT_ACTS).length} distinct acts named`);
|
|
628
643
|
console.log(` 4. vocabulary — ${EXTERNAL_VOCABULARY.length} value tokens confined to ${ADAPTERS}`);
|
|
629
|
-
console.log(
|
|
644
|
+
console.log(` 5. locales — every aiLabel.* key in ${shippedLocales().join(' + ')}, no [TODO:xx]`);
|
|
630
645
|
console.log(` 6. build prompt — ${BUILD_PROMPT_NON_NEGOTIABLES.length} literals must be present`);
|
|
631
646
|
console.log(` 7. derived visibility — ${PUBLICLY_LINKED_CONTAINERS.map(c => c.name).join(', ')} on both providers\n`);
|
|
632
647
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-ai-disclosure.js","sourceRoot":"","sources":["../../scripts/check-ai-disclosure.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"check-ai-disclosure.js","sourceRoot":"","sources":["../../scripts/check-ai-disclosure.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-locales.d.ts","sourceRoot":"","sources":["../../scripts/check-locales.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file check-locales.ts
|
|
3
|
+
* @description Keeps the language files honest against locales/en.json, which is the source of
|
|
4
|
+
* truth for what keys exist and what shape each value has.
|
|
5
|
+
*
|
|
6
|
+
* WHY IT EXISTS. Until 2026-08-12 there were exactly two language files, and "en.json and fi.json
|
|
7
|
+
* change together" held because a person editing one could see the other. Spanish made it three,
|
|
8
|
+
* and a rule that depends on remembering does not survive a third file. This check does not
|
|
9
|
+
* demand a complete translation — a missing key falls back to English per key, by design, and
|
|
10
|
+
* that is how a language gets filled in over several passes. It demands that what IS there is
|
|
11
|
+
* usable, and the four ways it can fail live in lib/locale-files.ts next to the tools that write
|
|
12
|
+
* these files.
|
|
13
|
+
* @structure
|
|
14
|
+
* - coverage line per locale, then findDefects() from the shared library
|
|
15
|
+
* @usage pnpm check:locales (exit 1 on any violation)
|
|
16
|
+
* pnpm check:locales --list (coverage only, always exit 0)
|
|
17
|
+
* @version-history
|
|
18
|
+
* v1.0.0 — 2026-08-12 — Initial, with the arrival of Spanish as the third language.
|
|
19
|
+
* v1.1.0 — 2026-08-13 — Rules moved into lib/locale-files.ts, shared with locale:extract and
|
|
20
|
+
* locale:merge so the three tools cannot disagree about what a valid translation is.
|
|
21
|
+
*/
|
|
22
|
+
import { shippedLocales, loadLocale, flatten, findDefects } from './lib/locale-files.js';
|
|
23
|
+
const listOnly = process.argv.includes('--list');
|
|
24
|
+
const [, ...others] = shippedLocales();
|
|
25
|
+
const en = flatten(loadLocale('en'));
|
|
26
|
+
const total = Object.keys(en).length;
|
|
27
|
+
console.log(`locales/en.json: ${total} keys (the source of truth)`);
|
|
28
|
+
const failures = [];
|
|
29
|
+
for (const tag of others) {
|
|
30
|
+
const loc = flatten(loadLocale(tag));
|
|
31
|
+
const translated = Object.keys(loc).length;
|
|
32
|
+
const pct = ((100 * translated) / total).toFixed(1);
|
|
33
|
+
console.log(`locales/${tag}.json: ${translated} translated, ${total - translated} falling back to English (${pct} %)`);
|
|
34
|
+
for (const d of findDefects(tag, en, loc))
|
|
35
|
+
failures.push(`✖ [${tag}] ${d.what}\n → ${d.fix}`);
|
|
36
|
+
}
|
|
37
|
+
if (listOnly)
|
|
38
|
+
process.exit(0);
|
|
39
|
+
if (failures.length) {
|
|
40
|
+
console.error(`\n✖ ${failures.length} locale violation(s):\n`);
|
|
41
|
+
for (const f of failures)
|
|
42
|
+
console.error(` ${f}`);
|
|
43
|
+
process.exit(1);
|
|
44
|
+
}
|
|
45
|
+
console.log('\n✓ Locale files agree with en.json. Untranslated keys fall back to English, by design.');
|
|
46
|
+
//# sourceMappingURL=check-locales.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-locales.js","sourceRoot":"","sources":["../../scripts/check-locales.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzF,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACjD,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,cAAc,EAAE,CAAC;AACvC,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AACrC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC;AAErC,OAAO,CAAC,GAAG,CAAC,oBAAoB,KAAK,6BAA6B,CAAC,CAAC;AAEpE,MAAM,QAAQ,GAAa,EAAE,CAAC;AAC9B,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;IACzB,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IACrC,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,UAAU,UAAU,gBAAgB,KAAK,GAAG,UAAU,6BAA6B,GAAG,KAAK,CAAC,CAAC;IACvH,KAAK,MAAM,CAAC,IAAI,WAAW,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC;QAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;AACrG,CAAC;AAED,IAAI,QAAQ;IAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAE9B,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;IACpB,OAAO,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,MAAM,yBAAyB,CAAC,CAAC;IAC/D,KAAK,MAAM,CAAC,IAAI,QAAQ;QAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AACD,OAAO,CAAC,GAAG,CAAC,yFAAyF,CAAC,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export declare const LOCALES_DIR: string;
|
|
2
|
+
/** A leaf in a locale file: a string, or a list of strings the view renders as a group. */
|
|
3
|
+
export type LocaleValue = string | string[];
|
|
4
|
+
export type LocaleTree = Record<string, unknown>;
|
|
5
|
+
/** Every locale the node ships, taken from the files themselves. English first, then the rest. */
|
|
6
|
+
export declare function shippedLocales(): string[];
|
|
7
|
+
export declare function loadLocale(tag: string): LocaleTree;
|
|
8
|
+
export declare function writeLocale(tag: string, tree: LocaleTree): void;
|
|
9
|
+
/**
|
|
10
|
+
* Dotted key → value, exactly as t() resolves it. Handles both spellings a locale file uses:
|
|
11
|
+
* nested objects, and top-level keys that already carry dots.
|
|
12
|
+
*/
|
|
13
|
+
export declare function flatten(obj: LocaleTree, prefix?: string, out?: Record<string, LocaleValue>): Record<string, LocaleValue>;
|
|
14
|
+
/**
|
|
15
|
+
* Where a dotted key belongs inside en.json's OWN shape, as a path of literal object keys.
|
|
16
|
+
* `admin.messages.desc` may be one key at the top level or three levels of nesting, and English
|
|
17
|
+
* decides which — a translation that guesses lands somewhere t() will never look.
|
|
18
|
+
* Returns null when English has no such key.
|
|
19
|
+
*/
|
|
20
|
+
export declare function pathIn(en: LocaleTree, key: string): string[] | null;
|
|
21
|
+
export declare function setDeep(tree: LocaleTree, path: string[], value: LocaleValue): void;
|
|
22
|
+
/**
|
|
23
|
+
* Rewrite `target` in `source`'s key order, keeping only keys source has. A diff between en.json
|
|
24
|
+
* and a translation should line up line for line; a file in insertion order does not.
|
|
25
|
+
*/
|
|
26
|
+
export declare function orderLike(source: LocaleTree, target: LocaleTree): LocaleTree;
|
|
27
|
+
/** The {name} and {{name}} tokens a value interpolates. Both forms are in use on this node. */
|
|
28
|
+
export declare function varsOf(v: LocaleValue): Set<string>;
|
|
29
|
+
export interface Defect {
|
|
30
|
+
key: string;
|
|
31
|
+
what: string;
|
|
32
|
+
fix: string;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* What is wrong with a translation, given English. Deliberately NOT "incomplete": a missing key
|
|
36
|
+
* falls back to English per key, which is the design and is how a language gets filled in over
|
|
37
|
+
* several passes. These are the four ways a key that IS there can still be broken.
|
|
38
|
+
*/
|
|
39
|
+
export declare function findDefects(tag: string, en: Record<string, LocaleValue>, loc: Record<string, LocaleValue>): Defect[];
|
|
40
|
+
//# sourceMappingURL=locale-files.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"locale-files.d.ts","sourceRoot":"","sources":["../../../scripts/lib/locale-files.ts"],"names":[],"mappings":"AA4BA,eAAO,MAAM,WAAW,QAAoC,CAAC;AAE7D,2FAA2F;AAC3F,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;AAC5C,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEjD,kGAAkG;AAClG,wBAAgB,cAAc,IAAI,MAAM,EAAE,CAKzC;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAElD;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI,CAE/D;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,SAAK,EAAE,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAM,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAOxH;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAYnE;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAQlF;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,GAAG,UAAU,CAU5E;AAED,+FAA+F;AAC/F,wBAAgB,MAAM,CAAC,CAAC,EAAE,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,CAKlD;AAED,MAAM,WAAW,MAAM;IAAG,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;CAAE;AAoBnE;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,MAAM,EAAE,CAqDpH"}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file scripts/lib/locale-files.ts
|
|
3
|
+
* @description The one reader of locales/*.json that every locale tool shares: which languages the
|
|
4
|
+
* node ships, how a nested file flattens to the dotted keys t() actually resolves, how a dotted
|
|
5
|
+
* key finds its way back into en.json's own shape, and what counts as a defect in a translation.
|
|
6
|
+
*
|
|
7
|
+
* WHY IT IS A LIBRARY. Three tools need the same four answers — check:locales, locale:extract and
|
|
8
|
+
* locale:merge — and this repo gates on the same decision being written out twice
|
|
9
|
+
* (check:copied-logic). More to the point, the flattening rule is subtle enough that two copies
|
|
10
|
+
* would drift: en.json mixes nested objects with ALREADY-DOTTED top-level keys
|
|
11
|
+
* ("admin.messages.desc" sits beside a nested `admin` object), and a tool that walks only the
|
|
12
|
+
* nesting silently reports half the file as missing.
|
|
13
|
+
* @structure
|
|
14
|
+
* - shippedLocales() / loadLocale() / writeLocale()
|
|
15
|
+
* - flatten(obj) — dotted key → value, both spellings
|
|
16
|
+
* - pathIn(en, key) — where a dotted key belongs inside en.json's shape
|
|
17
|
+
* - setDeep / orderLike — write a key back, then re-order to match en.json
|
|
18
|
+
* - varsOf(value) — the {name} / {{name}} tokens a string interpolates
|
|
19
|
+
* - findDefects(en, loc) — the shared verdict: unknown key, type drift, TODO, dropped variable
|
|
20
|
+
* @usage import { flatten, findDefects } from './lib/locale-files.js';
|
|
21
|
+
* @version-history
|
|
22
|
+
* v1.0.0 — 2026-08-13 — Extracted from check-locales.ts when extract/merge needed the same rules.
|
|
23
|
+
*/
|
|
24
|
+
import { readFileSync, writeFileSync, readdirSync } from 'node:fs';
|
|
25
|
+
import { fileURLToPath } from 'node:url';
|
|
26
|
+
import { dirname, join } from 'node:path';
|
|
27
|
+
const here = dirname(fileURLToPath(import.meta.url));
|
|
28
|
+
export const LOCALES_DIR = join(here, '..', '..', 'locales');
|
|
29
|
+
/** Every locale the node ships, taken from the files themselves. English first, then the rest. */
|
|
30
|
+
export function shippedLocales() {
|
|
31
|
+
const tags = readdirSync(LOCALES_DIR)
|
|
32
|
+
.filter((f) => /^[a-z]{2}\.json$/.test(f))
|
|
33
|
+
.map((f) => f.slice(0, 2));
|
|
34
|
+
return ['en', ...tags.filter((t) => t !== 'en').sort()];
|
|
35
|
+
}
|
|
36
|
+
export function loadLocale(tag) {
|
|
37
|
+
return JSON.parse(readFileSync(join(LOCALES_DIR, `${tag}.json`), 'utf8'));
|
|
38
|
+
}
|
|
39
|
+
export function writeLocale(tag, tree) {
|
|
40
|
+
writeFileSync(join(LOCALES_DIR, `${tag}.json`), `${JSON.stringify(tree, null, 2)}\n`, 'utf8');
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Dotted key → value, exactly as t() resolves it. Handles both spellings a locale file uses:
|
|
44
|
+
* nested objects, and top-level keys that already carry dots.
|
|
45
|
+
*/
|
|
46
|
+
export function flatten(obj, prefix = '', out = {}) {
|
|
47
|
+
for (const [k, v] of Object.entries(obj)) {
|
|
48
|
+
const key = prefix ? `${prefix}.${k}` : k;
|
|
49
|
+
if (typeof v === 'string' || Array.isArray(v))
|
|
50
|
+
out[key] = v;
|
|
51
|
+
else if (v && typeof v === 'object')
|
|
52
|
+
flatten(v, key, out);
|
|
53
|
+
}
|
|
54
|
+
return out;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Where a dotted key belongs inside en.json's OWN shape, as a path of literal object keys.
|
|
58
|
+
* `admin.messages.desc` may be one key at the top level or three levels of nesting, and English
|
|
59
|
+
* decides which — a translation that guesses lands somewhere t() will never look.
|
|
60
|
+
* Returns null when English has no such key.
|
|
61
|
+
*/
|
|
62
|
+
export function pathIn(en, key) {
|
|
63
|
+
if (Object.prototype.hasOwnProperty.call(en, key))
|
|
64
|
+
return [key];
|
|
65
|
+
const parts = key.split('.');
|
|
66
|
+
for (let i = 1; i < parts.length; i++) {
|
|
67
|
+
const head = parts.slice(0, i).join('.');
|
|
68
|
+
const branch = en[head];
|
|
69
|
+
if (branch && typeof branch === 'object' && !Array.isArray(branch)) {
|
|
70
|
+
const rest = pathIn(branch, parts.slice(i).join('.'));
|
|
71
|
+
if (rest)
|
|
72
|
+
return [head, ...rest];
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
77
|
+
export function setDeep(tree, path, value) {
|
|
78
|
+
let cur = tree;
|
|
79
|
+
for (let i = 0; i < path.length - 1; i++) {
|
|
80
|
+
const seg = path[i];
|
|
81
|
+
if (typeof cur[seg] !== 'object' || cur[seg] === null || Array.isArray(cur[seg]))
|
|
82
|
+
cur[seg] = {};
|
|
83
|
+
cur = cur[seg];
|
|
84
|
+
}
|
|
85
|
+
cur[path[path.length - 1]] = value;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Rewrite `target` in `source`'s key order, keeping only keys source has. A diff between en.json
|
|
89
|
+
* and a translation should line up line for line; a file in insertion order does not.
|
|
90
|
+
*/
|
|
91
|
+
export function orderLike(source, target) {
|
|
92
|
+
const out = {};
|
|
93
|
+
for (const k of Object.keys(source)) {
|
|
94
|
+
if (!(k in target))
|
|
95
|
+
continue;
|
|
96
|
+
const sv = source[k], tv = target[k];
|
|
97
|
+
out[k] = (sv && typeof sv === 'object' && !Array.isArray(sv) && tv && typeof tv === 'object' && !Array.isArray(tv))
|
|
98
|
+
? orderLike(sv, tv)
|
|
99
|
+
: tv;
|
|
100
|
+
}
|
|
101
|
+
return out;
|
|
102
|
+
}
|
|
103
|
+
/** The {name} and {{name}} tokens a value interpolates. Both forms are in use on this node. */
|
|
104
|
+
export function varsOf(v) {
|
|
105
|
+
const text = Array.isArray(v) ? v.join(' ') : v;
|
|
106
|
+
const found = new Set();
|
|
107
|
+
for (const m of text.matchAll(/\{\{?(\w+)\}?\}/g))
|
|
108
|
+
found.add(m[1]);
|
|
109
|
+
return found;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Words that mix two writing systems inside a single token — "информativa" for "informativa".
|
|
113
|
+
* A keyboard layout left in the wrong state produces a word that LOOKS right at a glance and is
|
|
114
|
+
* unsearchable, unpronounceable and unfixable-by-eye. Script-agnostic on purpose: a future Russian
|
|
115
|
+
* locale would write whole Cyrillic words, which this does not touch; only the mixture is wrong.
|
|
116
|
+
* The check is one this repo earned — the example above shipped into a merge on 2026-08-13.
|
|
117
|
+
*/
|
|
118
|
+
function mixedScriptWords(v) {
|
|
119
|
+
const text = Array.isArray(v) ? v.join(' ') : v;
|
|
120
|
+
const out = [];
|
|
121
|
+
for (const word of text.split(/\s+/)) {
|
|
122
|
+
const latin = /[A-Za-zÀ-ÖØ-öø-ÿ]/.test(word);
|
|
123
|
+
const other = /[Ͱ-ϿЀ-ӿ-֏--ۿ]/.test(word);
|
|
124
|
+
if (latin && other)
|
|
125
|
+
out.push(word);
|
|
126
|
+
}
|
|
127
|
+
return out;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* What is wrong with a translation, given English. Deliberately NOT "incomplete": a missing key
|
|
131
|
+
* falls back to English per key, which is the design and is how a language gets filled in over
|
|
132
|
+
* several passes. These are the four ways a key that IS there can still be broken.
|
|
133
|
+
*/
|
|
134
|
+
export function findDefects(tag, en, loc) {
|
|
135
|
+
const out = [];
|
|
136
|
+
for (const [key, value] of Object.entries(loc)) {
|
|
137
|
+
const source = en[key];
|
|
138
|
+
if (source === undefined) {
|
|
139
|
+
out.push({ key, what: `${key} exists in ${tag}.json but not in en.json`,
|
|
140
|
+
fix: 'add the English, or delete the key. A key English does not have is dead: t() is called '
|
|
141
|
+
+ 'with the English spelling, so nothing ever reads this one.' });
|
|
142
|
+
continue;
|
|
143
|
+
}
|
|
144
|
+
const srcArray = Array.isArray(source), locArray = Array.isArray(value);
|
|
145
|
+
if (srcArray !== locArray) {
|
|
146
|
+
out.push({ key, what: `${key} is ${locArray ? 'an array' : 'a string'} in ${tag}.json but ${srcArray ? 'an array' : 'a string'} in en.json`,
|
|
147
|
+
fix: 'match the English shape. The view either maps over this value or prints it, and it cannot do both.' });
|
|
148
|
+
continue;
|
|
149
|
+
}
|
|
150
|
+
if (srcArray && locArray && source.length !== value.length) {
|
|
151
|
+
out.push({ key, what: `${key} has ${value.length} entries in ${tag}.json and ${source.length} in en.json`,
|
|
152
|
+
fix: 'give it the same number of entries. A list rendered short in one language reads as a bug.' });
|
|
153
|
+
}
|
|
154
|
+
const text = Array.isArray(value) ? value.join(' ') : value;
|
|
155
|
+
if (text.includes(`[TODO:${tag}]`)) {
|
|
156
|
+
out.push({ key, what: `${key} in ${tag}.json is still a [TODO:${tag}] placeholder`,
|
|
157
|
+
fix: `write the ${tag} text, or remove the key so it falls back to English. A visible TODO reads as broken software.` });
|
|
158
|
+
}
|
|
159
|
+
// Renamed is not dropped. Two strings on this node put a {placeholder} in the prose as an
|
|
160
|
+
// EXAMPLE of the syntax, and a translation translates the example word — {{variable}} becomes
|
|
161
|
+
// {{muuttuja}}. Counting names alone reports both as bugs, and a gate that cries wolf on
|
|
162
|
+
// correct text gets switched off. Compare how MANY tokens each side carries: a rename keeps
|
|
163
|
+
// the count, and only a genuine drop lowers it.
|
|
164
|
+
const mixed = mixedScriptWords(value);
|
|
165
|
+
if (mixed.length) {
|
|
166
|
+
out.push({ key, what: `${key} in ${tag}.json mixes writing systems inside a word: ${mixed.slice(0, 3).join(', ')}`,
|
|
167
|
+
fix: 'retype the word. A Cyrillic or Greek letter sitting inside a Latin word passes every '
|
|
168
|
+
+ 'spellcheck by eye and none by machine.' });
|
|
169
|
+
}
|
|
170
|
+
const srcVars = varsOf(source), locVars = varsOf(value);
|
|
171
|
+
const missing = [...srcVars].filter((v) => !locVars.has(v));
|
|
172
|
+
const renamed = [...locVars].filter((v) => !srcVars.has(v));
|
|
173
|
+
if (missing.length > renamed.length) {
|
|
174
|
+
out.push({ key, what: `${key} in ${tag}.json carries ${locVars.size} interpolation token(s) where en.json has ${srcVars.size} (missing ${missing.map((v) => `{${v}}`).join(', ')})`,
|
|
175
|
+
fix: 'put the token back, spelled exactly as in en.json. Whatever it carried — a count, a name, '
|
|
176
|
+
+ 'an address — vanishes from the sentence in this language only.' });
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
return out;
|
|
180
|
+
}
|
|
181
|
+
//# sourceMappingURL=locale-files.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"locale-files.js","sourceRoot":"","sources":["../../../scripts/lib/locale-files.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"locale-extract.d.ts","sourceRoot":"","sources":["../../scripts/locale-extract.ts"],"names":[],"mappings":""}
|