@happyvertical/smrt-ingestion 0.57.30 → 0.57.32
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/PROPOSALS.md +30 -1
- package/dist/manifest.json +1 -1
- package/dist/models.js +1 -1
- package/dist/models.js.map +1 -1
- package/dist/proposal-dto.d.ts +12 -0
- package/dist/proposal-dto.d.ts.map +1 -1
- package/dist/proposal-validation.d.ts +2 -1
- package/dist/proposal-validation.d.ts.map +1 -1
- package/dist/proposals.d.ts.map +1 -1
- package/dist/proposals.js +47 -11
- package/dist/proposals.js.map +1 -1
- package/dist/smrt-knowledge.json +8 -8
- package/package.json +13 -13
package/PROPOSALS.md
CHANGED
|
@@ -186,7 +186,8 @@ Model output can contain only offered handler versions, schema-valid arguments,
|
|
|
186
186
|
retained evidence locations and offered alternative handler/candidate keys.
|
|
187
187
|
Candidate IDs must occur in the offered set, and evidence IDs in retained source
|
|
188
188
|
results. Unknown enums, invented IDs, extra authority/tool/approval fields and
|
|
189
|
-
malformed structures fail closed
|
|
189
|
+
malformed structures fail closed (an invented candidate target alone is dropped
|
|
190
|
+
for review instead, see below). Missing required fields are retained as
|
|
190
191
|
`missingFields`, with `needs_review`; values are never invented to satisfy a
|
|
191
192
|
schema. Observed page/time/source granularity is preserved. Logical scan splits
|
|
192
193
|
use `proposeDocumentSplits`; originals and hashes remain intact.
|
|
@@ -237,6 +238,34 @@ rejected, even when the earlier split on that evidence was dropped. Like
|
|
|
237
238
|
reply. Stored output is never re-validated, so earlier attempts and their
|
|
238
239
|
digests replay unchanged.
|
|
239
240
|
|
|
241
|
+
An invented target — a value in an offered handler's candidate reference field
|
|
242
|
+
that is not among the offered candidates for that field's model — no longer
|
|
243
|
+
rejects the attempt (#4289). The validator drops the key from the arguments
|
|
244
|
+
(no placeholder) and revalidates what remains through the required-only path
|
|
245
|
+
above: a dropped required field becomes a computed `missingFields` entry, a
|
|
246
|
+
dropped optional field is simply absent, and either way the suggestion is
|
|
247
|
+
`needs_review` for the reviewer to choose an offered target.
|
|
248
|
+
`provenance.unofferedTargetsDropped` records `{suggestions, fields}` counts
|
|
249
|
+
only, never IDs, labels or field names; it is absent when nothing was dropped
|
|
250
|
+
and removed whenever the suggestions are discarded. Every candidate field that
|
|
251
|
+
stays in the arguments has been checked against the offered set, so no
|
|
252
|
+
unoffered value survives as a target. The attempt still rejects as before for
|
|
253
|
+
an unoffered handler or alternative, unknown evidence (argument or reference),
|
|
254
|
+
a non-string target, a target field the handler schema does not declare in
|
|
255
|
+
`properties`, any other argument error, or a drop that exposes a refusal other
|
|
256
|
+
than `required`.
|
|
257
|
+
|
|
258
|
+
The exact dropped value is also searched for in the kept suggestions and splits
|
|
259
|
+
(JSON-escaped, keys included); an exact echo, such as the ID repeated in an
|
|
260
|
+
explanation or another argument, rejects the attempt. This guard fails closed
|
|
261
|
+
on short or common values: a dropped `"1"` or `"a"` almost always occurs
|
|
262
|
+
somewhere else in the output, so such a reply rejects rather than being kept.
|
|
263
|
+
It is an exact-match check, not a general leak filter: a case variant, a
|
|
264
|
+
reformatted copy or a fragment of the ID in free text (an explanation or a
|
|
265
|
+
text argument) is not detected and may reach the reviewer as ordinary model
|
|
266
|
+
prose. Free text is never a target and never authority; only the checked
|
|
267
|
+
candidate fields are.
|
|
268
|
+
|
|
240
269
|
A rejected reply ends the attempt as `provider_error` with the `malformed_output`
|
|
241
270
|
warning and a bounded, value-free `provenance.failure` `{category, reason}` (#4207).
|
|
242
271
|
The reason lists schema-owned paths, keywords and schema constants, for example
|
package/dist/manifest.json
CHANGED