@happyvertical/smrt-facts 0.54.0 → 0.54.2

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 CHANGED
@@ -248,3 +248,43 @@ the migration/backfill instruction, retaining the original error as cause.
248
248
  `Fact` declares `catalog_search` as its permitted final derived column; custom
249
249
  normalization must preserve that declaration and cannot replace framework
250
250
  identity, tenant, revision or conflict columns.
251
+
252
+ ### Reconciliation access scopes
253
+
254
+ `reconcile({ rawInput, tenantId, accessScope: 'public' })` partitions candidates
255
+ by both tenant and an exact, application-defined scope token. Exact matching and
256
+ semantic ranking exclude other scopes before candidate text is hydrated or sent
257
+ to disambiguation. Created facts and evolution branches retain that scope;
258
+ `branch()` rejects an explicit scope change. Use public collection predicates
259
+ such as `facts.list({ where: { tenantId, accessScope: 'public' } })` and scoped
260
+ `get()` calls when reusing results. Generic catalog and evolution APIs do not
261
+ implicitly authorize a scope: the application must authorize access and apply
262
+ its scope predicate before returning evidence or associating article facts.
263
+
264
+ Tokens are case-sensitive, nonblank strings of at most 256 characters without
265
+ control characters or unpaired surrogates. They are partition identifiers, **not authorization
266
+ credentials**. Applications must derive them from trusted authorization state;
267
+ never accept an arbitrary client-selected token as permission to read a scope.
268
+ A fact must only aggregate sources with the visibility represented by its scope.
269
+ Source metadata does not establish candidate visibility.
270
+
271
+ `accessScope` is server-managed: generated REST/MCP create and update inputs
272
+ strip it while allowing ordinary writable fields. Trusted server-side
273
+ `FactCollection.create()`, `reconcile()` and `branch()` retain persistence access.
274
+ Owner-authorized migration code can assign the field and call `save()` in a
275
+ controlled system context with reconciliation writers stopped; no generated
276
+ reclassification endpoint is exposed. Do not expose that operator procedure or
277
+ forward untrusted request bodies to direct collection writes.
278
+
279
+ Run the standard `smrt db:migrate` before deploying writers using this field.
280
+ The nullable `Fact.accessScope` column leaves existing rows unclassified.
281
+ Omitting `accessScope` (or passing `null`) searches only this legacy NULL
282
+ partition; explicit scopes never include legacy rows. No migration guesses
283
+ visibility from provenance metadata. Classify legacy facts only through an
284
+ owner-authorized data migration with reconciliation writers stopped, or leave them separate and re-extract into the
285
+ appropriate scope. A scope change is not an ordinary reconciliation operation.
286
+
287
+ PostgreSQL reconciliation retains its transactional fact/source write and
288
+ per-identity lock. SQLite retains its existing partial-write contract: a failed
289
+ source write may leave the fact, and retry finds the same scoped exact fact.
290
+ Do not record an application extraction receipt until all writes succeed.
package/dist/fact.d.ts CHANGED
@@ -22,6 +22,8 @@ export declare class Fact extends SmrtObject {
22
22
  type: string;
23
23
  status: string;
24
24
  domain: string;
25
+ /** Opaque reconciliation partition; NULL denotes unclassified legacy data. */
26
+ accessScope: string | null;
25
27
  /**
26
28
  * Self-referencing pointer to the predecessor fact in an evolution chain.
27
29
  *
@@ -1 +1 @@
1
- {"version":3,"file":"fact.d.ts","sourceRoot":"","sources":["../src/fact.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAqB,UAAU,EAAQ,MAAM,0BAA0B,CAAC;AAG/E,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACZ,WAAW,EACX,UAAU,EACV,QAAQ,EACT,MAAM,SAAS,CAAC;AAWjB,qBAgBa,IAAK,SAAQ,UAAU;IAElC,WAAW,EAAE,MAAM,CAAM;IAGzB,OAAO,EAAE,MAAM,CAAM;IAErB,2EAA2E;IAE3E,aAAa,EAAE,MAAM,GAAG,IAAI,CAAQ;IAGpC,IAAI,EAAE,MAAM,CAAe;IAG3B,MAAM,EAAE,MAAM,CAAa;IAG3B,MAAM,EAAE,MAAM,CAAM;IAEpB;;;;;;;OAOG;IAEH,cAAc,EAAE,MAAM,CAAM;IAG5B,aAAa,EAAE,MAAM,CAAc;IAGnC,WAAW,EAAE,MAAM,CAAK;IAGxB,UAAU,EAAE,MAAM,CAAO;IAGzB,QAAQ,EAAE,MAAM,CAAM;IAGtB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAQ;IAG/B,SAAS,EAAE,IAAI,CAAc;IAE7B,SAAS,EAAE,IAAI,CAAc;gBAEjB,OAAO,GAAE,WAAgB;cAwBlB,4BAA4B,IAAI,SAAS,MAAM,EAAE;cAIjD,wBAAwB,CACzC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GACtC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAc1B,WAAW,IAAI,YAAY;IAW3B,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IAIrC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI;IAMpD,OAAO,IAAI,QAAQ;IAInB,SAAS,IAAI,UAAU;IAIvB,gBAAgB,IAAI,aAAa;IAIjC,QAAQ,IAAI,OAAO;IAInB,YAAY,IAAI,OAAO;IAIvB;;;;;;OAMG;IACH,cAAc,IAAI,OAAO;IAIzB;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAQ5C;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;IAMtC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,OAAO,eAAe,EAAE,UAAU,EAAE,CAAC;IAMjE;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,gBAAgB,EAAE,WAAW,EAAE,CAAC;CAKrE"}
1
+ {"version":3,"file":"fact.d.ts","sourceRoot":"","sources":["../src/fact.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAqB,UAAU,EAAQ,MAAM,0BAA0B,CAAC;AAG/E,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACZ,WAAW,EACX,UAAU,EACV,QAAQ,EACT,MAAM,SAAS,CAAC;AAWjB,qBAgBa,IAAK,SAAQ,UAAU;IAElC,WAAW,EAAE,MAAM,CAAM;IAGzB,OAAO,EAAE,MAAM,CAAM;IAErB,2EAA2E;IAE3E,aAAa,EAAE,MAAM,GAAG,IAAI,CAAQ;IAGpC,IAAI,EAAE,MAAM,CAAe;IAG3B,MAAM,EAAE,MAAM,CAAa;IAG3B,MAAM,EAAE,MAAM,CAAM;IAEpB,8EAA8E;IAE9E,WAAW,EAAE,MAAM,GAAG,IAAI,CAAQ;IAElC;;;;;;;OAOG;IAEH,cAAc,EAAE,MAAM,CAAM;IAG5B,aAAa,EAAE,MAAM,CAAc;IAGnC,WAAW,EAAE,MAAM,CAAK;IAGxB,UAAU,EAAE,MAAM,CAAO;IAGzB,QAAQ,EAAE,MAAM,CAAM;IAGtB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAQ;IAG/B,SAAS,EAAE,IAAI,CAAc;IAE7B,SAAS,EAAE,IAAI,CAAc;gBAEjB,OAAO,GAAE,WAAgB;cA0BlB,4BAA4B,IAAI,SAAS,MAAM,EAAE;cAIjD,wBAAwB,CACzC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GACtC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAc1B,WAAW,IAAI,YAAY;IAW3B,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IAIrC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI;IAMpD,OAAO,IAAI,QAAQ;IAInB,SAAS,IAAI,UAAU;IAIvB,gBAAgB,IAAI,aAAa;IAIjC,QAAQ,IAAI,OAAO;IAInB,YAAY,IAAI,OAAO;IAIvB;;;;;;OAMG;IACH,cAAc,IAAI,OAAO;IAIzB;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAQ5C;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;IAMtC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,OAAO,eAAe,EAAE,UAAU,EAAE,CAAC;IAMjE;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,gBAAgB,EAAE,WAAW,EAAE,CAAC;CAKrE"}
@@ -1 +1 @@
1
- {"version":3,"file":"facts.d.ts","sourceRoot":"","sources":["../src/facts.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAGL,cAAc,EAEf,MAAM,0BAA0B,CAAC;AAiBlC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAS9B,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,0BAA0B,EAC1B,yBAAyB,EACzB,uBAAuB,EAEvB,uBAAuB,EACvB,uBAAuB,EACvB,qBAAqB,EACrB,WAAW,EACX,UAAU,EACV,QAAQ,EACR,gBAAgB,EAChB,eAAe,EAChB,MAAM,SAAS,CAAC;AAuKjB,qBAAa,cAAe,SAAQ,cAAc,CAAC,IAAI,CAAC;IACtD,MAAM,CAAC,QAAQ,CAAC,UAAU,cAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAoC;IAEzE;;;OAGG;YACW,eAAe;IA2M7B;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;IAIlC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;IAInC;;OAEG;IACG,SAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAIhD;;OAEG;IACG,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAIlD;;OAEG;IACG,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAItD;;;OAGG;IACG,aAAa,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAQ5D;;OAEG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAIrD;;;;;;OAMG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;IAInC;;;;;OAKG;IACG,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAIxD;;;;OAIG;IACG,aAAa,CACjB,KAAK,SAAK,EACV,OAAO,GAAE;QACP,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;KACjB,GACL,OAAO,CAAC,IAAI,EAAE,CAAC;IA+FlB;;;;;OAKG;IACG,qBAAqB,CAAC,SAAS,SAAM,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IA0C5E;;OAEG;IACG,aAAa,CACjB,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE;QACP,YAAY,CAAC,EAAE,uBAAuB,CAAC;QACvC,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;KACjB,GACL,OAAO,CAAC,IAAI,EAAE,CAAC;IAyClB,OAAO,CAAC,2BAA2B;YAMrB,4BAA4B;IAuB1C,OAAO,CAAC,kCAAkC;IAU1C,OAAO,CAAC,sBAAsB;YAShB,uBAAuB;YAuBvB,2BAA2B;IA+BzC;;;;;;;;;;;;;;OAcG;IACG,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;YAQtD,eAAe;IA2M7B;;;;;OAKG;IACG,yBAAyB,CAC7B,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,uBAAuB,EAAE,CAAC;IA8CrC;;;;;;OAMG;IACG,oBAAoB,CACxB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,uBAAuB,EAAE,CAAC;IA6CrC;;OAEG;IACG,kBAAkB,CACtB,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,yBAAyB,EAAE,EAC3C,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,0BAA0B,CAAC;IAiDtC;;;OAGG;YACW,mBAAmB;IAmEjC;;;;;;;;;OASG;IACG,MAAM,CACV,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,EAC1B,aAAa,GAAE,aAA2B,GACzC,OAAO,CAAC,IAAI,CAAC;IAyChB;;;;;OAKG;IACG,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAoBxD;;;OAGG;IACG,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BrD;;;;;OAKG;IACG,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAiCvD;;;OAGG;IACG,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAuD5D;;;;OAIG;IACG,iBAAiB,CACrB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,cAAc,CAAC;CA2B3B"}
1
+ {"version":3,"file":"facts.d.ts","sourceRoot":"","sources":["../src/facts.ts"],"names":[],"mappings":"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"}