jevais 0.1.1 → 0.3.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/README.md +54 -8
- package/dist/client.d.ts +3 -2
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +12 -7
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +6 -4
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +3 -3
- package/dist/types.js.map +1 -1
- package/package.json +4 -1
package/README.md
CHANGED
|
@@ -28,12 +28,35 @@ configure({ apiKey: process.env.TYPESAFE_API_KEY });
|
|
|
28
28
|
Every function also accepts these options per call (per-call > `configure()` >
|
|
29
29
|
defaults):
|
|
30
30
|
|
|
31
|
-
| option | default
|
|
32
|
-
| ----------- |
|
|
33
|
-
| `apiKey` | `TYPESAFE_API_KEY`
|
|
34
|
-
| `
|
|
35
|
-
| `
|
|
36
|
-
| `
|
|
31
|
+
| option | default | meaning |
|
|
32
|
+
| ----------- | ------------------------------------------------ | ---------------------------------------------------------------------- |
|
|
33
|
+
| `apiKey` | `TYPESAFE_API_KEY` | TypeSafe API key |
|
|
34
|
+
| `baseUrl` | `TYPESAFE_BASE_URL` or `https://api.typesafe.ai` | API base URL; `/v1/systemone` is appended |
|
|
35
|
+
| `model` | `"jev-latest"` | model id sent with every request |
|
|
36
|
+
| `timeoutMs` | `30000` | per-attempt request timeout |
|
|
37
|
+
| `retries` | `3` | retries on HTTP 429/503/529, exponential backoff, honors `Retry-After` |
|
|
38
|
+
|
|
39
|
+
For `baseUrl`, precedence is per-call option > `configure()` >
|
|
40
|
+
`TYPESAFE_BASE_URL` > `https://api.typesafe.ai`.
|
|
41
|
+
|
|
42
|
+
## Ollaya
|
|
43
|
+
|
|
44
|
+
[Ollaya](https://ollaya.dev/) implements the TypeSafe `/v1/systemone` API.
|
|
45
|
+
Set its base URL with `TYPESAFE_BASE_URL` or the `baseUrl` option. Choose a
|
|
46
|
+
model available on your Ollaya server; `jev-latest` is the default for the
|
|
47
|
+
hosted TypeSafe API, not an Ollaya model.
|
|
48
|
+
|
|
49
|
+
```ts
|
|
50
|
+
import { configure, ifjev } from 'jevais';
|
|
51
|
+
|
|
52
|
+
configure({ apiKey: 'local', model: 'winnow:e4b' });
|
|
53
|
+
const isRefund = await ifjev('the customer requests a refund', customerMessage, 0.85, {
|
|
54
|
+
baseUrl: 'http://localhost:11435',
|
|
55
|
+
});
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
If Ollaya is configured with `OLLAYA_API_KEY`, pass the matching key instead
|
|
59
|
+
of `local`.
|
|
37
60
|
|
|
38
61
|
## ifjev
|
|
39
62
|
|
|
@@ -110,6 +133,28 @@ if (await changedMeaning(oldConfig, newConfig, 'deployment requirements changed'
|
|
|
110
133
|
Like `partitionMeaning`, it accepts `threshold` through the options object
|
|
111
134
|
(default `0.85`).
|
|
112
135
|
|
|
136
|
+
## askNoul / askScore
|
|
137
|
+
|
|
138
|
+
The raw JEV primitives behind the functions above. `askNoul` resolves the
|
|
139
|
+
probability itself (P(yes) in [0, 1]); `askScore` resolves the full Score
|
|
140
|
+
answer (`score`, `confidence`, `legend`, `probabilities`). Use these when you
|
|
141
|
+
need the number, not just the threshold decision.
|
|
142
|
+
|
|
143
|
+
```ts
|
|
144
|
+
import { askNoul, askScore } from 'jevais';
|
|
145
|
+
|
|
146
|
+
const p = await askNoul('Is this a bug?', 'I think this is an error');
|
|
147
|
+
if (p >= 0.4) {
|
|
148
|
+
// probable
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
const answer = await askScore('Rate this item.', ['low', 'high'], feedbackText);
|
|
152
|
+
console.log(answer.score, answer.probabilities);
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
`askNoul`/`askScore` take the same per-call options as `ifjev` (`apiKey`,
|
|
156
|
+
`model`, `timeoutMs`, `retries`).
|
|
157
|
+
|
|
113
158
|
## Errors
|
|
114
159
|
|
|
115
160
|
All failures throw `JevError`, which carries the HTTP `status` (when the failure
|
|
@@ -127,8 +172,9 @@ try {
|
|
|
127
172
|
}
|
|
128
173
|
```
|
|
129
174
|
|
|
130
|
-
HTTP 429/529 are retried up to `retries` times with exponential backoff
|
|
131
|
-
`Retry-After` when present); 401, 422, and
|
|
175
|
+
HTTP 429/503/529 are retried up to `retries` times with exponential backoff
|
|
176
|
+
(honoring numeric `Retry-After` when present); 401, 422, and other statuses
|
|
177
|
+
throw immediately.
|
|
132
178
|
Empty item arrays resolve with an empty result without calling the API.
|
|
133
179
|
|
|
134
180
|
## Notes
|
package/dist/client.d.ts
CHANGED
|
@@ -18,8 +18,9 @@ export declare class JevError extends Error {
|
|
|
18
18
|
}
|
|
19
19
|
/**
|
|
20
20
|
* Set module-level defaults; later calls merge over earlier ones and
|
|
21
|
-
* per-call options still take precedence.
|
|
22
|
-
* the
|
|
21
|
+
* per-call options still take precedence. `baseUrl` falls back to
|
|
22
|
+
* `TYPESAFE_BASE_URL` and then the TypeSafe API URL. When no apiKey is set
|
|
23
|
+
* anywhere, the `TYPESAFE_API_KEY` environment variable is used.
|
|
23
24
|
*/
|
|
24
25
|
export declare function configure(options?: JevaisOptions): void;
|
|
25
26
|
/**
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,aAAa,EAElB,KAAK,WAAW,EAEjB,MAAM,YAAY,CAAC;AAUpB,UAAU,eAAe;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;GAIG;AACH,qBAAa,QAAS,SAAQ,KAAK;IACjC,0DAA0D;IAC1D,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,iDAAiD;IACjD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;gBAEX,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB;CAM3D;AAKD
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,aAAa,EAElB,KAAK,WAAW,EAEjB,MAAM,YAAY,CAAC;AAUpB,UAAU,eAAe;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;GAIG;AACH,qBAAa,QAAS,SAAQ,KAAK;IACjC,0DAA0D;IAC1D,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,iDAAiD;IACjD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;gBAEX,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB;CAM3D;AAKD;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,OAAO,GAAE,aAAkB,GAAG,IAAI,CAM3D;AAkJD;;;;GAIG;AACH,wBAAsB,OAAO,CAC3B,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,MAAM,CAAC,CASjB;AAED;;;;GAIG;AACH,wBAAsB,QAAQ,CAC5B,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,SAAS,MAAM,EAAE,EAC3B,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,WAAW,CAAC,CAkBtB"}
|
package/dist/client.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { DEFAULT_MODEL, DEFAULT_RETRIES, DEFAULT_TIMEOUT_MS,
|
|
2
|
-
/** HTTP statuses that are retried with backoff (rate limit / overloaded). */
|
|
3
|
-
const RETRYABLE_STATUSES = [429, 529];
|
|
1
|
+
import { DEFAULT_MODEL, DEFAULT_RETRIES, DEFAULT_TIMEOUT_MS, JEV_BASE_URL, } from './types.js';
|
|
2
|
+
/** HTTP statuses that are retried with backoff (rate limit / overloaded / queue full). */
|
|
3
|
+
const RETRYABLE_STATUSES = [429, 503, 529];
|
|
4
4
|
/** First backoff delay; doubles per retry, capped at MAX_RETRY_DELAY_MS. */
|
|
5
5
|
const BASE_RETRY_DELAY_MS = 500;
|
|
6
6
|
const MAX_RETRY_DELAY_MS = 8000;
|
|
@@ -26,12 +26,15 @@ export class JevError extends Error {
|
|
|
26
26
|
const moduleConfig = {};
|
|
27
27
|
/**
|
|
28
28
|
* Set module-level defaults; later calls merge over earlier ones and
|
|
29
|
-
* per-call options still take precedence.
|
|
30
|
-
* the
|
|
29
|
+
* per-call options still take precedence. `baseUrl` falls back to
|
|
30
|
+
* `TYPESAFE_BASE_URL` and then the TypeSafe API URL. When no apiKey is set
|
|
31
|
+
* anywhere, the `TYPESAFE_API_KEY` environment variable is used.
|
|
31
32
|
*/
|
|
32
33
|
export function configure(options = {}) {
|
|
33
34
|
if (options.apiKey !== undefined)
|
|
34
35
|
moduleConfig.apiKey = options.apiKey;
|
|
36
|
+
if (options.baseUrl !== undefined)
|
|
37
|
+
moduleConfig.baseUrl = options.baseUrl;
|
|
35
38
|
if (options.model !== undefined)
|
|
36
39
|
moduleConfig.model = options.model;
|
|
37
40
|
if (options.timeoutMs !== undefined)
|
|
@@ -47,6 +50,7 @@ function resolveConfig(overrides) {
|
|
|
47
50
|
}
|
|
48
51
|
return {
|
|
49
52
|
apiKey,
|
|
53
|
+
baseUrl: overrides?.baseUrl ?? moduleConfig.baseUrl ?? (process.env.TYPESAFE_BASE_URL || JEV_BASE_URL),
|
|
50
54
|
model: overrides?.model ?? moduleConfig.model ?? DEFAULT_MODEL,
|
|
51
55
|
timeoutMs: overrides?.timeoutMs ?? moduleConfig.timeoutMs ?? DEFAULT_TIMEOUT_MS,
|
|
52
56
|
retries: overrides?.retries ?? moduleConfig.retries ?? DEFAULT_RETRIES,
|
|
@@ -54,17 +58,18 @@ function resolveConfig(overrides) {
|
|
|
54
58
|
}
|
|
55
59
|
/**
|
|
56
60
|
* POST one question set over the shared `state` and return the validated
|
|
57
|
-
* response. Retries 429/529 (up to `retries` times, exponential backoff,
|
|
61
|
+
* response. Retries 429/503/529 (up to `retries` times, exponential backoff,
|
|
58
62
|
* honoring numeric Retry-After in seconds); every other failure throws a
|
|
59
63
|
* JevError carrying status and/or a raw body snippet.
|
|
60
64
|
*/
|
|
61
65
|
async function postJev(questions, state, config) {
|
|
62
66
|
const payload = JSON.stringify({ state, model: config.model, questions });
|
|
67
|
+
const endpoint = `${config.baseUrl.replace(/\/+$/, '')}/v1/systemone`;
|
|
63
68
|
let retry = 0;
|
|
64
69
|
for (;;) {
|
|
65
70
|
let response;
|
|
66
71
|
try {
|
|
67
|
-
response = await fetch(
|
|
72
|
+
response = await fetch(endpoint, {
|
|
68
73
|
method: 'POST',
|
|
69
74
|
headers: {
|
|
70
75
|
Authorization: `Bearer ${config.apiKey}`,
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,YAAY,GAMb,MAAM,YAAY,CAAC;AAEpB,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { JevError, configure } from './client.js';
|
|
1
|
+
export { JevError, askNoul, askScore, configure } from './client.js';
|
|
2
2
|
export { changedMeaning, findMeaning, ifjev, partitionMeaning, rankMeaning } from './meaning.js';
|
|
3
3
|
export type { PartitionResult } from './meaning.js';
|
|
4
4
|
export type { JevAnswer, JevQuestion, JevResponse, JevUsage, JevaisOptions, MeaningOptions, NoulAnswer, NoulQuestion, RankOptions, ScoreAnswer, ScoreQuestion, } from './types.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACjG,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,YAAY,EACV,SAAS,EACT,WAAW,EACX,WAAW,EACX,QAAQ,EACR,aAAa,EACb,cAAc,EACd,UAAU,EACV,YAAY,EACZ,WAAW,EACX,WAAW,EACX,aAAa,GACd,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
/** TypeSafe
|
|
2
|
-
export declare const
|
|
1
|
+
/** Default TypeSafe API base URL. */
|
|
2
|
+
export declare const JEV_BASE_URL = "https://api.typesafe.ai";
|
|
3
3
|
/** Default model id. */
|
|
4
4
|
export declare const DEFAULT_MODEL = "jev-latest";
|
|
5
5
|
/** Default per-attempt request timeout in milliseconds. */
|
|
6
6
|
export declare const DEFAULT_TIMEOUT_MS = 30000;
|
|
7
|
-
/** Default number of 429/529 retries after the first attempt. */
|
|
7
|
+
/** Default number of 429/503/529 retries after the first attempt. */
|
|
8
8
|
export declare const DEFAULT_RETRIES = 3;
|
|
9
9
|
/** Default yes threshold: p >= threshold counts as yes. */
|
|
10
10
|
export declare const DEFAULT_THRESHOLD = 0.85;
|
|
@@ -55,11 +55,13 @@ export interface JevResponse {
|
|
|
55
55
|
export interface JevaisOptions {
|
|
56
56
|
/** TypeSafe API key; falls back to configure(), then TYPESAFE_API_KEY. */
|
|
57
57
|
apiKey?: string;
|
|
58
|
+
/** API base URL without `/v1/systemone`; configure() and TYPESAFE_BASE_URL are fallbacks. */
|
|
59
|
+
baseUrl?: string;
|
|
58
60
|
/** Model id. Default: "jev-latest". */
|
|
59
61
|
model?: string;
|
|
60
62
|
/** Per-attempt request timeout in ms. Default: 30000. */
|
|
61
63
|
timeoutMs?: number;
|
|
62
|
-
/** 429/529 retries after the first attempt. Default: 3. */
|
|
64
|
+
/** 429/503/529 retries after the first attempt. Default: 3. */
|
|
63
65
|
retries?: number;
|
|
64
66
|
}
|
|
65
67
|
/** Options for threshold-based judgments. */
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,eAAO,MAAM,YAAY,4BAA4B,CAAC;AAEtD,wBAAwB;AACxB,eAAO,MAAM,aAAa,eAAe,CAAC;AAE1C,2DAA2D;AAC3D,eAAO,MAAM,kBAAkB,QAAS,CAAC;AAEzC,qEAAqE;AACrE,eAAO,MAAM,eAAe,IAAI,CAAC;AAEjC,2DAA2D;AAC3D,eAAO,MAAM,iBAAiB,OAAO,CAAC;AAEtC,kDAAkD;AAClD,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC,2EAA2E;AAC3E,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,EAAE,CAAC;IAC1C,QAAQ,CAAC,EAAE;QACT,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,CAAC;CACH;AAED,wEAAwE;AACxE,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,EAAE,CAAC;IAC1C,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,aAAa,CAAC;AAEvD,6EAA6E;AAC7E,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wEAAwE;AACxE,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,OAAO,CAAC;IACd,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,WAAW,CAAC;AAEjD,MAAM,WAAW,QAAQ;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,2CAA2C;AAC3C,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACnC,KAAK,EAAE,QAAQ,CAAC;CACjB;AAED,yEAAyE;AACzE,MAAM,WAAW,aAAa;IAC5B,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6FAA6F;IAC7F,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uCAAuC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,6CAA6C;AAC7C,MAAM,WAAW,cAAe,SAAQ,aAAa;IACnD,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,+BAA+B;AAC/B,MAAM,WAAW,WAAY,SAAQ,aAAa;IAChD,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}
|
package/dist/types.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
/** TypeSafe
|
|
2
|
-
export const
|
|
1
|
+
/** Default TypeSafe API base URL. */
|
|
2
|
+
export const JEV_BASE_URL = 'https://api.typesafe.ai';
|
|
3
3
|
/** Default model id. */
|
|
4
4
|
export const DEFAULT_MODEL = 'jev-latest';
|
|
5
5
|
/** Default per-attempt request timeout in milliseconds. */
|
|
6
6
|
export const DEFAULT_TIMEOUT_MS = 30_000;
|
|
7
|
-
/** Default number of 429/529 retries after the first attempt. */
|
|
7
|
+
/** Default number of 429/503/529 retries after the first attempt. */
|
|
8
8
|
export const DEFAULT_RETRIES = 3;
|
|
9
9
|
/** Default yes threshold: p >= threshold counts as yes. */
|
|
10
10
|
export const DEFAULT_THRESHOLD = 0.85;
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,MAAM,CAAC,MAAM,YAAY,GAAG,yBAAyB,CAAC;AAEtD,wBAAwB;AACxB,MAAM,CAAC,MAAM,aAAa,GAAG,YAAY,CAAC;AAE1C,2DAA2D;AAC3D,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAEzC,qEAAqE;AACrE,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC;AAEjC,2DAA2D;AAC3D,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAEtC,kDAAkD;AAClD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "jevais",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Small semantic functions on top of the TypeSafe Jev API: ifjev, findMeaning, partitionMeaning, rankMeaning, changedMeaning.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"jev",
|
|
@@ -50,9 +50,12 @@
|
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
52
|
"@eslint/js": "^9.17.0",
|
|
53
|
+
"@semantic-release/changelog": "^7.0.0",
|
|
54
|
+
"@semantic-release/git": "^11.0.1",
|
|
53
55
|
"@types/node": "^20.11.0",
|
|
54
56
|
"eslint": "^9.17.0",
|
|
55
57
|
"prettier": "^3.4.2",
|
|
58
|
+
"semantic-release": "^25.0.9",
|
|
56
59
|
"typescript": "^5.6.3",
|
|
57
60
|
"typescript-eslint": "^8.18.0",
|
|
58
61
|
"vitest": "^2.1.9"
|