jevascript 0.1.0 → 0.1.1
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 +51 -11
- package/dist/cache.d.ts +5 -2
- package/dist/cache.d.ts.map +1 -1
- package/dist/cache.js +10 -12
- package/dist/cache.js.map +1 -1
- package/dist/collections.d.ts.map +1 -1
- package/dist/collections.js +68 -27
- package/dist/collections.js.map +1 -1
- package/dist/config.d.ts +6 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +8 -2
- package/dist/config.js.map +1 -1
- package/dist/context.d.ts +17 -50
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +33 -108
- package/dist/context.js.map +1 -1
- package/dist/define.d.ts +26 -13
- package/dist/define.d.ts.map +1 -1
- package/dist/define.js +4 -0
- package/dist/define.js.map +1 -1
- package/dist/env.d.ts +6 -0
- package/dist/env.d.ts.map +1 -0
- package/dist/env.js +8 -0
- package/dist/env.js.map +1 -0
- package/dist/errors.d.ts +7 -2
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +13 -4
- package/dist/errors.js.map +1 -1
- package/dist/evaluate.d.ts.map +1 -1
- package/dist/evaluate.js +11 -12
- package/dist/evaluate.js.map +1 -1
- package/dist/index.d.ts +7 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/interpret.d.ts +25 -0
- package/dist/interpret.d.ts.map +1 -0
- package/dist/interpret.js +77 -0
- package/dist/interpret.js.map +1 -0
- package/dist/outputs.d.ts.map +1 -1
- package/dist/outputs.js +2 -1
- package/dist/outputs.js.map +1 -1
- package/dist/providers/jev.d.ts.map +1 -1
- package/dist/providers/jev.js +153 -48
- package/dist/providers/jev.js.map +1 -1
- package/dist/questions.d.ts +41 -4
- package/dist/questions.d.ts.map +1 -1
- package/dist/questions.js +8 -7
- package/dist/questions.js.map +1 -1
- package/dist/runner.d.ts +2 -1
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +53 -34
- package/dist/runner.js.map +1 -1
- package/dist/types.d.ts +2 -2
- package/dist/types.d.ts.map +1 -1
- package/package.json +33 -6
package/README.md
CHANGED
|
@@ -16,11 +16,14 @@ if (urgency > 80) {
|
|
|
16
16
|
|
|
17
17
|
The model supplies the judgement. Your code decides the consequence.
|
|
18
18
|
|
|
19
|
+
**[Website](https://jevascript.org/)** · **[Documentation](https://jevascript.org/docs)** ·
|
|
20
|
+
**[Changelog](CHANGELOG.md)**
|
|
21
|
+
|
|
19
22
|
## Status
|
|
20
23
|
|
|
21
|
-
Working MVP. The package is verified end to end
|
|
22
|
-
TypeSafe API. Several
|
|
23
|
-
[
|
|
24
|
+
Working MVP, 0.x: the API may still change before 1.0. The package is verified end to end
|
|
25
|
+
against the live TypeSafe API. Several planned features are deliberately not built yet — see
|
|
26
|
+
the [roadmap](#roadmap).
|
|
24
27
|
|
|
25
28
|
## Install
|
|
26
29
|
|
|
@@ -109,6 +112,11 @@ const analysis = await semantic(ticket).batch({
|
|
|
109
112
|
})
|
|
110
113
|
```
|
|
111
114
|
|
|
115
|
+
A question means the same thing in a batch as on its own: `threshold`, `allowUnknown`,
|
|
116
|
+
`minConfidence` with `fallback`, and `detailed` all apply, and the result types follow the
|
|
117
|
+
options — `is("…", { allowUnknown: true })` is typed `boolean | "unknown"`, never a bare
|
|
118
|
+
`boolean` that would let a truthy `"unknown"` through an `if`.
|
|
119
|
+
|
|
112
120
|
`Promise.all([...])` on the same context batches identically. **Sequential `await`s cannot**
|
|
113
121
|
— the second question doesn't exist until the first resolves — so the runtime warns once
|
|
114
122
|
when a context issues a second request.
|
|
@@ -168,7 +176,9 @@ const risk = await semantic(order).score("fraud risk", {
|
|
|
168
176
|
Without `minConfidence` or `samples`, `detailed: true` returns `probability` and leaves
|
|
169
177
|
`confidence` undefined rather than filling it with a number that means nothing. Sampling a
|
|
170
178
|
question does not multiply the cost of its neighbours: the extra rounds carry only the
|
|
171
|
-
questions that asked for them.
|
|
179
|
+
questions that asked for them. The rounds run concurrently, so sampling costs requests, not
|
|
180
|
+
latency. A `minConfidence` set in `defaults` implies sampling just as one set on the call
|
|
181
|
+
does, and a cached answer keeps the confidence it was measured with.
|
|
172
182
|
|
|
173
183
|
`choose()` and rubric-backed `score()` get a real confidence from the provider — the
|
|
174
184
|
concentration of the distribution — so they need no sampling.
|
|
@@ -190,7 +200,19 @@ switch (await semantic(tx).is("This is fraud", { allowUnknown: true })) {
|
|
|
190
200
|
await semantic(doc).score("quality", { cache: "1h" })
|
|
191
201
|
```
|
|
192
202
|
|
|
193
|
-
Caching is a consistency tool here as much as a cost one.
|
|
203
|
+
Caching is a consistency tool here as much as a cost one. Cache keys are SHA-256 over exactly
|
|
204
|
+
what the provider is sent (`Date`s included), so two states can only share an answer if the
|
|
205
|
+
model would have seen the same thing.
|
|
206
|
+
|
|
207
|
+
## Timeouts and failures
|
|
208
|
+
|
|
209
|
+
Every evaluation runs under one deadline — 10 s unless `defaults.timeoutMs` or the call's
|
|
210
|
+
`timeoutMs` says otherwise, `0` for none. Retries on 429/5xx spend from that deadline rather
|
|
211
|
+
than each getting a fresh one, and a timeout or a caller's `AbortSignal` is never retried.
|
|
212
|
+
A timeout throws `SemanticTimeoutError`; any other provider failure throws `ProviderError`
|
|
213
|
+
with the HTTP `status` and the API's own message. Answers are validated on the way in: a
|
|
214
|
+
choice that is not one of your options, or a probability outside [0, 1], is an error rather
|
|
215
|
+
than a value.
|
|
194
216
|
|
|
195
217
|
## Declare a schema once, apply it to data
|
|
196
218
|
|
|
@@ -266,6 +288,14 @@ if (await churnRisk(customer) > 80) startRetentionFlow()
|
|
|
266
288
|
|
|
267
289
|
`churnRisk.question()` composes into `batch()`, so a defined metric still shares a request.
|
|
268
290
|
|
|
291
|
+
`defineRule` is the boolean counterpart. Whether a rule may answer `"unknown"` is part of its
|
|
292
|
+
definition, and its type says so:
|
|
293
|
+
|
|
294
|
+
```ts
|
|
295
|
+
const fraud = defineRule({ name: "fraud", condition: "This order is fraudulent.", defaults: { allowUnknown: true } })
|
|
296
|
+
const verdict = await fraud(order) // boolean | "unknown"
|
|
297
|
+
```
|
|
298
|
+
|
|
269
299
|
Bump `version` whenever the wording changes. There is no fine-tuning: the prompt, the
|
|
270
300
|
criteria and the pinned model version are a single artefact, and evaluations are only
|
|
271
301
|
comparable within one.
|
|
@@ -278,7 +308,8 @@ Call cost differs by an order of magnitude, so it is worth knowing which you are
|
|
|
278
308
|
|---|---|
|
|
279
309
|
| `semantic.find(items, condition)` | **1** |
|
|
280
310
|
| `semantic.compare(a, b, { by })` | **1** |
|
|
281
|
-
| `semantic.filter`
|
|
311
|
+
| `semantic.filter` | N |
|
|
312
|
+
| `semantic.some` / `every` | 1 to N — they stop as soon as the answer is decided |
|
|
282
313
|
| `semantic(query).rank(items, { by })` | N |
|
|
283
314
|
|
|
284
315
|
`find` puts the items themselves into one choice — and pairs it with an existence check,
|
|
@@ -370,9 +401,9 @@ Counting, arithmetic, and date comparison — a decision model reads dates as te
|
|
|
370
401
|
ordered values. Extract the parts with a `choose`, then compare in code. Keep irrelevant
|
|
371
402
|
fields out of the state; they measurably degrade accuracy.
|
|
372
403
|
|
|
373
|
-
##
|
|
404
|
+
## Roadmap
|
|
374
405
|
|
|
375
|
-
|
|
406
|
+
Planned, and deliberately out of scope for this MVP:
|
|
376
407
|
|
|
377
408
|
- `evidence` — the provider generates no text, so this has to be *extractive*: tag the state's
|
|
378
409
|
lines with ids, run a choice over the ids plus an existence check, and cite the winning
|
|
@@ -430,7 +461,8 @@ npm run example examples/agent-guardrail.ts
|
|
|
430
461
|
|
|
431
462
|
```bash
|
|
432
463
|
npm install
|
|
433
|
-
npm test # build + typecheck +
|
|
464
|
+
npm test # build + typecheck + 89 tests, no network
|
|
465
|
+
npm run test:live # 10 contract tests against the live API, needs .env
|
|
434
466
|
npm run example examples/support-ticket.ts # live, needs JEV_API_KEY
|
|
435
467
|
npm run example examples/batching-benchmark.ts
|
|
436
468
|
```
|
|
@@ -441,7 +473,15 @@ npm run example examples/batching-benchmark.ts
|
|
|
441
473
|
src/ the runtime: context, batching, primitives, cache, definitions, collections
|
|
442
474
|
src/providers/ provider adapters (jev.ts today)
|
|
443
475
|
src/testing.ts mock provider, exported as "jevascript/testing"
|
|
444
|
-
test/ offline tests against the mock provider
|
|
476
|
+
test/ offline tests against the mock provider and a scripted fetch
|
|
477
|
+
test/live/ contract tests against the live API (npm run test:live)
|
|
445
478
|
examples/ live end-to-end scripts (quick/, launch/, app/)
|
|
446
|
-
docs/ landing page spec
|
|
447
479
|
```
|
|
480
|
+
|
|
481
|
+
## Security
|
|
482
|
+
|
|
483
|
+
Found a vulnerability? Please report it privately — see [SECURITY.md](SECURITY.md).
|
|
484
|
+
|
|
485
|
+
## License
|
|
486
|
+
|
|
487
|
+
[MIT](LICENSE)
|
package/dist/cache.d.ts
CHANGED
|
@@ -5,11 +5,14 @@ export interface SemanticCache {
|
|
|
5
5
|
}
|
|
6
6
|
/** Parses "5m", "1h", "30s", "250ms", or a raw millisecond number. */
|
|
7
7
|
export declare function parseTtl(ttl: string | number): number;
|
|
8
|
-
/**
|
|
8
|
+
/**
|
|
9
|
+
* SHA-256, hex. A collision would silently serve one state's answer for
|
|
10
|
+
* another's, and states are often user-authored, so the key has to hold up
|
|
11
|
+
* against inputs chosen on purpose — not just against accidents.
|
|
12
|
+
*/
|
|
9
13
|
export declare function hashKey(input: string): string;
|
|
10
14
|
export declare class MemoryCache implements SemanticCache {
|
|
11
15
|
#private;
|
|
12
|
-
private readonly maxEntries;
|
|
13
16
|
constructor(maxEntries?: number);
|
|
14
17
|
get(key: string): SemanticAnswer | undefined;
|
|
15
18
|
set(key: string, value: SemanticAnswer, ttlMs: number): void;
|
package/dist/cache.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAEhD,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,GAAG,cAAc,GAAG,SAAS,CAAA;IAClF,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;CAC7E;AAED,sEAAsE;AACtE,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAQrD;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE7C;AAOD,qBAAa,WAAY,YAAW,aAAa;;gBAInC,UAAU,SAAQ;IAI9B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAa5C,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAU5D,KAAK,IAAI,IAAI;CAGd"}
|
package/dist/cache.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
1
2
|
/** Parses "5m", "1h", "30s", "250ms", or a raw millisecond number. */
|
|
2
3
|
export function parseTtl(ttl) {
|
|
3
4
|
if (typeof ttl === "number")
|
|
@@ -10,22 +11,19 @@ export function parseTtl(ttl) {
|
|
|
10
11
|
const scale = { ms: 1, s: 1000, m: 60_000, h: 3_600_000, d: 86_400_000 }[unit];
|
|
11
12
|
return value * scale;
|
|
12
13
|
}
|
|
13
|
-
/**
|
|
14
|
+
/**
|
|
15
|
+
* SHA-256, hex. A collision would silently serve one state's answer for
|
|
16
|
+
* another's, and states are often user-authored, so the key has to hold up
|
|
17
|
+
* against inputs chosen on purpose — not just against accidents.
|
|
18
|
+
*/
|
|
14
19
|
export function hashKey(input) {
|
|
15
|
-
|
|
16
|
-
let b = 0x01000193;
|
|
17
|
-
for (let i = 0; i < input.length; i++) {
|
|
18
|
-
const c = input.charCodeAt(i);
|
|
19
|
-
a = Math.imul(a ^ c, 0x01000193) >>> 0;
|
|
20
|
-
b = Math.imul(b ^ (c + i), 0x85ebca6b) >>> 0;
|
|
21
|
-
}
|
|
22
|
-
return a.toString(36) + b.toString(36);
|
|
20
|
+
return createHash("sha256").update(input).digest("hex");
|
|
23
21
|
}
|
|
24
22
|
export class MemoryCache {
|
|
25
|
-
maxEntries;
|
|
26
23
|
#entries = new Map();
|
|
24
|
+
#maxEntries;
|
|
27
25
|
constructor(maxEntries = 5_000) {
|
|
28
|
-
this
|
|
26
|
+
this.#maxEntries = maxEntries;
|
|
29
27
|
}
|
|
30
28
|
get(key) {
|
|
31
29
|
const entry = this.#entries.get(key);
|
|
@@ -44,7 +42,7 @@ export class MemoryCache {
|
|
|
44
42
|
if (ttlMs <= 0)
|
|
45
43
|
return;
|
|
46
44
|
this.#entries.set(key, { value, expiresAt: Date.now() + ttlMs });
|
|
47
|
-
while (this.#entries.size > this
|
|
45
|
+
while (this.#entries.size > this.#maxEntries) {
|
|
48
46
|
const oldest = this.#entries.keys().next();
|
|
49
47
|
if (oldest.done)
|
|
50
48
|
break;
|
package/dist/cache.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAQxC,sEAAsE;AACtE,MAAM,UAAU,QAAQ,CAAC,GAAoB;IAC3C,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAA;IACvC,MAAM,KAAK,GAAG,+BAA+B,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAA;IAC9D,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAA;IACvG,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAC9B,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAiC,CAAA;IACrD,MAAM,KAAK,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,IAAI,CAAC,CAAA;IAC9E,OAAO,KAAK,GAAG,KAAK,CAAA;AACtB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,OAAO,CAAC,KAAa;IACnC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AACzD,CAAC;AAOD,MAAM,OAAO,WAAW;IACtB,QAAQ,GAAG,IAAI,GAAG,EAAiB,CAAA;IAC1B,WAAW,CAAQ;IAE5B,YAAY,UAAU,GAAG,KAAK;QAC5B,IAAI,CAAC,WAAW,GAAG,UAAU,CAAA;IAC/B,CAAC;IAED,GAAG,CAAC,GAAW;QACb,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACpC,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAA;QAC5B,IAAI,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAClC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YACzB,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,8CAA8C;QAC9C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACzB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QAC7B,OAAO,KAAK,CAAC,KAAK,CAAA;IACpB,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,KAAqB,EAAE,KAAa;QACnD,IAAI,KAAK,IAAI,CAAC;YAAE,OAAM;QACtB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC,CAAA;QAChE,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAA;YAC1C,IAAI,MAAM,CAAC,IAAI;gBAAE,MAAK;YACtB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACpC,CAAC;IACH,CAAC;IAED,KAAK;QACH,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAA;IACvB,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collections.d.ts","sourceRoot":"","sources":["../src/collections.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"collections.d.ts","sourceRoot":"","sources":["../src/collections.ts"],"names":[],"mappings":"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"}
|
package/dist/collections.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BUILTIN_DEFAULTS, globalRuntime } from "./config.js";
|
|
1
|
+
import { BUILTIN_DEFAULTS, globalRuntime, resolveTimeout } from "./config.js";
|
|
2
2
|
import { emit as emitEvent, runPlan as runPlanRaw } from "./runner.js";
|
|
3
3
|
import { parseTtlOrUndefined } from "./internal.js";
|
|
4
4
|
function render(item, index, label) {
|
|
@@ -8,13 +8,30 @@ function render(item, index, label) {
|
|
|
8
8
|
return item;
|
|
9
9
|
return JSON.stringify(item);
|
|
10
10
|
}
|
|
11
|
-
|
|
11
|
+
/**
|
|
12
|
+
* Runs `fn` over `items` with at most `limit` in flight.
|
|
13
|
+
*
|
|
14
|
+
* Stops handing out new items as soon as one fails or `stop()` returns true,
|
|
15
|
+
* so a failing provider or an already-decided `some()` does not keep spending
|
|
16
|
+
* requests. Items never started are left `undefined`.
|
|
17
|
+
*/
|
|
18
|
+
async function mapLimited(items, limit, fn, stop = () => false) {
|
|
12
19
|
const results = new Array(items.length);
|
|
13
20
|
let cursor = 0;
|
|
14
|
-
|
|
15
|
-
|
|
21
|
+
let halted = false;
|
|
22
|
+
const workers = Array.from({ length: Math.max(1, Math.min(limit, items.length)) }, async () => {
|
|
23
|
+
while (!halted && cursor < items.length) {
|
|
16
24
|
const index = cursor++;
|
|
17
|
-
|
|
25
|
+
try {
|
|
26
|
+
const result = await fn(items[index], index);
|
|
27
|
+
results[index] = result;
|
|
28
|
+
if (stop(result))
|
|
29
|
+
halted = true;
|
|
30
|
+
}
|
|
31
|
+
catch (error) {
|
|
32
|
+
halted = true;
|
|
33
|
+
throw error;
|
|
34
|
+
}
|
|
18
35
|
}
|
|
19
36
|
});
|
|
20
37
|
await Promise.all(workers);
|
|
@@ -26,16 +43,24 @@ export function bindCollections(runtime) {
|
|
|
26
43
|
const resolveProvider = (override) => runtime.provider(override);
|
|
27
44
|
const emit = (event) => emitEvent(event, runtime.config);
|
|
28
45
|
const runPlan = (provider, state, planned, options = {}) => runPlanRaw(provider, state, planned, { ...options, store: runtime.store });
|
|
46
|
+
const thresholdOf = (options) => options.threshold ?? getConfig().defaults?.threshold ?? BUILTIN_DEFAULTS.threshold;
|
|
47
|
+
const timeoutOf = (options) => {
|
|
48
|
+
const timeoutMs = resolveTimeout(options.timeoutMs, getConfig());
|
|
49
|
+
return timeoutMs !== undefined ? { timeoutMs } : {};
|
|
50
|
+
};
|
|
29
51
|
/**
|
|
30
|
-
* Scores
|
|
52
|
+
* Scores items independently against one proposition.
|
|
31
53
|
*
|
|
32
54
|
* This is N requests, not one: each item is a different state, and a request
|
|
33
55
|
* carries a single state. Prefer `find` when you only need the best item.
|
|
56
|
+
* `stopWhen` ends the walk early once the answer is decided.
|
|
34
57
|
*/
|
|
35
|
-
async function scoreEach(items, condition, options, operation) {
|
|
58
|
+
async function scoreEach(items, condition, options, operation, stopWhen) {
|
|
36
59
|
const provider = resolveProvider(options.provider);
|
|
37
60
|
const ttl = parseTtlOrUndefined(options.cache ?? getConfig().defaults?.cache);
|
|
61
|
+
const samples = options.samples ?? 1;
|
|
38
62
|
const started = Date.now();
|
|
63
|
+
const totals = { requests: 0, cached: 0, inputTokens: 0, outputTokens: 0 };
|
|
39
64
|
const scores = await mapLimited(items, options.concurrency ?? 8, async (item, index) => {
|
|
40
65
|
const rendered = render(item, index, options.label);
|
|
41
66
|
const shared = options.context;
|
|
@@ -49,23 +74,29 @@ export function bindCollections(runtime) {
|
|
|
49
74
|
...(options.trueWhen !== undefined ? { trueWhen: options.trueWhen } : {}),
|
|
50
75
|
...(options.falseWhen !== undefined ? { falseWhen: options.falseWhen } : {}),
|
|
51
76
|
},
|
|
52
|
-
samples
|
|
77
|
+
samples,
|
|
53
78
|
...(ttl !== undefined ? { cacheTtlMs: ttl } : {}),
|
|
54
79
|
},
|
|
55
|
-
], options
|
|
80
|
+
], timeoutOf(options));
|
|
81
|
+
totals.requests += result.requestCount;
|
|
82
|
+
totals.cached += result.cachedKeys.size;
|
|
83
|
+
totals.inputTokens += result.usage.inputTokens ?? 0;
|
|
84
|
+
totals.outputTokens += result.usage.outputTokens ?? 0;
|
|
56
85
|
return result.answers["match"].probability;
|
|
57
|
-
});
|
|
86
|
+
}, stopWhen);
|
|
87
|
+
const evaluated = scores.filter((s) => s !== undefined).length;
|
|
58
88
|
emit({
|
|
59
89
|
operation,
|
|
60
90
|
keys: ["match"],
|
|
61
91
|
provider: provider.name,
|
|
62
92
|
model: provider.model,
|
|
63
93
|
latencyMs: Date.now() - started,
|
|
64
|
-
cached:
|
|
94
|
+
cached: evaluated > 0 && totals.cached === evaluated,
|
|
65
95
|
batched: false,
|
|
66
|
-
questionCount:
|
|
67
|
-
requestCount:
|
|
68
|
-
samples
|
|
96
|
+
questionCount: evaluated,
|
|
97
|
+
requestCount: totals.requests,
|
|
98
|
+
samples,
|
|
99
|
+
usage: { inputTokens: totals.inputTokens, outputTokens: totals.outputTokens },
|
|
69
100
|
});
|
|
70
101
|
return scores;
|
|
71
102
|
}
|
|
@@ -73,16 +104,24 @@ export function bindCollections(runtime) {
|
|
|
73
104
|
if (items.length === 0)
|
|
74
105
|
return [];
|
|
75
106
|
const scores = await scoreEach(items, condition, { ...options, by: condition }, "filter");
|
|
76
|
-
const threshold = options
|
|
107
|
+
const threshold = thresholdOf(options);
|
|
77
108
|
return items.filter((_, index) => scores[index] > threshold);
|
|
78
109
|
}
|
|
110
|
+
/** Stops at the first match: at best one request, at worst N. */
|
|
79
111
|
async function some(items, condition, options = {}) {
|
|
80
|
-
|
|
112
|
+
if (items.length === 0)
|
|
113
|
+
return false;
|
|
114
|
+
const threshold = thresholdOf(options);
|
|
115
|
+
const scores = await scoreEach(items, condition, { ...options, by: condition }, "filter", (p) => p > threshold);
|
|
116
|
+
return scores.some((p) => p !== undefined && p > threshold);
|
|
81
117
|
}
|
|
118
|
+
/** Stops at the first item that fails. */
|
|
82
119
|
async function every(items, condition, options = {}) {
|
|
83
120
|
if (items.length === 0)
|
|
84
121
|
return true;
|
|
85
|
-
|
|
122
|
+
const threshold = thresholdOf(options);
|
|
123
|
+
const scores = await scoreEach(items, condition, { ...options, by: condition }, "filter", (p) => p <= threshold);
|
|
124
|
+
return scores.every((p) => p !== undefined && p > threshold);
|
|
86
125
|
}
|
|
87
126
|
async function rank(items, options) {
|
|
88
127
|
if (items.length === 0)
|
|
@@ -105,26 +144,27 @@ export function bindCollections(runtime) {
|
|
|
105
144
|
return undefined;
|
|
106
145
|
const provider = resolveProvider(options.provider);
|
|
107
146
|
const capacity = provider.capabilities.maxChoiceOptions;
|
|
147
|
+
const threshold = thresholdOf(options);
|
|
108
148
|
if (items.length > capacity) {
|
|
109
149
|
const ranked = await rank(items, { ...options, by: condition });
|
|
110
150
|
const best = ranked[0];
|
|
111
|
-
const threshold = options.threshold ?? getConfig().defaults?.threshold ?? BUILTIN_DEFAULTS.threshold;
|
|
112
151
|
return best && best.score > threshold ? best.item : undefined;
|
|
113
152
|
}
|
|
153
|
+
// Measured against the live API: the candidates belong both in the state
|
|
154
|
+
// (the existence check reads them there) and as the option descriptions
|
|
155
|
+
// (bare ids lose accuracy). Moving the text out of either costs correctness
|
|
156
|
+
// and saves almost no tokens.
|
|
114
157
|
const ids = items.map((_, index) => `i${index}`);
|
|
115
|
-
const optionMap = {};
|
|
116
158
|
const candidates = {};
|
|
117
159
|
items.forEach((item, index) => {
|
|
118
|
-
|
|
119
|
-
optionMap[ids[index]] = text;
|
|
120
|
-
candidates[ids[index]] = text;
|
|
160
|
+
candidates[ids[index]] = render(item, index, options.label);
|
|
121
161
|
});
|
|
122
162
|
const ttl = parseTtlOrUndefined(options.cache ?? getConfig().defaults?.cache);
|
|
123
163
|
const started = Date.now();
|
|
124
164
|
const result = await runPlan(provider, { candidates }, [
|
|
125
165
|
{
|
|
126
166
|
key: "pick",
|
|
127
|
-
question: { kind: "choice", instructions: condition, options:
|
|
167
|
+
question: { kind: "choice", instructions: condition, options: candidates },
|
|
128
168
|
samples: options.samples ?? 1,
|
|
129
169
|
...(ttl !== undefined ? { cacheTtlMs: ttl } : {}),
|
|
130
170
|
},
|
|
@@ -138,7 +178,7 @@ export function bindCollections(runtime) {
|
|
|
138
178
|
samples: options.samples ?? 1,
|
|
139
179
|
...(ttl !== undefined ? { cacheTtlMs: ttl } : {}),
|
|
140
180
|
},
|
|
141
|
-
], options
|
|
181
|
+
], timeoutOf(options));
|
|
142
182
|
emit({
|
|
143
183
|
operation: "find",
|
|
144
184
|
keys: ["pick", "exists"],
|
|
@@ -152,7 +192,6 @@ export function bindCollections(runtime) {
|
|
|
152
192
|
samples: options.samples ?? 1,
|
|
153
193
|
usage: result.usage,
|
|
154
194
|
});
|
|
155
|
-
const threshold = options.threshold ?? getConfig().defaults?.threshold ?? BUILTIN_DEFAULTS.threshold;
|
|
156
195
|
if (result.answers["exists"].probability <= threshold)
|
|
157
196
|
return undefined;
|
|
158
197
|
const picked = result.answers["pick"].choice;
|
|
@@ -163,6 +202,7 @@ export function bindCollections(runtime) {
|
|
|
163
202
|
async function compare(left, right, options) {
|
|
164
203
|
const provider = resolveProvider(options.provider);
|
|
165
204
|
const toText = (item) => (options.label ? options.label(item) : typeof item === "string" ? item : JSON.stringify(item));
|
|
205
|
+
const ttl = parseTtlOrUndefined(options.cache ?? getConfig().defaults?.cache);
|
|
166
206
|
const started = Date.now();
|
|
167
207
|
const result = await runPlan(provider, { left: toText(left), right: toText(right) }, [
|
|
168
208
|
{
|
|
@@ -177,15 +217,16 @@ export function bindCollections(runtime) {
|
|
|
177
217
|
},
|
|
178
218
|
},
|
|
179
219
|
samples: options.samples ?? 1,
|
|
220
|
+
...(ttl !== undefined ? { cacheTtlMs: ttl } : {}),
|
|
180
221
|
},
|
|
181
|
-
], options
|
|
222
|
+
], timeoutOf(options));
|
|
182
223
|
emit({
|
|
183
224
|
operation: "compare",
|
|
184
225
|
keys: ["winner"],
|
|
185
226
|
provider: provider.name,
|
|
186
227
|
model: provider.model,
|
|
187
228
|
latencyMs: Date.now() - started,
|
|
188
|
-
cached:
|
|
229
|
+
cached: result.cachedKeys.size === 1,
|
|
189
230
|
batched: false,
|
|
190
231
|
questionCount: 1,
|
|
191
232
|
requestCount: result.requestCount,
|
package/dist/collections.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collections.js","sourceRoot":"","sources":["../src/collections.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"collections.js","sourceRoot":"","sources":["../src/collections.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { type SemanticCache } from "./cache.ts";
|
|
2
2
|
import type { Observability, SemanticProvider } from "./types.ts";
|
|
3
3
|
export interface SemanticDefaults {
|
|
4
|
+
/**
|
|
5
|
+
* Deadline for one evaluation, retries included. Defaults to 10 000. Pass `0`
|
|
6
|
+
* or `Infinity` to wait indefinitely.
|
|
7
|
+
*/
|
|
4
8
|
timeoutMs?: number;
|
|
5
9
|
minConfidence?: number;
|
|
6
10
|
cache?: string | number;
|
|
@@ -54,4 +58,6 @@ export declare function getConfig(): SemanticConfig;
|
|
|
54
58
|
export declare function getCacheStore(): SemanticCache;
|
|
55
59
|
export declare function resolveProvider(override?: SemanticProvider): SemanticProvider;
|
|
56
60
|
export declare function shouldWarnUnbatched(config?: SemanticConfig): boolean;
|
|
61
|
+
/** The deadline a call runs under: its own, else the configured default, else the built-in one. */
|
|
62
|
+
export declare function resolveTimeout(explicit: number | undefined, config: SemanticConfig): number | undefined;
|
|
57
63
|
//# sourceMappingURL=config.d.ts.map
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,YAAY,CAAA;AAI5D,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAEjE,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,kEAAkE;IAClE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,6EAA6E;IAC7E,eAAe,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC3C,qFAAqF;IACrF,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAA;CAC3C;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,gBAAgB,CAAA;IAC3B,QAAQ,CAAC,EAAE,gBAAgB,CAAA;IAC3B,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,UAAU,CAAC,EAAE,aAAa,CAAA;IAC1B,uGAAuG;IACvG,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,eAAO,MAAM,gBAAgB;;;;IAI3B,8EAA8E;;CAEpD,CAAA;AAE5B;;;;;;GAMG;AACH,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAA;IAC/B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAA;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,gBAAgB,GAAG,gBAAgB,CAAA;IACvD,4FAA4F;IAC5F,SAAS,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAAA;CACxC;AAaD,wBAAgB,aAAa,CAAC,MAAM,GAAE,cAAmB,GAAG,OAAO,CAgBlE;AAKD,6FAA6F;AAC7F,eAAO,MAAM,aAAa,EAAE,OAS3B,CAAA;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAG9D;AAED,wBAAgB,aAAa,IAAI,IAAI,CAGpC;AAED,wBAAgB,SAAS,IAAI,cAAc,CAE1C;AAED,wBAAgB,aAAa,IAAI,aAAa,CAE7C;AAED,wBAAgB,eAAe,CAAC,QAAQ,CAAC,EAAE,gBAAgB,GAAG,gBAAgB,CAE7E;AAED,wBAAgB,mBAAmB,CAAC,MAAM,GAAE,cAAwB,GAAG,OAAO,CAE7E;AAED,mGAAmG;AACnG,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,cAAc,GAAG,MAAM,GAAG,SAAS,CAGvG"}
|
package/dist/config.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { MemoryCache } from "./cache.js";
|
|
2
2
|
import { NotConfiguredError } from "./errors.js";
|
|
3
|
+
import { env } from "./env.js";
|
|
3
4
|
import { jev } from "./providers/jev.js";
|
|
4
5
|
export const BUILTIN_DEFAULTS = {
|
|
5
6
|
timeoutMs: 10_000,
|
|
@@ -14,7 +15,7 @@ function resolveProviderIn(config, override) {
|
|
|
14
15
|
if (config.provider)
|
|
15
16
|
return config.provider;
|
|
16
17
|
// Zero-config path: an API key in the environment is enough to start.
|
|
17
|
-
if (
|
|
18
|
+
if (env("JEV_API_KEY")) {
|
|
18
19
|
config.provider = jev();
|
|
19
20
|
return config.provider;
|
|
20
21
|
}
|
|
@@ -70,6 +71,11 @@ export function resolveProvider(override) {
|
|
|
70
71
|
return globalRuntime.provider(override);
|
|
71
72
|
}
|
|
72
73
|
export function shouldWarnUnbatched(config = current) {
|
|
73
|
-
return config.warnUnbatched ??
|
|
74
|
+
return config.warnUnbatched ?? env("NODE_ENV") !== "production";
|
|
75
|
+
}
|
|
76
|
+
/** The deadline a call runs under: its own, else the configured default, else the built-in one. */
|
|
77
|
+
export function resolveTimeout(explicit, config) {
|
|
78
|
+
const timeoutMs = explicit ?? config.defaults?.timeoutMs ?? BUILTIN_DEFAULTS.timeoutMs;
|
|
79
|
+
return timeoutMs > 0 && Number.isFinite(timeoutMs) ? timeoutMs : undefined;
|
|
74
80
|
}
|
|
75
81
|
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAsB,MAAM,YAAY,CAAA;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/context.d.ts
CHANGED
|
@@ -1,57 +1,22 @@
|
|
|
1
1
|
import { type Runtime } from "./config.ts";
|
|
2
2
|
import { type Ranked, type RankOptions } from "./collections.ts";
|
|
3
|
-
import { type ChooseOptions, type IsOptions, type QuestionSpec, type ScoreOptions } from "./questions.ts";
|
|
4
|
-
import type {
|
|
5
|
-
export
|
|
6
|
-
value: boolean;
|
|
7
|
-
/** The calibrated signal. For truth-backed answers this *is* the uncertainty. */
|
|
8
|
-
probability: number;
|
|
9
|
-
/** Measured across sample rounds. Undefined unless `samples`/`minConfidence` was set. */
|
|
10
|
-
confidence?: number;
|
|
11
|
-
}
|
|
12
|
-
export interface DetailedScore {
|
|
13
|
-
value: number;
|
|
14
|
-
probability?: number;
|
|
15
|
-
/** Rubric position, 1-indexed. Present only for `levels`-backed scores. */
|
|
16
|
-
level?: number;
|
|
17
|
-
confidence?: number;
|
|
18
|
-
}
|
|
19
|
-
export interface DetailedChoice<T extends string> {
|
|
20
|
-
value: T;
|
|
21
|
-
confidence: number;
|
|
22
|
-
probabilities: Record<string, number>;
|
|
23
|
-
}
|
|
3
|
+
import { type ChoiceInput, type ChoiceKey, type ChooseOptions, type ChooseResult, type IsOptions, type IsResult, type QuestionSpec, type ScoreOptions, type ScoreResult } from "./questions.ts";
|
|
4
|
+
import type { State } from "./types.ts";
|
|
5
|
+
export type { DetailedChoice, DetailedScore, DetailedTruth } from "./questions.ts";
|
|
24
6
|
export declare class SemanticContext {
|
|
25
7
|
#private;
|
|
26
8
|
constructor(state: State, runtime?: Runtime);
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
}): Promise<
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
detailed?: false;
|
|
39
|
-
}): Promise<number>;
|
|
40
|
-
score(criterion: string, options: ScoreOptions & {
|
|
41
|
-
detailed: true;
|
|
42
|
-
}): Promise<DetailedScore>;
|
|
43
|
-
choose<const T extends readonly string[]>(options: T, extra?: ChooseOptions & {
|
|
44
|
-
detailed?: false;
|
|
45
|
-
}): Promise<T[number]>;
|
|
46
|
-
choose<const T extends readonly string[]>(options: T, extra: ChooseOptions & {
|
|
47
|
-
detailed: true;
|
|
48
|
-
}): Promise<DetailedChoice<T[number]>>;
|
|
49
|
-
choose<const T extends Readonly<Record<string, string | ChoiceOptionSpec>>>(options: T, extra?: ChooseOptions & {
|
|
50
|
-
detailed?: false;
|
|
51
|
-
}): Promise<keyof T & string>;
|
|
52
|
-
choose<const T extends Readonly<Record<string, string | ChoiceOptionSpec>>>(options: T, extra: ChooseOptions & {
|
|
53
|
-
detailed: true;
|
|
54
|
-
}): Promise<DetailedChoice<keyof T & string>>;
|
|
9
|
+
/**
|
|
10
|
+
* P(condition) thresholded into a boolean.
|
|
11
|
+
*
|
|
12
|
+
* `allowUnknown: true` widens the result to `boolean | "unknown"`, and
|
|
13
|
+
* `detailed: true` returns the probability alongside — the types follow.
|
|
14
|
+
*/
|
|
15
|
+
is<O extends IsOptions = {}>(condition: string, options?: O): Promise<IsResult<O>>;
|
|
16
|
+
/** A probability- or rubric-backed number on `range` (0–100 by default). */
|
|
17
|
+
score<O extends ScoreOptions = {}>(criterion: string, options?: O): Promise<ScoreResult<O>>;
|
|
18
|
+
/** Exactly one of the options. The literal union is inferred without `as const`. */
|
|
19
|
+
choose<const T extends ChoiceInput, O extends ChooseOptions = {}>(options: T, extra?: O): Promise<ChooseResult<ChoiceKey<T>, O>>;
|
|
55
20
|
/**
|
|
56
21
|
* Orders items by how well they fit this state.
|
|
57
22
|
*
|
|
@@ -64,7 +29,9 @@ export declare class SemanticContext {
|
|
|
64
29
|
* Evaluates every question against this state in a single request.
|
|
65
30
|
*
|
|
66
31
|
* Equivalent to creating the same questions in one turn and awaiting them
|
|
67
|
-
* together
|
|
32
|
+
* together — including every option: thresholds, `allowUnknown`,
|
|
33
|
+
* `minConfidence` and `fallback`, `detailed`. This form just makes the
|
|
34
|
+
* intent explicit and names the results.
|
|
68
35
|
*/
|
|
69
36
|
batch<S extends Record<string, QuestionSpec>>(spec: S): Promise<{
|
|
70
37
|
[K in keyof S]: S[K] extends QuestionSpec<infer V> ? V : never;
|