@desert-ant-labs/emo 0.3.0 → 0.4.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/LICENSE.md CHANGED
@@ -1,136 +1,19 @@
1
1
  # Desert Ant Labs Source-Available License
2
2
 
3
- Version 1.0 · 2026-06-15
3
+ This software is licensed under the **Desert Ant Labs Source-Available License,
4
+ Version 1.0**. The full, authoritative terms are published at:
4
5
 
5
- Copyright © 2026 Studio Company B.V., trading as Desert Ant Labs (`desertant.ai`).
6
+ **https://license.desertant.ai/1.0**
6
7
 
7
- This license governs Your use of the software, model weights, datasets, documentation, and associated assets in this repository (collectively, the **"Licensed Materials"**). It is a **source-available license intended for professional and business use**; it is not an OSI-approved open-source license. The rights granted here are subject to a per-Model usage cap and the other terms set out below.
8
+ Copyright © 2026 Desert Ant Labs B.V.
9
+ SPDX-License-Identifier: LicenseRef-DAL-Source-Available-1.0
8
10
 
9
- ## Definitions
11
+ In short: free below **100,000 monthly active devices per platform, for each model**;
12
+ above that a commercial license is required (<licensing@desertant.ai>). You may embed
13
+ the models in your application; you may **not** use them, their outputs, or their logs
14
+ to train a competing on-device model. Credit Desert Ant Labs in your app
15
+ (https://license.desertant.ai/attribution). Using this software means you accept the
16
+ full terms at the link above. Machine-readable: https://license.desertant.ai/1.0.txt
10
17
 
11
- - **"Desert Ant Labs"** (also "We", "Us", "Our") — Studio Company B.V., a private limited liability company (*besloten vennootschap*) incorporated under the laws of the Netherlands, with statutory seat in Amsterdam, registered with the Dutch Chamber of Commerce (KvK) under number **81228112**, trading as Desert Ant Labs.
12
- - **"Model"** a set of trained weights published by Desert Ant Labs under a single HuggingFace repository (for example, `huggingface.co/desert-ant-labs/eye`). Each Model is a distinct work under this license.
13
- - **"Monthly Active User"** or **"MAU"** — a unique end user who interacts with a feature powered by a Model during a calendar month. Internal use by Your own employees and contractors does not count.
14
- - **"You"** — the individual or legal entity exercising rights under this license.
15
-
16
- ## 0. Acceptance
17
-
18
- By downloading, accessing, using, copying, modifying, or distributing the Licensed Materials, You agree to be bound by this license. If You do not agree, You may not use the Licensed Materials.
19
-
20
- ## 1. Grant
21
-
22
- Subject to Your continued compliance with this license, Desert Ant Labs grants You a worldwide, royalty-free, non-exclusive, non-transferable, non-sublicensable license to use, reproduce, modify, and distribute the Licensed Materials.
23
-
24
- ## 2. Free-tier use
25
-
26
- You may use the Licensed Materials free of charge, including for commercial purposes, subject to the following per-Model threshold:
27
-
28
- > **For each Desert Ant Labs Model that Your products incorporate, the aggregate Monthly Active Users across all Your products must not exceed 100,000 in any calendar month.**
29
-
30
- The threshold applies independently to each Model. Two Models at 50,000 MAU each do not combine into 100,000 MAU; each is independently within its own free-tier limit.
31
-
32
- If a repository contains only software (no trained Model weights), no MAU threshold applies to that software on its own. The threshold attaches to the Models the software is used with.
33
-
34
- ## 3. Research and academic use
35
-
36
- Use of the Licensed Materials for non-commercial scientific research and academic publications is exempt from the MAU threshold in Section 2, provided that any resulting publication credits "Desert Ant Labs" and links to the relevant Model repository.
37
-
38
- ## 4. Commercial license
39
-
40
- If Your aggregate MAU for any Model exceeds 100,000 (or You expect it to within the next calendar month), You must obtain a commercial license from Desert Ant Labs before continuing to distribute or operate any product that incorporates that Model. A commercial license covers only the Models named in it; other Models remain under the free tier subject to their own thresholds.
41
-
42
- Contact: <licensing@desertant.ai>.
43
-
44
- ## 5. Patent grant
45
-
46
- Each contributor to the Licensed Materials grants You a perpetual, worldwide, non-exclusive, royalty-free, irrevocable (except as stated in this Section) patent license to make, use, sell, offer to sell, and import the Licensed Materials, where such license applies only to those patent claims licensable by that contributor that are necessarily infringed by the Licensed Materials.
47
-
48
- **If You institute patent litigation against any entity** (including a cross-claim or counterclaim in a lawsuit) alleging that the Licensed Materials infringe a patent, **all patent licenses granted to You under this license terminate as of the date such litigation is filed.**
49
-
50
- ## 6. Restrictions
51
-
52
- You may not:
53
-
54
- 1. Sell, sublicense, or otherwise distribute the Licensed Materials themselves, or any substantially unmodified derivative of them, as a standalone product or hosted service.
55
- 2. Use the Licensed Materials to train, distill, fine-tune, or otherwise derive a model that You release or distribute under any license more permissive than this license, including any OSI-approved open-source license. Internal research, personal fine-tuning, and use of derivative models that remain under this license are not restricted.
56
- 3. Remove or alter the copyright, license, attribution, or third-party notices in the Licensed Materials.
57
-
58
- You may freely embed the Licensed Materials in Your own product, subject to Section 2 and the rest of this license.
59
-
60
- ## 7. Attribution
61
-
62
- You must retain this LICENSE file and the copyright notice in all copies and substantial portions of the Licensed Materials. Where Your product surfaces acknowledgements, third-party notices, or "About" / "Credits" screens, please credit **"Desert Ant Labs (`desertant.ai`)"**.
63
-
64
- ## 8. Modifications
65
-
66
- You may modify the Licensed Materials. If You distribute modified Licensed Materials, You must:
67
-
68
- (a) include a prominent notice stating that You have modified them, with the date of modification; and
69
- (b) ensure that Your distributed modifications are licensed under this license.
70
-
71
- This license governs the Licensed Materials and modifications to them. Applications and products that merely incorporate, link to, or call the Licensed Materials are Your own work; their structure, source, and license are not constrained by this license, subject only to Sections 2, 6, and 7.
72
-
73
- ## 9. Reporting
74
-
75
- To enable Desert Ant Labs to administer the free tier, You agree:
76
-
77
- (a) to maintain reasonable records of Your aggregate MAU per Model; and
78
- (b) upon written request from Desert Ant Labs, to provide a reasonable summary of those records sufficient to confirm compliance with Section 2. Such requests will be made no more than once per calendar year per licensee, except in the case of a reasonable, specific suspicion of breach.
79
-
80
- You are encouraged — but not required — to notify Desert Ant Labs at <licensing@desertant.ai> when Your aggregate MAU for any Model first exceeds 80,000.
81
-
82
- ## 10. Trademarks
83
-
84
- This license does not grant You any right to use the trade names, trademarks, service marks, or product names of Desert Ant Labs, except for the limited attribution use specified in Section 7. All goodwill arising from such attribution use inures to the benefit of Desert Ant Labs.
85
-
86
- ## 11. Third-party components
87
-
88
- The Licensed Materials may include or derive from components licensed by third parties. Those components remain subject to their own licenses; nothing in this license overrides those terms. Notices for such components are provided in the model card or in a `THIRD_PARTY_NOTICES.md` file alongside the Licensed Materials.
89
-
90
- ## 12. Termination
91
-
92
- This license terminates automatically and immediately upon any of the following:
93
-
94
- (a) Your aggregate MAU for any Model exceeds 100,000 and You do not obtain a commercial license within thirty (30) days;
95
- (b) Your breach of Section 6 (Restrictions); or
96
- (c) Your institution of patent litigation as described in Section 5.
97
-
98
- For any other curable breach, Desert Ant Labs will provide written notice; if the breach is not cured within thirty (30) days of receipt of that notice, this license terminates as of the date the notice was sent.
99
-
100
- Upon termination, You must cease using and distributing the Licensed Materials. Sections 7 (Attribution, with respect to copies already in the field), 10 (Trademarks), 11 (Third-Party Components), 13 (No Warranty), 14 (Limitation of Liability), and 15 (Governing Law) survive termination.
101
-
102
- ## 13. No warranty
103
-
104
- THE LICENSED MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. Desert Ant Labs makes no representation that the Licensed Materials are error-free, secure, or suitable for any particular use.
105
-
106
- ## 14. Limitation of liability
107
-
108
- IN NO EVENT SHALL DESERT ANT LABS BE LIABLE FOR ANY INDIRECT, INCIDENTAL, CONSEQUENTIAL, SPECIAL, OR EXEMPLARY DAMAGES (INCLUDING LOST PROFITS, LOSS OF DATA, OR BUSINESS INTERRUPTION) ARISING FROM OR IN CONNECTION WITH THE LICENSED MATERIALS, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
109
-
110
- DESERT ANT LABS' TOTAL CUMULATIVE LIABILITY UNDER OR IN CONNECTION WITH THIS LICENSE SHALL NOT EXCEED THE GREATER OF (A) ONE HUNDRED EUROS (€100) OR (B) THE TOTAL FEES PAID BY YOU TO DESERT ANT LABS UNDER A SEPARATE COMMERCIAL LICENSE IN THE TWELVE (12) MONTHS PRECEDING THE CLAIM.
111
-
112
- Nothing in this license limits or excludes liability to the extent such limitation or exclusion is not permitted by applicable mandatory law, including liability for willful misconduct (*opzet*) or gross negligence (*bewuste roekeloosheid*) and any mandatory provision of Dutch consumer-protection law.
113
-
114
- ## 15. Governing law and jurisdiction
115
-
116
- This license is governed by the laws of the Netherlands, without regard to its conflict-of-laws provisions. The competent courts of Amsterdam, the Netherlands, have exclusive jurisdiction over any dispute arising under or in connection with this license, subject to mandatory provisions of applicable consumer-protection law.
117
-
118
- The United Nations Convention on Contracts for the International Sale of Goods (CISG, 1980) does not apply to this license.
119
-
120
- ## 16. Miscellaneous
121
-
122
- (a) **Severability.** If any provision of this license is held unenforceable by a court of competent jurisdiction, the remaining provisions remain in full force and effect, and the unenforceable provision shall be interpreted to give effect to its intent to the greatest extent permitted by law.
123
-
124
- (b) **No waiver.** Failure or delay by Desert Ant Labs to enforce any right under this license is not a waiver of that right.
125
-
126
- (c) **Assignment.** You may not assign this license without Desert Ant Labs' prior written consent. Desert Ant Labs may freely assign this license to a successor in interest. This license binds and benefits each party's successors and permitted assigns.
127
-
128
- (d) **Entire agreement.** This license, together with any separate commercial license referenced in Section 4, is the entire agreement between You and Desert Ant Labs regarding the Licensed Materials and supersedes all prior agreements on the same subject matter.
129
-
130
- (e) **Language.** The authoritative version of this license is in English. Any translation is for convenience only; in the event of any conflict, the English version controls.
131
-
132
- ---
133
-
134
- Commercial licensing inquiries: <licensing@desertant.ai>.
135
-
136
- © 2026 Studio Company B.V., trading as Desert Ant Labs. Statutory seat: Amsterdam, the Netherlands. KvK: **81228112**.
18
+ <!-- This is a pointer notice. Do not edit the terms here; the canonical text lives in
19
+ the license repo and at the URL above. Only the copyright year is repo-local. -->
package/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # @desert-ant-labs/emo
2
2
 
3
3
  On-device emoji suggestions from text. Suggests the best-matching emoji for short
4
- tasks, calendar entries, notes, or message drafts across **23 languages** fully
4
+ tasks, calendar entries, notes, or message drafts across **23 languages**, fully
5
5
  in-process, no inference runtime.
6
6
 
7
7
  ```ts
@@ -16,11 +16,11 @@ const toned = (await suggestions("go for a run", 1, { skinTone: "medium" }))[0]?
16
16
 
17
17
  ## Features
18
18
 
19
- - Pure-JS inference (no ONNX/WASM runtime) prediction is sub-millisecond
20
- - Suggests from a data-driven vocabulary of ~300 task/calendar/message emojis
19
+ - Pure-JS inference (no ONNX/WASM runtime); prediction is sub-millisecond
20
+ - Suggests from a data-driven vocabulary of ~500 task/calendar/message emojis
21
21
  - Supports 23 languages (incl. CJK, Arabic, Thai, Hindi, …)
22
22
  - Model (~5.0 MB, 4-bit palettized) is fetched from the Hugging Face Hub at a **pinned revision**, then
23
- cached to the **filesystem** on Node and to **Cache Storage** in the browser, so
23
+ cached, to the **filesystem** on Node and to **Cache Storage** in the browser, so
24
24
  it loads once and runs offline after
25
25
 
26
26
  ## Install
@@ -31,8 +31,8 @@ npm install @desert-ant-labs/emo
31
31
 
32
32
  ## Importing
33
33
 
34
- Pure ESM and fully tree-shakeable. The **same import works everywhere** Node, bundlers,
35
- browsers, and edge/worker runtimes the right build is selected automatically:
34
+ Pure ESM and fully tree-shakeable. The **same import works everywhere** (Node, bundlers,
35
+ browsers, and edge/worker runtimes); the right build is selected automatically:
36
36
 
37
37
  ```ts
38
38
  import { suggestions } from "@desert-ant-labs/emo";
@@ -42,7 +42,7 @@ CommonJS consumers use dynamic import (`const { suggestions } = await import("@d
42
42
  native `require()` works on Node ≥ 22.12.
43
43
 
44
44
  **Minimal footprint / bring-your-own-bytes.** If you load the model files yourself, import the
45
- hub-free core from `@desert-ant-labs/emo/core` only the ~6 KB inference engine, with zero
45
+ hub-free core from `@desert-ant-labs/emo/core`, only the ~6 KB inference engine, with zero
46
46
  network/filesystem code:
47
47
 
48
48
  ```ts
@@ -114,4 +114,6 @@ Published at [`desert-ant-labs/emo`](https://huggingface.co/desert-ant-labs/emo)
114
114
 
115
115
  ## License
116
116
 
117
- See [`LICENSE.md`](LICENSE.md) — Desert Ant Labs Source-Available License v1.0. Free for commercial use up to 100,000 MAU per Model; <licensing@desertant.ai> above that.
117
+ [Desert Ant Labs Source-Available License](https://license.desertant.ai/1.0). Free for
118
+ most apps; a commercial license is required at scale. Full terms are at the link.
119
+ Licensing: <licensing@desertant.ai>.
package/dist/hub.d.ts CHANGED
@@ -1,8 +1,9 @@
1
1
  import { EmoModel } from "./model.js";
2
2
  export declare const DEFAULT_HOST = "https://huggingface.co";
3
3
  export declare const DEFAULT_REPO = "desert-ant-labs/emo";
4
- /** Pinned revision of the model repo (a commit SHA). */
5
- export declare const DEFAULT_REVISION = "bcbd42b62f8d6c0bad5d2b4a76598a908f102235";
4
+ /** Pinned revision of the model repo. A tag (not a bare commit SHA) so it
5
+ * survives history rewrites/squashes on the model repo. */
6
+ export declare const DEFAULT_REVISION = "v0.4.0";
6
7
  /** Resolution + caching configuration (mutate the exported `env` to change defaults). */
7
8
  export interface EmoEnv {
8
9
  /** Hugging Face host serving the model repo. */
package/dist/hub.js CHANGED
@@ -1,8 +1,9 @@
1
1
  import { createEmo } from "./model.js";
2
2
  export const DEFAULT_HOST = "https://huggingface.co";
3
3
  export const DEFAULT_REPO = "desert-ant-labs/emo";
4
- /** Pinned revision of the model repo (a commit SHA). */
5
- export const DEFAULT_REVISION = "bcbd42b62f8d6c0bad5d2b4a76598a908f102235";
4
+ /** Pinned revision of the model repo. A tag (not a bare commit SHA) so it
5
+ * survives history rewrites/squashes on the model repo. */
6
+ export const DEFAULT_REVISION = "v0.4.0";
6
7
  const FILES = ["emo.safetensors", "emo_tokenizer.bin", "emo_meta.json"];
7
8
  function resolveUrl(env, name) {
8
9
  return `${env.host}/${env.repo}/resolve/${env.revision}/${name}`;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@desert-ant-labs/emo",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "description": "On-device emoji suggestions from text.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.node.js",