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.
Files changed (211) hide show
  1. package/dist/build-stamp.json +4 -4
  2. package/dist/locales/en.json +9103 -9101
  3. package/dist/locales/es.json +9095 -0
  4. package/dist/locales/fi.json +9103 -9101
  5. package/dist/public/cortex-bundled/aimeat-input.js +611 -0
  6. package/dist/public/cortex-bundled/aimeat-input.yaml +149 -0
  7. package/dist/public/css/views/agents-detail.css +11 -0
  8. package/dist/public/js/utils.js +12 -7
  9. package/dist/public/spa.html +5 -2
  10. package/dist/public/views/admin/email-tab.js +459 -458
  11. package/dist/public/views/profile/agents/agent-card.js +25 -0
  12. package/dist/public/views/profile/agents/scope-model.js +296 -288
  13. package/dist/public/views/profile/agents-tab.js +26 -3
  14. package/dist/scripts/check-ai-disclosure.d.ts.map +1 -1
  15. package/dist/scripts/check-ai-disclosure.js +33 -18
  16. package/dist/scripts/check-ai-disclosure.js.map +1 -1
  17. package/dist/scripts/check-locales.d.ts +2 -0
  18. package/dist/scripts/check-locales.d.ts.map +1 -0
  19. package/dist/scripts/check-locales.js +46 -0
  20. package/dist/scripts/check-locales.js.map +1 -0
  21. package/dist/scripts/lib/locale-files.d.ts +40 -0
  22. package/dist/scripts/lib/locale-files.d.ts.map +1 -0
  23. package/dist/scripts/lib/locale-files.js +181 -0
  24. package/dist/scripts/lib/locale-files.js.map +1 -0
  25. package/dist/scripts/locale-extract.d.ts +2 -0
  26. package/dist/scripts/locale-extract.d.ts.map +1 -0
  27. package/dist/scripts/locale-extract.js +99 -0
  28. package/dist/scripts/locale-extract.js.map +1 -0
  29. package/dist/scripts/locale-merge.d.ts +2 -0
  30. package/dist/scripts/locale-merge.d.ts.map +1 -0
  31. package/dist/scripts/locale-merge.js +114 -0
  32. package/dist/scripts/locale-merge.js.map +1 -0
  33. package/dist/src/auth/middleware.d.ts +6 -0
  34. package/dist/src/auth/middleware.d.ts.map +1 -1
  35. package/dist/src/auth/middleware.js +24 -4
  36. package/dist/src/auth/middleware.js.map +1 -1
  37. package/dist/src/cli/connect/mcp/tools/agent-management.d.ts +1 -0
  38. package/dist/src/cli/connect/mcp/tools/agent-management.d.ts.map +1 -1
  39. package/dist/src/cli/connect/mcp/tools/agent-management.js +9 -0
  40. package/dist/src/cli/connect/mcp/tools/agent-management.js.map +1 -1
  41. package/dist/src/cli/connect/mcp/tools/schedules.d.ts +3 -0
  42. package/dist/src/cli/connect/mcp/tools/schedules.d.ts.map +1 -1
  43. package/dist/src/cli/connect/mcp/tools/schedules.js +5 -0
  44. package/dist/src/cli/connect/mcp/tools/schedules.js.map +1 -1
  45. package/dist/src/cli/connect/tool-call-defs-agent.d.ts +2 -0
  46. package/dist/src/cli/connect/tool-call-defs-agent.d.ts.map +1 -1
  47. package/dist/src/cli/connect/tool-call-defs-agent.js +16 -0
  48. package/dist/src/cli/connect/tool-call-defs-agent.js.map +1 -1
  49. package/dist/src/cli/connect/tool-call-defs-organism.d.ts.map +1 -1
  50. package/dist/src/cli/connect/tool-call-defs-organism.js +6 -0
  51. package/dist/src/cli/connect/tool-call-defs-organism.js.map +1 -1
  52. package/dist/src/config-operator.d.ts +4 -1
  53. package/dist/src/config-operator.d.ts.map +1 -1
  54. package/dist/src/config-operator.js +4 -4
  55. package/dist/src/config-operator.js.map +1 -1
  56. package/dist/src/data/library-packs/cortex.d.ts +3 -0
  57. package/dist/src/data/library-packs/cortex.d.ts.map +1 -1
  58. package/dist/src/data/library-packs/cortex.js +58 -0
  59. package/dist/src/data/library-packs/cortex.js.map +1 -1
  60. package/dist/src/generated/api-types.d.ts +90 -2
  61. package/dist/src/generated/api-types.d.ts.map +1 -1
  62. package/dist/src/i18n.d.ts +1 -1
  63. package/dist/src/i18n.d.ts.map +1 -1
  64. package/dist/src/i18n.js +13 -6
  65. package/dist/src/i18n.js.map +1 -1
  66. package/dist/src/mcp/agent-management.d.ts +6 -2
  67. package/dist/src/mcp/agent-management.d.ts.map +1 -1
  68. package/dist/src/mcp/agent-management.js +34 -3
  69. package/dist/src/mcp/agent-management.js.map +1 -1
  70. package/dist/src/mcp/agent-schedules.d.ts +6 -2
  71. package/dist/src/mcp/agent-schedules.d.ts.map +1 -1
  72. package/dist/src/mcp/agent-schedules.js +22 -1
  73. package/dist/src/mcp/agent-schedules.js.map +1 -1
  74. package/dist/src/mcp/annotations.d.ts +1 -0
  75. package/dist/src/mcp/annotations.d.ts.map +1 -1
  76. package/dist/src/mcp/annotations.js +5 -0
  77. package/dist/src/mcp/annotations.js.map +1 -1
  78. package/dist/src/mcp/catalog/definitions/agent-messaging.d.ts +2 -0
  79. package/dist/src/mcp/catalog/definitions/agent-messaging.d.ts.map +1 -1
  80. package/dist/src/mcp/catalog/definitions/agent-messaging.js +12 -0
  81. package/dist/src/mcp/catalog/definitions/agent-messaging.js.map +1 -1
  82. package/dist/src/mcp/catalog/definitions/schedules-tasks-memory.d.ts.map +1 -1
  83. package/dist/src/mcp/catalog/definitions/schedules-tasks-memory.js +7 -0
  84. package/dist/src/mcp/catalog/definitions/schedules-tasks-memory.js.map +1 -1
  85. package/dist/src/mcp/catalog/scopes.d.ts.map +1 -1
  86. package/dist/src/mcp/catalog/scopes.js +5 -0
  87. package/dist/src/mcp/catalog/scopes.js.map +1 -1
  88. package/dist/src/mcp/catalog/surfaces.d.ts.map +1 -1
  89. package/dist/src/mcp/catalog/surfaces.js +4 -2
  90. package/dist/src/mcp/catalog/surfaces.js.map +1 -1
  91. package/dist/src/routes/admin-features.d.ts.map +1 -1
  92. package/dist/src/routes/admin-features.js +5 -4
  93. package/dist/src/routes/admin-features.js.map +1 -1
  94. package/dist/src/routes/agents/constants.d.ts +18 -2
  95. package/dist/src/routes/agents/constants.d.ts.map +1 -1
  96. package/dist/src/routes/agents/constants.js +18 -2
  97. package/dist/src/routes/agents/constants.js.map +1 -1
  98. package/dist/src/routes/agents/device-auth.d.ts +2 -0
  99. package/dist/src/routes/agents/device-auth.d.ts.map +1 -1
  100. package/dist/src/routes/agents/device-auth.js +22 -2
  101. package/dist/src/routes/agents/device-auth.js.map +1 -1
  102. package/dist/src/routes/agents/management.d.ts +7 -0
  103. package/dist/src/routes/agents/management.d.ts.map +1 -1
  104. package/dist/src/routes/agents/management.js +59 -4
  105. package/dist/src/routes/agents/management.js.map +1 -1
  106. package/dist/src/routes/agents/profile-metadata.d.ts +4 -0
  107. package/dist/src/routes/agents/profile-metadata.d.ts.map +1 -1
  108. package/dist/src/routes/agents/profile-metadata.js +31 -2
  109. package/dist/src/routes/agents/profile-metadata.js.map +1 -1
  110. package/dist/src/routes/agents/registration.d.ts +2 -0
  111. package/dist/src/routes/agents/registration.d.ts.map +1 -1
  112. package/dist/src/routes/agents/registration.js +3 -0
  113. package/dist/src/routes/agents/registration.js.map +1 -1
  114. package/dist/src/routes/ai-transparency.d.ts.map +1 -1
  115. package/dist/src/routes/ai-transparency.js +5 -1
  116. package/dist/src/routes/ai-transparency.js.map +1 -1
  117. package/dist/src/routes/auth.d.ts +3 -0
  118. package/dist/src/routes/auth.d.ts.map +1 -1
  119. package/dist/src/routes/auth.js +22 -5
  120. package/dist/src/routes/auth.js.map +1 -1
  121. package/dist/src/routes/portal.d.ts +3 -0
  122. package/dist/src/routes/portal.d.ts.map +1 -1
  123. package/dist/src/routes/portal.js +39 -17
  124. package/dist/src/routes/portal.js.map +1 -1
  125. package/dist/src/routes/schedules.d.ts +3 -0
  126. package/dist/src/routes/schedules.d.ts.map +1 -1
  127. package/dist/src/routes/schedules.js +16 -29
  128. package/dist/src/routes/schedules.js.map +1 -1
  129. package/dist/src/services/agent-profile-write.d.ts +13 -1
  130. package/dist/src/services/agent-profile-write.d.ts.map +1 -1
  131. package/dist/src/services/agent-profile-write.js +55 -0
  132. package/dist/src/services/agent-profile-write.js.map +1 -1
  133. package/dist/src/services/build-app-prompt.d.ts.map +1 -1
  134. package/dist/src/services/build-app-prompt.js +22 -0
  135. package/dist/src/services/build-app-prompt.js.map +1 -1
  136. package/dist/src/services/email-templates.d.ts.map +1 -1
  137. package/dist/src/services/email-templates.js +79 -3
  138. package/dist/src/services/email-templates.js.map +1 -1
  139. package/dist/src/services/notification-templates.d.ts +5 -3
  140. package/dist/src/services/notification-templates.d.ts.map +1 -1
  141. package/dist/src/services/notification-templates.js +23 -3
  142. package/dist/src/services/notification-templates.js.map +1 -1
  143. package/dist/src/services/schedule-write.d.ts +25 -2
  144. package/dist/src/services/schedule-write.d.ts.map +1 -1
  145. package/dist/src/services/schedule-write.js +44 -0
  146. package/dist/src/services/schedule-write.js.map +1 -1
  147. package/dist/src/storage/providers/postgres-kysely/db-types.d.ts +2 -0
  148. package/dist/src/storage/providers/postgres-kysely/db-types.d.ts.map +1 -1
  149. package/dist/src/storage/providers/postgres-kysely/methods/identity.d.ts.map +1 -1
  150. package/dist/src/storage/providers/postgres-kysely/methods/identity.js +5 -1
  151. package/dist/src/storage/providers/postgres-kysely/methods/identity.js.map +1 -1
  152. package/dist/src/storage/providers/postgres-kysely/methods/sessions.d.ts +1 -0
  153. package/dist/src/storage/providers/postgres-kysely/methods/sessions.d.ts.map +1 -1
  154. package/dist/src/storage/providers/postgres-kysely/methods/sessions.js +4 -0
  155. package/dist/src/storage/providers/postgres-kysely/methods/sessions.js.map +1 -1
  156. package/dist/src/storage/providers/postgres-kysely/migrations/0034_agent_console_url.sql +16 -0
  157. package/dist/src/storage/providers/postgres-kysely/migrations/0035_agent_registered_by.sql +19 -0
  158. package/dist/src/storage/providers/sqlite/methods/extensions-notify.d.ts +2 -0
  159. package/dist/src/storage/providers/sqlite/methods/extensions-notify.d.ts.map +1 -1
  160. package/dist/src/storage/providers/sqlite/methods/extensions-notify.js +4 -0
  161. package/dist/src/storage/providers/sqlite/methods/extensions-notify.js.map +1 -1
  162. package/dist/src/storage/providers/sqlite/methods/owner.d.ts +5 -0
  163. package/dist/src/storage/providers/sqlite/methods/owner.d.ts.map +1 -1
  164. package/dist/src/storage/providers/sqlite/methods/owner.js +13 -4
  165. package/dist/src/storage/providers/sqlite/methods/owner.js.map +1 -1
  166. package/dist/src/storage/providers/sqlite/repos/auth.d.ts +2 -0
  167. package/dist/src/storage/providers/sqlite/repos/auth.d.ts.map +1 -1
  168. package/dist/src/storage/providers/sqlite/repos/auth.js +4 -0
  169. package/dist/src/storage/providers/sqlite/repos/auth.js.map +1 -1
  170. package/dist/src/storage/providers/sqlite/schema-tables-1.d.ts +3 -0
  171. package/dist/src/storage/providers/sqlite/schema-tables-1.d.ts.map +1 -1
  172. package/dist/src/storage/providers/sqlite/schema-tables-1.js +4 -2
  173. package/dist/src/storage/providers/sqlite/schema-tables-1.js.map +1 -1
  174. package/dist/src/storage/providers/sqlite/schema-tables-2.d.ts +3 -0
  175. package/dist/src/storage/providers/sqlite/schema-tables-2.d.ts.map +1 -1
  176. package/dist/src/storage/providers/sqlite/schema-tables-2.js +4 -3
  177. package/dist/src/storage/providers/sqlite/schema-tables-2.js.map +1 -1
  178. package/dist/src/storage/providers/sqlite/schema-tables-3.d.ts +3 -0
  179. package/dist/src/storage/providers/sqlite/schema-tables-3.d.ts.map +1 -1
  180. package/dist/src/storage/providers/sqlite/schema-tables-3.js +6 -9
  181. package/dist/src/storage/providers/sqlite/schema-tables-3.js.map +1 -1
  182. package/dist/src/storage/providers/sqlite/schema.d.ts +6 -0
  183. package/dist/src/storage/providers/sqlite/schema.d.ts.map +1 -1
  184. package/dist/src/storage/providers/sqlite/schema.js +9 -0
  185. package/dist/src/storage/providers/sqlite/schema.js.map +1 -1
  186. package/dist/src/storage/repositories/session.repository.d.ts +14 -0
  187. package/dist/src/storage/repositories/session.repository.d.ts.map +1 -1
  188. package/dist/src/storage/repositories/session.repository.js +2 -0
  189. package/dist/src/storage/repositories/session.repository.js.map +1 -1
  190. package/dist/src/storage/storage-factory.d.ts +6 -0
  191. package/dist/src/storage/storage-factory.d.ts.map +1 -1
  192. package/dist/src/storage/storage-factory.js +38 -19
  193. package/dist/src/storage/storage-factory.js.map +1 -1
  194. package/dist/src/storage/types/identity.d.ts +31 -0
  195. package/dist/src/storage/types/identity.d.ts.map +1 -1
  196. package/dist/src/utils/gaii.d.ts +11 -0
  197. package/dist/src/utils/gaii.d.ts.map +1 -1
  198. package/dist/src/utils/gaii.js +16 -0
  199. package/dist/src/utils/gaii.js.map +1 -1
  200. package/dist/static/sdk-libs/ai/strings.js +5 -2
  201. package/dist/static/sdk-libs/auth/i18n.js +9 -4
  202. package/dist/static/sdk-libs/auth/modal.js +11 -3
  203. package/dist/static/sdk-libs/auth/pill-strings.js +52 -0
  204. package/dist/static/sdk-libs/auth/pill.js +16 -2
  205. package/dist/static/sdk-libs/dist/aimeat-ai.js +30 -1
  206. package/dist/static/sdk-libs/dist/aimeat-auth.js +61 -5
  207. package/dist/static/sdk-libs/dist/aimeat-game.js +32 -2
  208. package/dist/static/sdk-libs/dist/aimeat-header.js +9 -4
  209. package/dist/static/sdk-libs/game/i18n.js +38 -7
  210. package/dist/static/sdk-libs/header/index.js +11 -5
  211. 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: the home dashboard's Agents card primes `aimeat.agents.open` with an
