@affiant/core 0.1.0-alpha.0 → 0.1.0-alpha.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 +20 -14
- package/dist/gate/pipeline.d.ts +4 -3
- package/dist/gate/pipeline.d.ts.map +1 -1
- package/dist/gate/pipeline.js +52 -26
- package/dist/gate/pipeline.js.map +1 -1
- package/dist/gate/presence.d.ts +87 -0
- package/dist/gate/presence.d.ts.map +1 -0
- package/dist/gate/presence.js +192 -0
- package/dist/gate/presence.js.map +1 -0
- package/dist/index.d.ts +8 -8
- package/dist/index.js +8 -8
- package/dist/model/canonical.d.ts +12 -0
- package/dist/model/canonical.d.ts.map +1 -1
- package/dist/model/canonical.js +14 -0
- package/dist/model/canonical.js.map +1 -1
- package/dist/ports.d.ts +28 -9
- package/dist/ports.d.ts.map +1 -1
- package/dist/ports.js.map +1 -1
- package/dist/testing.d.ts +26 -6
- package/dist/testing.d.ts.map +1 -1
- package/dist/testing.js +13 -4
- package/dist/testing.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -14,21 +14,22 @@ decision, and reports what happened; the gate never touches your database. Nothi
|
|
|
14
14
|
this depends on which model you use, which database you write to, or how the card
|
|
15
15
|
reaches the person — those are ports you supply.
|
|
16
16
|
|
|
17
|
-
> **
|
|
18
|
-
>
|
|
19
|
-
>
|
|
20
|
-
>
|
|
21
|
-
>
|
|
22
|
-
>
|
|
17
|
+
> **On npm at `0.1.0-alpha.0`**, under the `alpha` dist-tag and with a provenance
|
|
18
|
+
> attestation, since 2026-09-06: `npm i @affiant/core@alpha`. `main` is at
|
|
19
|
+
> `0.1.0-alpha.1`; that publish is pending — the dispatched workflow's upload step
|
|
20
|
+
> failed with `ENEEDAUTH` on the trusted-publishing exchange. The condition for
|
|
21
|
+
> publishing was exact: a **public parity report** — the per-implementation list of
|
|
22
|
+
> conformance fixtures each implementation does not yet pass — and a **green,
|
|
23
|
+
> merge-blocking TypeScript conformance driver** running the shared fixture suite
|
|
24
|
+
> against this package. Both hold, at the rulebook's [`v0.1.0`](https://github.com/Sakwala/affiant-protocol/releases/tag/v0.1.0)
|
|
23
25
|
> tag: the [.NET parity report](https://github.com/Sakwala/affiant-protocol/blob/v0.1.0/conformance/parity/dotnet-v0.1.json)
|
|
24
26
|
> is public, with its oracle run log alongside it under `conformance/results/`, and
|
|
25
27
|
> this package's own [conformance parity manifest](../conformance-driver/conformance/parity/typescript-v0.1.json)
|
|
26
28
|
> is green on Node, Bun and workerd, asserted by the `conformance` job that is
|
|
27
|
-
> required on `main`.
|
|
28
|
-
>
|
|
29
|
-
> `
|
|
30
|
-
>
|
|
31
|
-
> publish token for it exist.
|
|
29
|
+
> required on `main`. Publishing is a separate, deliberate step, and the gate is
|
|
30
|
+
> enforced rather than relaxed on trust: `prepack` refuses, so `npm pack` and
|
|
31
|
+
> `npm publish` both fail with the reason, until `AFFIANT_ALLOW_PUBLISH=1` is set —
|
|
32
|
+
> which nothing but the hand-dispatched publish workflow does.
|
|
32
33
|
|
|
33
34
|
## The rules this package is held to
|
|
34
35
|
|
|
@@ -132,9 +133,14 @@ already settled.
|
|
|
132
133
|
`Computed` values with the binding that points at the artifact. They may not mint
|
|
133
134
|
`UserStated` — only a person can say what a person said (PV-3).
|
|
134
135
|
3. **One structured inference**, tool-free, against the **unmodified** turn. What the
|
|
135
|
-
model returns is tagged `Conversation` when the value is literally in the utterance
|
|
136
|
-
|
|
137
|
-
|
|
136
|
+
model returns is tagged `Conversation` when the value is literally in the utterance —
|
|
137
|
+
the gate looks for it there, as a whole token under a comparison that folds ASCII case
|
|
138
|
+
and nothing else, and binds the span it was read from — and `Inferred` when it is not
|
|
139
|
+
(PV-3). Your port is never asked to grade its own answer: a `presence` or an
|
|
140
|
+
`utteranceSpan` it reports is a hint the gate verifies the same way. A value a field
|
|
141
|
+
cannot carry — `null`, an object, an array, the empty string, a non-finite number — is
|
|
142
|
+
nothing the port reported: the field is not merged at all. Confidence is clamped into
|
|
143
|
+
`[0, 1]` (PV-1).
|
|
138
144
|
4. **Merge.** Per field the higher confidence wins, a tie goes to the more
|
|
139
145
|
deterministic source, and the loser stays on the record in the chain behind the
|
|
140
146
|
winner (PV-1).
|
package/dist/gate/pipeline.d.ts
CHANGED
|
@@ -5,9 +5,10 @@
|
|
|
5
5
|
* **Rules served: GT-1** (the order itself), **GT-3** (runtime substance refusal),
|
|
6
6
|
* **GT-4** (TTL stamped from the policy result, after the chain; a re-file keeps the
|
|
7
7
|
* existing deadline), **PV-1** (confidence clamped, merge by confidence then
|
|
8
|
-
* determinism), **PV-3** (the inference step cannot mint `UserStated
|
|
9
|
-
*
|
|
10
|
-
* (
|
|
8
|
+
* determinism), **PV-3** (the inference step cannot mint `UserStated`, and it
|
|
9
|
+
* establishes presence from the utterance itself rather than from the port's claim),
|
|
10
|
+
* **AF-1** (every proposed field present, unknown provenance recorded as `Empty`),
|
|
11
|
+
* **AF-3** (create carries no previous values; update carries the key on every field),
|
|
11
12
|
* **AZ-1** (a Standing Order writes its attestation in the same operation as the
|
|
12
13
|
* filing), **AZ-4** (a requirement this version does not run is filed blocked),
|
|
13
14
|
* **CV-4** (a declared-uncovered tool's proposal is filed blocked), **SR-4** (the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/gate/pipeline.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/gate/pipeline.ts"],"names":[],"mappings":"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"}
|
package/dist/gate/pipeline.js
CHANGED
|
@@ -5,9 +5,10 @@
|
|
|
5
5
|
* **Rules served: GT-1** (the order itself), **GT-3** (runtime substance refusal),
|
|
6
6
|
* **GT-4** (TTL stamped from the policy result, after the chain; a re-file keeps the
|
|
7
7
|
* existing deadline), **PV-1** (confidence clamped, merge by confidence then
|
|
8
|
-
* determinism), **PV-3** (the inference step cannot mint `UserStated
|
|
9
|
-
*
|
|
10
|
-
* (
|
|
8
|
+
* determinism), **PV-3** (the inference step cannot mint `UserStated`, and it
|
|
9
|
+
* establishes presence from the utterance itself rather than from the port's claim),
|
|
10
|
+
* **AF-1** (every proposed field present, unknown provenance recorded as `Empty`),
|
|
11
|
+
* **AF-3** (create carries no previous values; update carries the key on every field),
|
|
11
12
|
* **AZ-1** (a Standing Order writes its attestation in the same operation as the
|
|
12
13
|
* filing), **AZ-4** (a requirement this version does not run is filed blocked),
|
|
13
14
|
* **CV-4** (a declared-uncovered tool's proposal is filed blocked), **SR-4** (the
|
|
@@ -62,6 +63,7 @@ import { canonicalJson, sha256Hex } from "../model/canonical.js";
|
|
|
62
63
|
import { chainOf, merge, mintConversation, mintInferred, mintTag } from "../model/provenance.js";
|
|
63
64
|
import { coverageRefusedMarker } from "./coverage.js";
|
|
64
65
|
import { evaluatePolicies } from "./policy.js";
|
|
66
|
+
import { locateInUtterance, utteranceTextOf } from "./presence.js";
|
|
65
67
|
/**
|
|
66
68
|
* Run steps 2 through 9 for `proposal` in `ctx` and return the filed entry with its
|
|
67
69
|
* card.
|
|
@@ -118,6 +120,14 @@ export async function runPipeline(proposal, ctx, deps) {
|
|
|
118
120
|
}
|
|
119
121
|
// ---- step 3: one tool-free structured inference; step 4: merge ---------
|
|
120
122
|
if (proposal.schema !== null) {
|
|
123
|
+
// PV-3: an untyped host — plain JavaScript, or one that built the turn from a
|
|
124
|
+
// wire message that carried no text — can hand the gate a turn whose `utterance`
|
|
125
|
+
// is missing or is not a string. There is no port-trusting path in this
|
|
126
|
+
// implementation to fall back to, so the finder reads an empty utterance: nothing
|
|
127
|
+
// hits, every inferred field is `Inferred`, and no field is graded on a claim the
|
|
128
|
+
// gate could not check. What a missing utterance must never be is a `TypeError`
|
|
129
|
+
// out of the finder.
|
|
130
|
+
const utterance = typeof ctx.turn.utterance === "string" ? ctx.turn.utterance : "";
|
|
121
131
|
const inferred = await deps.inference.infer(ctx.turn, proposal.schema);
|
|
122
132
|
for (const [name, structured] of Object.entries(inferred.fields)) {
|
|
123
133
|
// A model naming a field the operation does not propose is the model being
|
|
@@ -125,21 +135,44 @@ export async function runPipeline(proposal, ctx, deps) {
|
|
|
125
135
|
// still holds because the Affidavit is built from `op.fields`.
|
|
126
136
|
if (!proposed.has(name))
|
|
127
137
|
continue;
|
|
138
|
+
// PV-3: `null`, an object, an array, the empty string and a number the runtime
|
|
139
|
+
// parsed as infinity or NaN are not values a field can carry, so the port
|
|
140
|
+
// reported nothing for this field. Nothing is merged and no tag is minted: the
|
|
141
|
+
// field stays whatever it already was, which is `Empty` under AF-1 where
|
|
142
|
+
// nothing else set it. A whitespace-only string is a value and is filed.
|
|
143
|
+
//
|
|
144
|
+
// A non-finite number is read here rather than at `requireJsonValue`: SR-1
|
|
145
|
+
// gives it no canonical rendering, and PV-3 makes that nothing reported rather
|
|
146
|
+
// than an exception out of the inference step.
|
|
147
|
+
if (typeof structured.value === "number" && !Number.isFinite(structured.value))
|
|
148
|
+
continue;
|
|
128
149
|
const value = requireJsonValue(structured.value, `inferred field ${name}`);
|
|
150
|
+
const valueText = utteranceTextOf(value);
|
|
151
|
+
if (valueText === null)
|
|
152
|
+
continue;
|
|
129
153
|
// PV-3: `mintConversation` and `mintInferred` are the only two mints reachable
|
|
130
154
|
// from here, and neither can name `UserStated` — the parameter type forbids it
|
|
131
155
|
// and the runtime guard in `mintInference` catches an untyped caller.
|
|
132
|
-
|
|
133
|
-
|
|
156
|
+
//
|
|
157
|
+
// Which of the two is decided here, from the turn, not by the port: PV-3's
|
|
158
|
+
// condition is that the value is literally present in the utterance, and that
|
|
159
|
+
// is a property of two strings. `locateInUtterance` is that sentence. The
|
|
160
|
+
// port's `presence` and `utteranceSpan` are hints — a span is used only when
|
|
161
|
+
// it is itself a hit, a claimed `literal` the text does not confirm is
|
|
162
|
+
// `Inferred`, and a value the port said nothing about is `Conversation` when
|
|
163
|
+
// it is there to read.
|
|
164
|
+
const hit = locateInUtterance(utterance, valueText, structured.utteranceSpan ?? null);
|
|
165
|
+
const tag = hit === null
|
|
166
|
+
? mintInferred({
|
|
134
167
|
confidence: structured.confidence,
|
|
135
168
|
at: now,
|
|
136
|
-
note: `
|
|
137
|
-
binding: await utteranceSpanBinding(ctx.turn.utterance, structured.utteranceSpan),
|
|
169
|
+
note: `Inferred from the turn: ${name}`,
|
|
138
170
|
})
|
|
139
|
-
:
|
|
171
|
+
: mintConversation({
|
|
140
172
|
confidence: structured.confidence,
|
|
141
173
|
at: now,
|
|
142
|
-
note: `
|
|
174
|
+
note: `Literally present in the turn: ${name}`,
|
|
175
|
+
binding: await utteranceSpanBinding(utterance, hit),
|
|
143
176
|
});
|
|
144
177
|
admit(name, tag, value);
|
|
145
178
|
}
|
|
@@ -471,28 +504,21 @@ function uuidFromDigest(digest) {
|
|
|
471
504
|
// Bindings and values
|
|
472
505
|
// ---------------------------------------------------------------------------
|
|
473
506
|
/**
|
|
474
|
-
* The `utterance-span` binding for a value the
|
|
475
|
-
* (PV-2), or `null` when there is no span or the span does not fit the turn.
|
|
507
|
+
* The `utterance-span` binding for a value the finder located in the turn (PV-2).
|
|
476
508
|
*
|
|
477
|
-
*
|
|
478
|
-
*
|
|
479
|
-
*
|
|
480
|
-
*
|
|
481
|
-
*
|
|
509
|
+
* Offset and length are in UTF-16 code units of the utterance, and the hash is a
|
|
510
|
+
* SHA-256 over the UTF-8 bytes of the utterance's **own** substring at that span — what
|
|
511
|
+
* was there when the value was read — so an auditor holding the turn can re-derive it
|
|
512
|
+
* and see that the pointer still points where it did. A hit is always inside the turn,
|
|
513
|
+
* so every hit binds: there is no `Conversation` here with nothing behind it.
|
|
482
514
|
*/
|
|
483
|
-
async function utteranceSpanBinding(utterance,
|
|
484
|
-
|
|
485
|
-
return null;
|
|
486
|
-
if (!Number.isInteger(span.start) || !Number.isInteger(span.end))
|
|
487
|
-
return null;
|
|
488
|
-
if (span.start < 0 || span.end < span.start || span.end > utterance.length)
|
|
489
|
-
return null;
|
|
490
|
-
const text = utterance.slice(span.start, span.end);
|
|
515
|
+
async function utteranceSpanBinding(utterance, hit) {
|
|
516
|
+
const text = utterance.slice(hit.offset, hit.offset + hit.length);
|
|
491
517
|
return {
|
|
492
518
|
kind: "utterance-span",
|
|
493
519
|
ref: {
|
|
494
|
-
offset:
|
|
495
|
-
length:
|
|
520
|
+
offset: hit.offset,
|
|
521
|
+
length: hit.length,
|
|
496
522
|
hash: await sha256Hex(new TextEncoder().encode(text)),
|
|
497
523
|
},
|
|
498
524
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/gate/pipeline.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/gate/pipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Where a value's text sits in the turn a person typed, if it sits there at all
|
|
3
|
+
* (PV-3).
|
|
4
|
+
*
|
|
5
|
+
* PV-3 grades an inferred field `Conversation` when the value is literally present in
|
|
6
|
+
* the utterance. That is a property of two strings, so the implementation establishes
|
|
7
|
+
* it by looking, and an inference port's own `presence` claim is a hint that is
|
|
8
|
+
* verified the same way or not honoured at all.
|
|
9
|
+
*
|
|
10
|
+
* **The rule, stated once so a second implementation can implement the same
|
|
11
|
+
* sentence.** The *value text* is the text the span digest is taken over: a string is
|
|
12
|
+
* itself, a number is SR-1's canonical rendering of it, a boolean is `true` or
|
|
13
|
+
* `false`. A value a field cannot carry — `null`, an object, an array, the empty
|
|
14
|
+
* string, or a number the runtime parsed as infinity or NaN — is *nothing reported*:
|
|
15
|
+
* it has no value text, and the gate merges no such field at all. A *hit* is an
|
|
16
|
+
* occurrence of the value text in the utterance under the comparison below, whose
|
|
17
|
+
* neighbouring code points are absent or are none of a letter (`L*`), a mark (`M*`), a
|
|
18
|
+
* decimal digit (`Nd`) or connector punctuation (`Pc`). The first hit wins, unless the
|
|
19
|
+
* port supplied a span that is itself a hit — the utterance at that span says what the
|
|
20
|
+
* port said it says *and* its neighbours pass the same test — in which case that span
|
|
21
|
+
* is the hit. A whitespace-only value text never hits; an empty utterance is an
|
|
22
|
+
* utterance, and nothing hits in it.
|
|
23
|
+
*
|
|
24
|
+
* **The comparison folds ASCII case and nothing else.** Two code points match when
|
|
25
|
+
* they are equal, or when both are ASCII letters (`A`–`Z` against `a`–`z`) that differ
|
|
26
|
+
* only in case. Every other code point compares exactly: no culture, no normalisation,
|
|
27
|
+
* nothing ignorable, and no case mapping read from the runtime's Unicode data. The
|
|
28
|
+
* fold stops at ASCII because no runtime's own case mapping is a single function to
|
|
29
|
+
* state a rule in — .NET 10, Node 24 and `UnicodeData.txt` disagree over U+0131 and
|
|
30
|
+
* over the Greek code points with ypogegrammeni, and two runtimes ship two Unicode
|
|
31
|
+
* versions — so a fold read from a runtime would have the two implementations
|
|
32
|
+
* implement two different functions. The cost is on the record: a case variant outside
|
|
33
|
+
* ASCII does not hit (a port's `критический` does not find a typed `Критический`, and
|
|
34
|
+
* is `Inferred`), while an exact echo in any script does.
|
|
35
|
+
*
|
|
36
|
+
* Offsets and lengths are in UTF-16 code units, which is what the `utterance-span`
|
|
37
|
+
* binding records. A *neighbour*, though, is a whole code point: a surrogate pair is
|
|
38
|
+
* read as the one character it is, so a value abutting a letter outside the Basic
|
|
39
|
+
* Multilingual Plane is no more a hit than one abutting an ASCII letter, and no hit
|
|
40
|
+
* ever begins or ends inside a pair. A combining mark blocks a hit for the same reason
|
|
41
|
+
* as a letter — the grapheme the utterance draws there is not the word the value
|
|
42
|
+
* spells (`Cafe` inside a decomposed `Café`) — and `_` blocks one because it joins an
|
|
43
|
+
* identifier (`WZ_BRN`). The four categories are read from this runtime's own Unicode
|
|
44
|
+
* database, and a code point it leaves unassigned is a boundary.
|
|
45
|
+
*
|
|
46
|
+
* `Sakwala/affiant`'s `Affiant.Core.Services.UtterancePresence` is the same sentence
|
|
47
|
+
* in C#, and the two are held equivalent by the protocol's fixtures.
|
|
48
|
+
*
|
|
49
|
+
* @packageDocumentation
|
|
50
|
+
*/
|
|
51
|
+
import type { JsonValue } from "../model/affidavit.js";
|
|
52
|
+
import type { UtteranceSpan } from "../ports.js";
|
|
53
|
+
/** An occurrence of the value text in the utterance, in UTF-16 code units. */
|
|
54
|
+
export interface UtteranceHit {
|
|
55
|
+
/** Where the occurrence starts. */
|
|
56
|
+
readonly offset: number;
|
|
57
|
+
/** How long it is. */
|
|
58
|
+
readonly length: number;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* The text a value is looked for as — a string is itself, a number is SR-1's canonical
|
|
62
|
+
* rendering of it, a boolean is `true` or `false` — or `null` when the port reported
|
|
63
|
+
* **nothing** for the field.
|
|
64
|
+
*
|
|
65
|
+
* `null`, an object, an array and the empty string are not values a field can carry,
|
|
66
|
+
* and a number the runtime parsed as infinity or NaN has no canonical rendering (SR-1
|
|
67
|
+
* refuses it), so for each of them the port reported nothing: the gate merges no such
|
|
68
|
+
* field, mints no tag, and the field stays whatever it already was — `Empty` under
|
|
69
|
+
* AF-1 where nothing else set it. A whitespace-only string **is** a value: it is filed
|
|
70
|
+
* as the port reported it, and never hits.
|
|
71
|
+
*/
|
|
72
|
+
export declare function utteranceTextOf(value: JsonValue): string | null;
|
|
73
|
+
/**
|
|
74
|
+
* The span of `utterance` the value was read from, or `null` when the value is not
|
|
75
|
+
* literally present.
|
|
76
|
+
*
|
|
77
|
+
* @param utterance The current turn's user text, unmodified. Earlier turns are not
|
|
78
|
+
* searched: the `utterance-span` binding has no message reference, so a hit in
|
|
79
|
+
* an earlier turn could not be bound.
|
|
80
|
+
* @param valueText The value text, from {@link utteranceTextOf}.
|
|
81
|
+
* @param hint The span the port reported, or `null`. It is used only when it is itself
|
|
82
|
+
* a hit; a span that is not — its text is not the value, or it sits inside a
|
|
83
|
+
* longer token — is discarded, and the search then runs from the start as if
|
|
84
|
+
* the port had named none.
|
|
85
|
+
*/
|
|
86
|
+
export declare function locateInUtterance(utterance: string, valueText: string, hint: UtteranceSpan | null): UtteranceHit | null;
|
|
87
|
+
//# sourceMappingURL=presence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"presence.d.ts","sourceRoot":"","sources":["../../src/gate/presence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,8EAA8E;AAC9E,MAAM,WAAW,YAAY;IAC3B,mCAAmC;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,sBAAsB;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAiBD;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI,CAK/D;AAyED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,aAAa,GAAG,IAAI,GACzB,YAAY,GAAG,IAAI,CA6BrB"}
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Where a value's text sits in the turn a person typed, if it sits there at all
|
|
3
|
+
* (PV-3).
|
|
4
|
+
*
|
|
5
|
+
* PV-3 grades an inferred field `Conversation` when the value is literally present in
|
|
6
|
+
* the utterance. That is a property of two strings, so the implementation establishes
|
|
7
|
+
* it by looking, and an inference port's own `presence` claim is a hint that is
|
|
8
|
+
* verified the same way or not honoured at all.
|
|
9
|
+
*
|
|
10
|
+
* **The rule, stated once so a second implementation can implement the same
|
|
11
|
+
* sentence.** The *value text* is the text the span digest is taken over: a string is
|
|
12
|
+
* itself, a number is SR-1's canonical rendering of it, a boolean is `true` or
|
|
13
|
+
* `false`. A value a field cannot carry — `null`, an object, an array, the empty
|
|
14
|
+
* string, or a number the runtime parsed as infinity or NaN — is *nothing reported*:
|
|
15
|
+
* it has no value text, and the gate merges no such field at all. A *hit* is an
|
|
16
|
+
* occurrence of the value text in the utterance under the comparison below, whose
|
|
17
|
+
* neighbouring code points are absent or are none of a letter (`L*`), a mark (`M*`), a
|
|
18
|
+
* decimal digit (`Nd`) or connector punctuation (`Pc`). The first hit wins, unless the
|
|
19
|
+
* port supplied a span that is itself a hit — the utterance at that span says what the
|
|
20
|
+
* port said it says *and* its neighbours pass the same test — in which case that span
|
|
21
|
+
* is the hit. A whitespace-only value text never hits; an empty utterance is an
|
|
22
|
+
* utterance, and nothing hits in it.
|
|
23
|
+
*
|
|
24
|
+
* **The comparison folds ASCII case and nothing else.** Two code points match when
|
|
25
|
+
* they are equal, or when both are ASCII letters (`A`–`Z` against `a`–`z`) that differ
|
|
26
|
+
* only in case. Every other code point compares exactly: no culture, no normalisation,
|
|
27
|
+
* nothing ignorable, and no case mapping read from the runtime's Unicode data. The
|
|
28
|
+
* fold stops at ASCII because no runtime's own case mapping is a single function to
|
|
29
|
+
* state a rule in — .NET 10, Node 24 and `UnicodeData.txt` disagree over U+0131 and
|
|
30
|
+
* over the Greek code points with ypogegrammeni, and two runtimes ship two Unicode
|
|
31
|
+
* versions — so a fold read from a runtime would have the two implementations
|
|
32
|
+
* implement two different functions. The cost is on the record: a case variant outside
|
|
33
|
+
* ASCII does not hit (a port's `критический` does not find a typed `Критический`, and
|
|
34
|
+
* is `Inferred`), while an exact echo in any script does.
|
|
35
|
+
*
|
|
36
|
+
* Offsets and lengths are in UTF-16 code units, which is what the `utterance-span`
|
|
37
|
+
* binding records. A *neighbour*, though, is a whole code point: a surrogate pair is
|
|
38
|
+
* read as the one character it is, so a value abutting a letter outside the Basic
|
|
39
|
+
* Multilingual Plane is no more a hit than one abutting an ASCII letter, and no hit
|
|
40
|
+
* ever begins or ends inside a pair. A combining mark blocks a hit for the same reason
|
|
41
|
+
* as a letter — the grapheme the utterance draws there is not the word the value
|
|
42
|
+
* spells (`Cafe` inside a decomposed `Café`) — and `_` blocks one because it joins an
|
|
43
|
+
* identifier (`WZ_BRN`). The four categories are read from this runtime's own Unicode
|
|
44
|
+
* database, and a code point it leaves unassigned is a boundary.
|
|
45
|
+
*
|
|
46
|
+
* `Sakwala/affiant`'s `Affiant.Core.Services.UtterancePresence` is the same sentence
|
|
47
|
+
* in C#, and the two are held equivalent by the protocol's fixtures.
|
|
48
|
+
*
|
|
49
|
+
* @packageDocumentation
|
|
50
|
+
*/
|
|
51
|
+
import { canonicalNumber } from "../model/canonical.js";
|
|
52
|
+
/**
|
|
53
|
+
* A code point that joins what stands beside it into one word: a letter (`L*`), a mark
|
|
54
|
+
* (`M*`), a decimal digit (`Nd`) or connector punctuation (`Pc`). PV-3's four
|
|
55
|
+
* categories, read the same way in both implementations.
|
|
56
|
+
*/
|
|
57
|
+
const JOINS_A_TOKEN = /[\p{L}\p{M}\p{Nd}\p{Pc}]/u;
|
|
58
|
+
/**
|
|
59
|
+
* Nothing but whitespace, over the same set `char.IsWhiteSpace` reads in .NET: the
|
|
60
|
+
* three separator categories (`Zs`, and the line and paragraph separators U+2028 and
|
|
61
|
+
* U+2029) plus six control characters. Written out rather than left to `\s` so that
|
|
62
|
+
* the sibling implementation and this one agree on which value texts never hit.
|
|
63
|
+
*/
|
|
64
|
+
const WHITESPACE_ONLY = /^[\t\n\v\f\r\u0085\u2028\u2029\p{Zs}]*$/u;
|
|
65
|
+
/**
|
|
66
|
+
* The text a value is looked for as — a string is itself, a number is SR-1's canonical
|
|
67
|
+
* rendering of it, a boolean is `true` or `false` — or `null` when the port reported
|
|
68
|
+
* **nothing** for the field.
|
|
69
|
+
*
|
|
70
|
+
* `null`, an object, an array and the empty string are not values a field can carry,
|
|
71
|
+
* and a number the runtime parsed as infinity or NaN has no canonical rendering (SR-1
|
|
72
|
+
* refuses it), so for each of them the port reported nothing: the gate merges no such
|
|
73
|
+
* field, mints no tag, and the field stays whatever it already was — `Empty` under
|
|
74
|
+
* AF-1 where nothing else set it. A whitespace-only string **is** a value: it is filed
|
|
75
|
+
* as the port reported it, and never hits.
|
|
76
|
+
*/
|
|
77
|
+
export function utteranceTextOf(value) {
|
|
78
|
+
if (typeof value === "string")
|
|
79
|
+
return value.length === 0 ? null : value;
|
|
80
|
+
if (typeof value === "boolean")
|
|
81
|
+
return value ? "true" : "false";
|
|
82
|
+
if (typeof value === "number")
|
|
83
|
+
return Number.isFinite(value) ? canonicalNumber(value) : null;
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* `text` with every ASCII lower-case letter written as its upper-case one, and every
|
|
88
|
+
* other code point left exactly as it is.
|
|
89
|
+
*
|
|
90
|
+
* The fold is a function of the string alone — no runtime's case table is consulted —
|
|
91
|
+
* and it maps one code unit to one code unit, so an offset into the fold is an offset
|
|
92
|
+
* into the utterance.
|
|
93
|
+
*/
|
|
94
|
+
function fold(text) {
|
|
95
|
+
let folded = "";
|
|
96
|
+
for (let index = 0; index < text.length; index += 1) {
|
|
97
|
+
const unit = text.charCodeAt(index);
|
|
98
|
+
folded +=
|
|
99
|
+
unit >= 0x61 /* a */ && unit <= 0x7a /* z */
|
|
100
|
+
? String.fromCharCode(unit - 32)
|
|
101
|
+
: text.charAt(index);
|
|
102
|
+
}
|
|
103
|
+
return folded;
|
|
104
|
+
}
|
|
105
|
+
/** Whether the code point beginning at `index` joins what stands beside it. */
|
|
106
|
+
function joinsAt(text, index) {
|
|
107
|
+
const codePoint = text.codePointAt(index);
|
|
108
|
+
if (codePoint === undefined)
|
|
109
|
+
return false;
|
|
110
|
+
return JOINS_A_TOKEN.test(String.fromCodePoint(codePoint));
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Whether the occurrence at `[at, end)` is a hit: it splits no surrogate pair, and a
|
|
114
|
+
* boundary stands on each side of it.
|
|
115
|
+
*
|
|
116
|
+
* A hit never begins or ends **inside** a pair. An occurrence whose first code unit is
|
|
117
|
+
* the trailing half of one, or whose last is the leading half of one, names half a
|
|
118
|
+
* character: the span's digest would be taken over bytes the utterance does not
|
|
119
|
+
* contain, which is the opposite of what PV-2 asks a binding to point at.
|
|
120
|
+
*/
|
|
121
|
+
function isHit(utterance, at, end) {
|
|
122
|
+
return (!splitsASurrogatePair(utterance, at, end) &&
|
|
123
|
+
isBoundaryBefore(utterance, at) &&
|
|
124
|
+
(end >= utterance.length || !joinsAt(utterance, end)));
|
|
125
|
+
}
|
|
126
|
+
/** Whether `[at, end)` begins or ends part-way through a surrogate pair. */
|
|
127
|
+
function splitsASurrogatePair(utterance, at, end) {
|
|
128
|
+
return isLowSurrogatePairedBefore(utterance, at) || isLowSurrogatePairedBefore(utterance, end);
|
|
129
|
+
}
|
|
130
|
+
/** Whether the code unit at `index` is a low surrogate whose high half sits before it. */
|
|
131
|
+
function isLowSurrogatePairedBefore(utterance, index) {
|
|
132
|
+
if (index <= 0 || index >= utterance.length)
|
|
133
|
+
return false;
|
|
134
|
+
const unit = utterance.charCodeAt(index);
|
|
135
|
+
const before = utterance.charCodeAt(index - 1);
|
|
136
|
+
return unit >= 0xdc00 && unit <= 0xdfff && before >= 0xd800 && before <= 0xdbff;
|
|
137
|
+
}
|
|
138
|
+
/** Whether nothing, or a code point that does not join, sits immediately before `at`. */
|
|
139
|
+
function isBoundaryBefore(utterance, at) {
|
|
140
|
+
if (at <= 0)
|
|
141
|
+
return true;
|
|
142
|
+
// A code point, not a code unit: step back onto the high surrogate so the pair is
|
|
143
|
+
// read as the single character it is.
|
|
144
|
+
let index = at - 1;
|
|
145
|
+
const unit = utterance.charCodeAt(index);
|
|
146
|
+
if (unit >= 0xdc00 && unit <= 0xdfff && index > 0) {
|
|
147
|
+
const before = utterance.charCodeAt(index - 1);
|
|
148
|
+
if (before >= 0xd800 && before <= 0xdbff)
|
|
149
|
+
index -= 1;
|
|
150
|
+
}
|
|
151
|
+
return !joinsAt(utterance, index);
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* The span of `utterance` the value was read from, or `null` when the value is not
|
|
155
|
+
* literally present.
|
|
156
|
+
*
|
|
157
|
+
* @param utterance The current turn's user text, unmodified. Earlier turns are not
|
|
158
|
+
* searched: the `utterance-span` binding has no message reference, so a hit in
|
|
159
|
+
* an earlier turn could not be bound.
|
|
160
|
+
* @param valueText The value text, from {@link utteranceTextOf}.
|
|
161
|
+
* @param hint The span the port reported, or `null`. It is used only when it is itself
|
|
162
|
+
* a hit; a span that is not — its text is not the value, or it sits inside a
|
|
163
|
+
* longer token — is discarded, and the search then runs from the start as if
|
|
164
|
+
* the port had named none.
|
|
165
|
+
*/
|
|
166
|
+
export function locateInUtterance(utterance, valueText, hint) {
|
|
167
|
+
if (WHITESPACE_ONLY.test(valueText))
|
|
168
|
+
return null;
|
|
169
|
+
const foldedUtterance = fold(utterance);
|
|
170
|
+
const foldedValue = fold(valueText);
|
|
171
|
+
if (hint !== null && Number.isInteger(hint.start) && Number.isInteger(hint.end)) {
|
|
172
|
+
const length = hint.end - hint.start;
|
|
173
|
+
if (hint.start >= 0 &&
|
|
174
|
+
length >= 0 &&
|
|
175
|
+
hint.start <= utterance.length - length &&
|
|
176
|
+
foldedUtterance.slice(hint.start, hint.end) === foldedValue &&
|
|
177
|
+
isHit(utterance, hint.start, hint.end)) {
|
|
178
|
+
return { offset: hint.start, length };
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
for (let from = 0; from <= foldedUtterance.length - foldedValue.length;) {
|
|
182
|
+
const at = foldedUtterance.indexOf(foldedValue, from);
|
|
183
|
+
if (at < 0)
|
|
184
|
+
return null;
|
|
185
|
+
if (isHit(utterance, at, at + foldedValue.length)) {
|
|
186
|
+
return { offset: at, length: valueText.length };
|
|
187
|
+
}
|
|
188
|
+
from = at + 1;
|
|
189
|
+
}
|
|
190
|
+
return null;
|
|
191
|
+
}
|
|
192
|
+
//# sourceMappingURL=presence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"presence.js","sourceRoot":"","sources":["../../src/gate/presence.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
* supplies (see `ports.ts`), which is what lets one gate sit in front of any model,
|
|
19
19
|
* any database and any approval surface.
|
|
20
20
|
*
|
|
21
|
-
* **What is here at `0.1.0-alpha.
|
|
21
|
+
* **What is here at `0.1.0-alpha.1`:** the turn context (GT-2), the port
|
|
22
22
|
* interfaces, the error-code registry (CV-1), the telemetry-key registry (TL-1) and
|
|
23
23
|
* the Affidavit model — the provenance ladder with its bindings and merge rule
|
|
24
24
|
* (PV-1..PV-3, PV-5), the Affidavit and its three confidence numbers (AF-1..AF-3),
|
|
@@ -43,16 +43,16 @@
|
|
|
43
43
|
* The fixtures for both v0.1 sequences and the runner that executes them are behind
|
|
44
44
|
* `@affiant/core/testing`, which a host can point at its own ports.
|
|
45
45
|
*
|
|
46
|
-
* **
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
* package README.
|
|
46
|
+
* **On npm at `0.1.0-alpha.1`**, under the `alpha` dist-tag and with a provenance
|
|
47
|
+
* attestation, since 2026-09-06. The same version string is what a conformance driver
|
|
48
|
+
* pins. Publishing is a separate, deliberate step — a workflow a maintainer dispatches
|
|
49
|
+
* by hand, which defaults to a dry run, and a `prepack` guard that refuses to pack at
|
|
50
|
+
* all until an override is set. See the package README.
|
|
51
51
|
*
|
|
52
52
|
* @packageDocumentation
|
|
53
53
|
*/
|
|
54
|
-
/** The version of this package
|
|
55
|
-
export declare const CORE_VERSION = "0.1.0-alpha.
|
|
54
|
+
/** The version of this package, and the version of it that is on npm. */
|
|
55
|
+
export declare const CORE_VERSION = "0.1.0-alpha.1";
|
|
56
56
|
/**
|
|
57
57
|
* The protocol tag the wire types are pinned to, re-exported from
|
|
58
58
|
* `@affiant/contract` so a host that only depends on the gate can still assert
|