349
- // agent name before opening this tab — expand that agent and scroll its card into view.
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
- const name = sessionStorage.getItem('aimeat.agents.open');
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":"AAqEA;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAuBjD;AA0BD;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAS7D"}
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 both locales, no [TODO:fi]
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 language.
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 k of enKeys) {
543
- if (!fiKeys.includes(k)) {
544
- fail('locales', `aiLabel.${k} exists in en.json but not in fi.json`, 'add the Finnish. Written as Finnish, not translated English — this is the sentence a '
545
- + 'Finnish reader is legally owed.');
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
- for (const k of fiKeys) {
549
- if (!enKeys.includes(k))
550
- fail('locales', `aiLabel.${k} exists in fi.json but not in en.json`, 'add the English.');
551
- }
552
- for (const [k, v] of Object.entries(fi.aiLabel ?? {})) {
553
- if (String(v).includes('[TODO:fi]')) {
554
- fail('locales', `aiLabel.${k} in fi.json is still a [TODO:fi] placeholder`, 'write the Finnish. A placeholder shipped as a disclosure is worse than an English one, '
555
- + 'because it reads as broken software rather than as a statement.');
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(' 5. locales — every aiLabel.* key in en + fi, no [TODO:fi]');
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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=check-locales.d.ts.map
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=locale-extract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locale-extract.d.ts","sourceRoot":"","sources":["../../scripts/locale-extract.ts"],"names":[],"mappings":""}