ontave 0.1.0-alpha.5 → 0.1.0-alpha.6
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 +16 -10
- package/dist/policy.d.ts +1 -0
- package/dist/policy.d.ts.map +1 -1
- package/dist/policy.js.map +1 -1
- package/dist/runtime.d.ts +5 -0
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +182 -158
- package/dist/runtime.js.map +1 -1
- package/docs/API_REFERENCE.md +7 -0
- package/docs/IMPLEMENTATION_STATUS.md +6 -1
- package/docs/LOCAL_AND_HOSTED.md +2 -2
- package/docs/POLICY_SAFETY.md +32 -0
- package/docs/QUICKSTART.md +2 -2
- package/docs/RELEASE_STATUS.json +6 -1
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -21,16 +21,16 @@ A data layer that adapts as your business changes.
|
|
|
21
21
|
|
|
22
22
|
Ontave is an Apache 2.0 TypeScript framework for applications that need to adopt unfamiliar information while preserving evidence and existing query contracts. Strict review is the default; alpha.5 adds bounded automatic adoption selected by the host application.
|
|
23
23
|
|
|
24
|
-
**Developer preview `0.1.0-alpha.
|
|
24
|
+
**Developer preview `0.1.0-alpha.6`.** This alpha is intended for developer evaluation. Full MVP qualification remains open, including independent label review, live identity/discovery/publication checks and experimental-provider resource profiling. See the [packaged release status](https://github.com/smileplis/ontave/blob/v0.1.0-alpha.6/docs/RELEASE_STATUS.json) and [implementation status](https://github.com/smileplis/ontave/blob/v0.1.0-alpha.6/docs/IMPLEMENTATION_STATUS.md).
|
|
25
25
|
|
|
26
26
|
## Try Ontave
|
|
27
27
|
|
|
28
|
-
[Browser sandbox](https://ontave.daltn.tech/playground/) · [Quickstart](https://ontave.daltn.tech/docs/quickstart/) · [API reference](https://github.com/smileplis/ontave/blob/v0.1.0-alpha.
|
|
28
|
+
[Browser sandbox](https://ontave.daltn.tech/playground/) · [Quickstart](https://ontave.daltn.tech/docs/quickstart/) · [API reference](https://github.com/smileplis/ontave/blob/v0.1.0-alpha.6/docs/API_REFERENCE.md)
|
|
29
29
|
|
|
30
30
|
With **Node.js 24** on macOS or Linux:
|
|
31
31
|
|
|
32
32
|
```sh
|
|
33
|
-
npx --yes ontave@0.1.0-alpha.
|
|
33
|
+
npx --yes ontave@0.1.0-alpha.6 playground --install
|
|
34
34
|
```
|
|
35
35
|
|
|
36
36
|
Open the localhost URL printed in the terminal. The explicit command prepares a temporary PostgreSQL database and restricted role. `--install` downloads optional platform tooling into a temporary directory if needed. No Docker or model key is required. Ctrl+C stops the playground and removes the temporary database.
|
|
@@ -44,18 +44,24 @@ npm install ontave
|
|
|
44
44
|
npx ontave help
|
|
45
45
|
```
|
|
46
46
|
|
|
47
|
-
The package is ESM for trusted Node.js 24 servers with a dedicated PostgreSQL 18 database. Qualification uses Node.js 24.22.0, PostgreSQL 18.4 and TypeScript 7.0.2. Browser and edge runtimes are unsupported. The default npm installation selects the current alpha preview. Core imports perform no setup or provider calls. Follow the [package quickstart](https://github.com/smileplis/ontave/blob/v0.1.0-alpha.
|
|
47
|
+
The package is ESM for trusted Node.js 24 servers with a dedicated PostgreSQL 18 database. Qualification uses Node.js 24.22.0, PostgreSQL 18.4 and TypeScript 7.0.2. Browser and edge runtimes are unsupported. The default npm installation selects the current alpha preview. Core imports perform no setup or provider calls. Follow the [package quickstart](https://github.com/smileplis/ontave/blob/v0.1.0-alpha.6/docs/QUICKSTART.md) for your own data, model and authorization.
|
|
48
48
|
|
|
49
49
|
Build from source:
|
|
50
50
|
|
|
51
51
|
```sh
|
|
52
|
-
git clone --branch v0.1.0-alpha.
|
|
52
|
+
git clone --branch v0.1.0-alpha.6 https://github.com/smileplis/ontave.git
|
|
53
53
|
cd ontave
|
|
54
54
|
npm ci
|
|
55
55
|
npm run playground
|
|
56
56
|
```
|
|
57
57
|
|
|
58
|
-
##
|
|
58
|
+
## Policy safety fix in alpha.6
|
|
59
|
+
|
|
60
|
+
Upgrade with `npm install ontave@latest`. Automatic acceptance now treats existing records as read-only references. A changed quotation currency, supplier, price, quantity, missing field, identifier or existing relationship stays pending for explicit review. Matching references do not add assertions or increment entity revisions. Checks and writes share one transaction with revision checks and row locks; a rejected bundle commits no partial facts.
|
|
61
|
+
|
|
62
|
+
New delivery commitments can still be accepted automatically under the configured additive policy. Earlier alpha.5 decisions remain in the audit history; upgrading does not silently repair already accepted conflicts. See [policy safety and upgrade guidance](docs/POLICY_SAFETY.md).
|
|
63
|
+
|
|
64
|
+
## Added in alpha.5
|
|
59
65
|
|
|
60
66
|
Persistent local setup and a ready review Studio:
|
|
61
67
|
|
|
@@ -85,7 +91,7 @@ const receipt = await ontave.ingest(context, {
|
|
|
85
91
|
});
|
|
86
92
|
```
|
|
87
93
|
|
|
88
|
-
`ontave` above is a configured server runtime. The receipt preserves evidence and a job; processing and review are separate operations. [Walk through the complete setup](https://github.com/smileplis/ontave/blob/v0.1.0-alpha.
|
|
94
|
+
`ontave` above is a configured server runtime. The receipt preserves evidence and a job; processing and review are separate operations. [Walk through the complete setup](https://github.com/smileplis/ontave/blob/v0.1.0-alpha.6/docs/QUICKSTART.md).
|
|
89
95
|
|
|
90
96
|
## Your infrastructure, explicit boundaries
|
|
91
97
|
|
|
@@ -125,9 +131,9 @@ npm run dev --prefix website
|
|
|
125
131
|
|
|
126
132
|
**Alpha.5** adds a [runnable supplier-quotation comparison](examples/supplier-quotes/README.md) against standalone LLM + PostgreSQL. The [benchmark report](docs/SUPPLIER_QUOTATION_BENCHMARK.md) includes shared live predictions, failure history, accepted-data coverage and an exploratory timed review. It makes no framework extraction-uplift or human time-saving claim. Optional models on non-inference services and `reviews.forJob` are available in alpha.5.
|
|
127
133
|
|
|
128
|
-
The local deterministic benefit harness avoided 400 repeated extraction calls across 500 deliveries of 100 distinct inputs. Another 1,000 structured reads used no model calls. These are operation counts, not human time-saving or live accuracy claims. See [user benefits](https://github.com/smileplis/ontave/blob/v0.1.0-alpha.
|
|
134
|
+
The local deterministic benefit harness avoided 400 repeated extraction calls across 500 deliveries of 100 distinct inputs. Another 1,000 structured reads used no model calls. These are operation counts, not human time-saving or live accuracy claims. See [user benefits](https://github.com/smileplis/ontave/blob/v0.1.0-alpha.6/docs/USER_BENEFITS.md) and the [quality report](https://github.com/smileplis/ontave/blob/v0.1.0-alpha.6/docs/QUALITY_REPORT.md).
|
|
129
135
|
|
|
130
|
-
Alpha.
|
|
136
|
+
Alpha.6 uses a developer-preview release profile with implementation, recovery, consumer, security and exact-revision CI checks, plus a disclosure of every open quality gate. This is separate from full MVP qualification, which requires independent semantic review. See the [versioned release workflow](https://github.com/smileplis/ontave/blob/v0.1.0-alpha.6/README.md#measured-benefits-and-release-qualification) for the commands and evidence policy belonging to that release.
|
|
131
137
|
|
|
132
138
|
## Ideas to build on
|
|
133
139
|
|
|
@@ -139,7 +145,7 @@ Follow the [RSS feed](https://ontave.daltn.tech/feed.xml), use the [JSON feed](h
|
|
|
139
145
|
|
|
140
146
|
## References
|
|
141
147
|
|
|
142
|
-
[Operator runbook](https://github.com/smileplis/ontave/blob/v0.1.0-alpha.
|
|
148
|
+
[Operator runbook](https://github.com/smileplis/ontave/blob/v0.1.0-alpha.6/docs/OPERATOR_RUNBOOK.md) · [Build report](https://github.com/smileplis/ontave/blob/v0.1.0-alpha.6/docs/BUILD_REPORT.md) · [Annotation rubric](https://github.com/smileplis/ontave/blob/v0.1.0-alpha.6/docs/ANNOTATION_RUBRIC.md) · [Architectural source reference](https://github.com/smileplis/ontave/blob/v0.1.0-alpha.6/docs/SOURCE_REFERENCE.md)
|
|
143
149
|
|
|
144
150
|
Copyright 2026 Ontave contributors. See [Apache 2.0](LICENSE) and [NOTICE](NOTICE). Cover artwork: *Noon, Rest from Work* by Vincent van Gogh. The vector wordmark and painting follow the website’s visual identity.
|
|
145
151
|
|
package/dist/policy.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ export interface AutomationPolicy {
|
|
|
9
9
|
maxNewRelations: number;
|
|
10
10
|
fieldTypes: FieldDefinition["type"][];
|
|
11
11
|
relationshipTargets: string[];
|
|
12
|
+
/** Allows creating base-model entities; existing records remain reference-only. */
|
|
12
13
|
allowNewExistingEntities?: boolean;
|
|
13
14
|
}
|
|
14
15
|
export declare function additivePolicy(options: {
|
package/dist/policy.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE9D,oFAAoF;AACpF,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;IACtC,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC;AACD,wBAAgB,cAAc,CAAC,OAAO,EAAE;IACtC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,EAAE,CAAC,EAAE,MAAM,CAAC;CACb,GAAG,gBAAgB,CAYnB;AACD,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,gBAAgB,GACpB,QAAQ,CAAC,gBAAgB,CAAC,CAoF5B;AACD,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC;IAyDhC,IAAI;IACJ,QAAQ;IACR,UAAU;IACV,MAAM;IAON,yBAAyB;EAE5B"}
|
|
1
|
+
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE9D,oFAAoF;AACpF,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;IACtC,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,mFAAmF;IACnF,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC;AACD,wBAAgB,cAAc,CAAC,OAAO,EAAE;IACtC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,EAAE,CAAC,EAAE,MAAM,CAAC;CACb,GAAG,gBAAgB,CAYnB;AACD,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,gBAAgB,GACpB,QAAQ,CAAC,gBAAgB,CAAC,CAoF5B;AACD,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC;IAyDhC,IAAI;IACJ,QAAQ;IACR,UAAU;IACV,MAAM;IAON,yBAAyB;EAE5B"}
|
package/dist/policy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime.d.ts
CHANGED
|
@@ -102,6 +102,11 @@ export declare class Ontave {
|
|
|
102
102
|
};
|
|
103
103
|
private fence;
|
|
104
104
|
private bundle;
|
|
105
|
+
/** Policy validation and canonical writes share the same transaction and entity locks. */
|
|
106
|
+
private acceptBundle;
|
|
107
|
+
private checkPolicyAcceptance;
|
|
108
|
+
/** Existing records are references, never implicit permission to add or alter accepted assertions. */
|
|
109
|
+
private checkPolicyReference;
|
|
105
110
|
readonly reviews: {
|
|
106
111
|
/** Automated acceptance remains a reported claim; policy grants no verification. */
|
|
107
112
|
acceptByPolicy: (context: unknown, input: {
|
package/dist/runtime.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime.js
CHANGED
|
@@ -598,42 +598,192 @@ export class Ontave {
|
|
|
598
598
|
check(r.rows[0], "NOT_FOUND", "Bundle not found");
|
|
599
599
|
return r.rows[0];
|
|
600
600
|
}
|
|
601
|
+
/** Policy validation and canonical writes share the same transaction and entity locks. */
|
|
602
|
+
async acceptBundle(context, input, policy) {
|
|
603
|
+
const a = await this.access(context, "review");
|
|
604
|
+
return this.config.storage.transaction(a.workspaceId, async (c) => {
|
|
605
|
+
const digest = hash(input), old = await this.decision(c, a, "accept", input.requestKey, digest);
|
|
606
|
+
if (old)
|
|
607
|
+
return old;
|
|
608
|
+
const b = await this.bundle(c, input.bundleId, true);
|
|
609
|
+
check(b.hash === input.digest &&
|
|
610
|
+
b.current_bundle === b.id &&
|
|
611
|
+
b.state === "waiting_review", "STALE_BUNDLE", "Only the exact current review-ready bundle can be accepted");
|
|
612
|
+
const body = b.body;
|
|
613
|
+
check(body.pending.length === 0 && body.extraction.observations.length === 0, "UNRESOLVED_IDENTITY", "Bundle dependencies remain");
|
|
614
|
+
const active = await this.active(c);
|
|
615
|
+
const previous = await c.query("SELECT definition FROM ontave.versions WHERE id=$1", [b.ontology_id]);
|
|
616
|
+
check(compatible(previous.rows[0].definition, active.definition), "STALE_ONTOLOGY", "Bundle requires renewed interpretation");
|
|
617
|
+
const evidence = await c.query("SELECT * FROM ontave.evidence WHERE id=$1", [b.evidence_id]);
|
|
618
|
+
validateExtraction(body.extraction, evidence.rows[0].payload, active.definition, evidence.rows[0].kind === "json" ? "json" : "text");
|
|
619
|
+
if (policy)
|
|
620
|
+
this.checkPolicyAcceptance(body, evidence.rows[0].source, policy);
|
|
621
|
+
const published = [], changed = [];
|
|
622
|
+
for (const m of body.extraction.entities) {
|
|
623
|
+
const r = body.resolutions[m.mentionId];
|
|
624
|
+
check(r, "UNRESOLVED_IDENTITY", "Missing identity decision");
|
|
625
|
+
const current = await c.query("SELECT * FROM ontave.entities WHERE id=$1 FOR UPDATE", [r.entityId]);
|
|
626
|
+
if (r.mode === "new") {
|
|
627
|
+
check(!current.rows.length, "STALE_BUNDLE", "Proposed identity already exists");
|
|
628
|
+
const concept = active.definition.concepts.find((x) => x.id === m.conceptId);
|
|
629
|
+
for (const f of concept.fields)
|
|
630
|
+
check(f.optional || Object.hasOwn(m.fields, f.id), "VALIDATION_FAILED", "Required field missing");
|
|
631
|
+
await c.query("INSERT INTO ontave.entities(workspace_id,id,concept_id,name) VALUES($1,$2,$3,$4)", [a.workspaceId, r.entityId, m.conceptId, m.name]);
|
|
632
|
+
}
|
|
633
|
+
else {
|
|
634
|
+
check(current.rows[0]?.revision === r.revision &&
|
|
635
|
+
current.rows[0]?.concept_id === m.conceptId, "STALE_BUNDLE", "Entity changed since review");
|
|
636
|
+
if (policy) {
|
|
637
|
+
await this.checkPolicyReference(c, m, r.entityId, active.definition);
|
|
638
|
+
published.push(r.entityId);
|
|
639
|
+
continue;
|
|
640
|
+
}
|
|
641
|
+
await c.query("UPDATE ontave.entities SET revision=revision+1 WHERE id=$1", [r.entityId]);
|
|
642
|
+
}
|
|
643
|
+
published.push(r.entityId);
|
|
644
|
+
changed.push(r.entityId);
|
|
645
|
+
for (const ident of m.identifiers ?? []) {
|
|
646
|
+
const rule = this.config.identifierRules?.find((x) => x.authority === ident.authority && x.kind === ident.kind);
|
|
647
|
+
if (!rule)
|
|
648
|
+
continue;
|
|
649
|
+
const value = rule.lowercase
|
|
650
|
+
? ident.value.trim().toLowerCase()
|
|
651
|
+
: ident.value.trim();
|
|
652
|
+
const existing = await c.query("SELECT entity_id FROM ontave.identifiers WHERE authority=$1 AND kind=$2 AND normalized=$3", [ident.authority, ident.kind, value]);
|
|
653
|
+
check(!existing.rows.length || existing.rows[0].entity_id === r.entityId, "UNRESOLVED_IDENTITY", "Identifier is already linked elsewhere");
|
|
654
|
+
await c.query("INSERT INTO ontave.identifiers(workspace_id,authority,kind,normalized,entity_id,evidence_id) VALUES($1,$2,$3,$4,$5,$6) ON CONFLICT DO NOTHING", [
|
|
655
|
+
a.workspaceId,
|
|
656
|
+
ident.authority,
|
|
657
|
+
ident.kind,
|
|
658
|
+
value,
|
|
659
|
+
r.entityId,
|
|
660
|
+
b.evidence_id,
|
|
661
|
+
]);
|
|
662
|
+
}
|
|
663
|
+
for (const [field, f] of Object.entries(m.fields)) {
|
|
664
|
+
const v = f.verification ?? "reported";
|
|
665
|
+
if (v === "verified")
|
|
666
|
+
check(this.config.sourcePolicies?.[evidence.rows[0].source_policy]?.verifiedFields.includes(m.conceptId + "." + field), "VALIDATION_FAILED", "Source verification rule denied");
|
|
667
|
+
const existing = await c.query("SELECT id FROM ontave.assertions WHERE entity_id=$1 AND field_id=$2 AND evidence_id=$3 AND value=$4::jsonb AND verification=$5 AND kind='set'", [r.entityId, field, b.evidence_id, json(f.value), v]);
|
|
668
|
+
if (!existing.rows.length)
|
|
669
|
+
await c.query("INSERT INTO ontave.assertions(workspace_id,id,entity_id,field_id,value,verification,kind,evidence_id,bundle_id,span) VALUES($1,$2,$3,$4,$5,$6,'set',$7,$8,$9)", [
|
|
670
|
+
a.workspaceId,
|
|
671
|
+
randomUUID(),
|
|
672
|
+
r.entityId,
|
|
673
|
+
field,
|
|
674
|
+
json(f.value),
|
|
675
|
+
v,
|
|
676
|
+
b.evidence_id,
|
|
677
|
+
b.id,
|
|
678
|
+
json(sourceReference(evidence.rows[0].payload, f, evidence.rows[0].kind === "json" ? "json" : "text")),
|
|
679
|
+
]);
|
|
680
|
+
}
|
|
681
|
+
}
|
|
682
|
+
for (const relationship of body.extraction.relationships) {
|
|
683
|
+
const s = body.resolutions[relationship.source], t = body.resolutions[relationship.target];
|
|
684
|
+
const def = active.definition.relations.find((x) => x.id === relationship.relationId);
|
|
685
|
+
const existing = await c.query("SELECT a.id,a.target_entity_id,a.evidence_id,EXISTS(SELECT 1 FROM ontave.assertions x WHERE x.target_assertion_id=a.id AND x.kind='retract') AS retracted FROM ontave.assertions a WHERE a.entity_id=$1 AND a.relation_id=$2 AND a.kind='set'", [s.entityId, relationship.relationId]);
|
|
686
|
+
if (def.max === 1)
|
|
687
|
+
check(existing.rows
|
|
688
|
+
.filter((x) => !x.retracted && !body.retractions.includes(x.id))
|
|
689
|
+
.every((x) => x.target_entity_id === t.entityId), "UNRESOLVED_CONFLICT", "Relationship cardinality conflict");
|
|
690
|
+
if (!existing.rows.some((x) => x.target_entity_id === t.entityId &&
|
|
691
|
+
x.evidence_id === b.evidence_id))
|
|
692
|
+
await c.query("INSERT INTO ontave.assertions(workspace_id,id,entity_id,relation_id,target_entity_id,verification,kind,evidence_id,bundle_id,span) VALUES($1,$2,$3,$4,$5,'reported','set',$6,$7,$8)", [
|
|
693
|
+
a.workspaceId,
|
|
694
|
+
randomUUID(),
|
|
695
|
+
s.entityId,
|
|
696
|
+
relationship.relationId,
|
|
697
|
+
t.entityId,
|
|
698
|
+
b.evidence_id,
|
|
699
|
+
b.id,
|
|
700
|
+
json(sourceReference(evidence.rows[0].payload, relationship, evidence.rows[0].kind === "json" ? "json" : "text")),
|
|
701
|
+
]);
|
|
702
|
+
}
|
|
703
|
+
for (const target of body.retractions) {
|
|
704
|
+
const r = await c.query("SELECT * FROM ontave.assertions WHERE id=$1 AND kind='set'", [parseUUID(target)]);
|
|
705
|
+
check(r.rows[0], "NOT_FOUND", "Retraction target not found");
|
|
706
|
+
const x = r.rows[0];
|
|
707
|
+
check(published.includes(x.entity_id), "VALIDATION_FAILED", "Retraction must bind a reviewed entity revision");
|
|
708
|
+
await c.query("INSERT INTO ontave.assertions(workspace_id,id,entity_id,field_id,relation_id,value,verification,kind,target_assertion_id,evidence_id,bundle_id,span) VALUES($1,$2,$3,$4,$5,NULL,'unknown','retract',$6,$7,$8,$9)", [
|
|
709
|
+
a.workspaceId,
|
|
710
|
+
randomUUID(),
|
|
711
|
+
x.entity_id,
|
|
712
|
+
x.field_id,
|
|
713
|
+
x.relation_id,
|
|
714
|
+
x.id,
|
|
715
|
+
b.evidence_id,
|
|
716
|
+
b.id,
|
|
717
|
+
json({
|
|
718
|
+
startByte: 0,
|
|
719
|
+
endByte: Buffer.byteLength(evidence.rows[0].payload),
|
|
720
|
+
}),
|
|
721
|
+
]);
|
|
722
|
+
}
|
|
723
|
+
for (const id of changed)
|
|
724
|
+
await this.project(c, a.workspaceId, id, active.definition);
|
|
725
|
+
await c.query("UPDATE ontave.jobs SET state='completed',updated_at=now() WHERE id=$1", [b.job_id]);
|
|
726
|
+
const result = {
|
|
727
|
+
entityIds: published,
|
|
728
|
+
bundleId: b.id,
|
|
729
|
+
ontologyHash: active.hash,
|
|
730
|
+
};
|
|
731
|
+
await this.record(c, a, "accept", input.requestKey, digest, result, input.reason);
|
|
732
|
+
return result;
|
|
733
|
+
});
|
|
734
|
+
}
|
|
735
|
+
checkPolicyAcceptance(body, source, policy) {
|
|
736
|
+
check(policy.sources.includes(source), "FORBIDDEN", "Source is outside the automation policy");
|
|
737
|
+
if (!policy.allowNewExistingEntities)
|
|
738
|
+
for (const entity of body.extraction.entities)
|
|
739
|
+
if (!entity.conceptId.startsWith(policy.namespace))
|
|
740
|
+
check(body.resolutions[entity.mentionId]?.mode === "link", "FORBIDDEN", "This policy extends existing identities; new base-model entities need explicit handling");
|
|
741
|
+
if (policy.relationshipTargets.length)
|
|
742
|
+
for (const entity of body.extraction.entities)
|
|
743
|
+
if (entity.conceptId.startsWith(policy.namespace) &&
|
|
744
|
+
body.resolutions[entity.mentionId]?.mode === "new")
|
|
745
|
+
check(body.extraction.relationships.some((r) => r.source === entity.mentionId), "FORBIDDEN", "Automatic extension records need an explicit parent link");
|
|
746
|
+
check(body.retractions.length === 0 &&
|
|
747
|
+
body.extraction.entities.every((e) => Object.values(e.fields).every((f) => !f.verification || f.verification === "reported")), "FORBIDDEN", "Automatic acceptance cannot retract or verify assertions");
|
|
748
|
+
for (const rel of body.extraction.relationships) {
|
|
749
|
+
check(body.resolutions[rel.source]?.mode === "new", "FORBIDDEN", "Automatic acceptance cannot change relationships of an existing record");
|
|
750
|
+
const from = body.extraction.entities.find((e) => e.mentionId === rel.source);
|
|
751
|
+
if (from.conceptId.startsWith(policy.namespace)) {
|
|
752
|
+
const target = body.extraction.entities.find((e) => e.mentionId === rel.target);
|
|
753
|
+
check(body.resolutions[rel.target]?.mode === "link" &&
|
|
754
|
+
policy.relationshipTargets.includes(target.conceptId), "FORBIDDEN", "An automatic extension must link to an allowed existing parent identity");
|
|
755
|
+
}
|
|
756
|
+
}
|
|
757
|
+
}
|
|
758
|
+
/** Existing records are references, never implicit permission to add or alter accepted assertions. */
|
|
759
|
+
async checkPolicyReference(c, mention, entityId, definition) {
|
|
760
|
+
const rows = await c.query("SELECT field_id,result FROM ontave.projections WHERE entity_id=$1", [entityId]);
|
|
761
|
+
const concept = definition.concepts.find((x) => x.id === mention.conceptId);
|
|
762
|
+
for (const [field, claim] of Object.entries(mention.fields)) {
|
|
763
|
+
const current = rows.rows.find((x) => x.field_id === field)?.result;
|
|
764
|
+
check(current?.state === "value" &&
|
|
765
|
+
sameValue(current.value, normalizeValue(concept.fields.find((f) => f.id === field), claim.value)), "FORBIDDEN", "Automatic references cannot change protected fields, fill missing values or endorse conflicts; explicit review is required");
|
|
766
|
+
}
|
|
767
|
+
for (const identifier of mention.identifiers ?? []) {
|
|
768
|
+
const rule = this.config.identifierRules?.find((r) => r.authority === identifier.authority && r.kind === identifier.kind);
|
|
769
|
+
if (!rule)
|
|
770
|
+
continue;
|
|
771
|
+
const value = rule.lowercase
|
|
772
|
+
? identifier.value.trim().toLowerCase()
|
|
773
|
+
: identifier.value.trim();
|
|
774
|
+
const existing = await c.query("SELECT entity_id FROM ontave.identifiers WHERE authority=$1 AND kind=$2 AND normalized=$3", [identifier.authority, identifier.kind, value]);
|
|
775
|
+
check(existing.rows[0]?.entity_id === entityId, "FORBIDDEN", "Automatic references cannot add or rebind identifiers; explicit review is required");
|
|
776
|
+
}
|
|
777
|
+
}
|
|
601
778
|
reviews = {
|
|
602
779
|
/** Automated acceptance remains a reported claim; policy grants no verification. */
|
|
603
|
-
acceptByPolicy:
|
|
604
|
-
const
|
|
780
|
+
acceptByPolicy: (context, input) => {
|
|
781
|
+
const policy = this.automationPolicy;
|
|
605
782
|
check(policy, "FORBIDDEN", "Automatic acceptance requires an explicit host policy");
|
|
606
|
-
|
|
607
|
-
const b = await this.bundle(c, input.bundleId);
|
|
608
|
-
check(b.hash === input.digest && b.current_bundle === b.id, "STALE_BUNDLE", "Proposal changed");
|
|
609
|
-
const evidence = (await c.query("SELECT source FROM ontave.evidence WHERE id=$1", [
|
|
610
|
-
b.evidence_id,
|
|
611
|
-
])).rows[0];
|
|
612
|
-
check(evidence && policy.sources.includes(evidence.source), "FORBIDDEN", "Source is outside the automation policy");
|
|
613
|
-
const body = b.body;
|
|
614
|
-
if (!policy.allowNewExistingEntities)
|
|
615
|
-
for (const entity of body.extraction.entities)
|
|
616
|
-
if (!entity.conceptId.startsWith(policy.namespace))
|
|
617
|
-
check(body.resolutions[entity.mentionId]?.mode === "link", "FORBIDDEN", "This policy extends existing identities; new base-model entities need explicit handling");
|
|
618
|
-
if (policy.relationshipTargets.length)
|
|
619
|
-
for (const entity of body.extraction.entities)
|
|
620
|
-
if (entity.conceptId.startsWith(policy.namespace))
|
|
621
|
-
check(body.extraction.relationships.some((r) => r.source === entity.mentionId), "FORBIDDEN", "Automatic extension records need an explicit parent link");
|
|
622
|
-
check(body.retractions.length === 0 &&
|
|
623
|
-
body.extraction.entities.every((e) => Object.values(e.fields).every((f) => !f.verification || f.verification === "reported")), "FORBIDDEN", "Automatic acceptance cannot retract or verify assertions");
|
|
624
|
-
for (const rel of body.extraction.relationships) {
|
|
625
|
-
const source = body.extraction.entities.find((e) => e.mentionId === rel.source);
|
|
626
|
-
if (source.conceptId.startsWith(policy.namespace)) {
|
|
627
|
-
const target = body.extraction.entities.find((e) => e.mentionId === rel.target);
|
|
628
|
-
check(body.resolutions[rel.target]?.mode === "link" &&
|
|
629
|
-
policy.relationshipTargets.includes(target.conceptId), "FORBIDDEN", "An automatic extension must link to an allowed existing parent identity");
|
|
630
|
-
}
|
|
631
|
-
}
|
|
632
|
-
});
|
|
633
|
-
return this.reviews.accept(context, {
|
|
783
|
+
return this.acceptBundle(context, {
|
|
634
784
|
...input,
|
|
635
785
|
reason: `Automatic reported-claim acceptance under host policy ${policy.id} (${hash(policy)})`,
|
|
636
|
-
});
|
|
786
|
+
}, policy);
|
|
637
787
|
},
|
|
638
788
|
/** One transaction for the current proposal and bounded original source. */
|
|
639
789
|
forJob: async (context, jobId) => {
|
|
@@ -694,133 +844,7 @@ export class Ontave {
|
|
|
694
844
|
return result;
|
|
695
845
|
});
|
|
696
846
|
},
|
|
697
|
-
accept:
|
|
698
|
-
const a = await this.access(context, "review");
|
|
699
|
-
return this.config.storage.transaction(a.workspaceId, async (c) => {
|
|
700
|
-
const digest = hash(input), old = await this.decision(c, a, "accept", input.requestKey, digest);
|
|
701
|
-
if (old)
|
|
702
|
-
return old;
|
|
703
|
-
const b = await this.bundle(c, input.bundleId, true);
|
|
704
|
-
check(b.hash === input.digest &&
|
|
705
|
-
b.current_bundle === b.id &&
|
|
706
|
-
b.state === "waiting_review", "STALE_BUNDLE", "Only the exact current review-ready bundle can be accepted");
|
|
707
|
-
const body = b.body;
|
|
708
|
-
check(body.pending.length === 0 &&
|
|
709
|
-
body.extraction.observations.length === 0, "UNRESOLVED_IDENTITY", "Bundle dependencies remain");
|
|
710
|
-
const active = await this.active(c);
|
|
711
|
-
const previous = await c.query("SELECT definition FROM ontave.versions WHERE id=$1", [b.ontology_id]);
|
|
712
|
-
check(compatible(previous.rows[0].definition, active.definition), "STALE_ONTOLOGY", "Bundle requires renewed interpretation");
|
|
713
|
-
const evidence = await c.query("SELECT * FROM ontave.evidence WHERE id=$1", [b.evidence_id]);
|
|
714
|
-
validateExtraction(body.extraction, evidence.rows[0].payload, active.definition, evidence.rows[0].kind === "json" ? "json" : "text");
|
|
715
|
-
const published = [];
|
|
716
|
-
for (const m of body.extraction.entities) {
|
|
717
|
-
const r = body.resolutions[m.mentionId];
|
|
718
|
-
check(r, "UNRESOLVED_IDENTITY", "Missing identity decision");
|
|
719
|
-
const current = await c.query("SELECT * FROM ontave.entities WHERE id=$1 FOR UPDATE", [r.entityId]);
|
|
720
|
-
if (r.mode === "new") {
|
|
721
|
-
check(!current.rows.length, "STALE_BUNDLE", "Proposed identity already exists");
|
|
722
|
-
const concept = active.definition.concepts.find((x) => x.id === m.conceptId);
|
|
723
|
-
for (const f of concept.fields)
|
|
724
|
-
check(f.optional || Object.hasOwn(m.fields, f.id), "VALIDATION_FAILED", "Required field missing");
|
|
725
|
-
await c.query("INSERT INTO ontave.entities(workspace_id,id,concept_id,name) VALUES($1,$2,$3,$4)", [a.workspaceId, r.entityId, m.conceptId, m.name]);
|
|
726
|
-
}
|
|
727
|
-
else {
|
|
728
|
-
check(current.rows[0]?.revision === r.revision &&
|
|
729
|
-
current.rows[0]?.concept_id === m.conceptId, "STALE_BUNDLE", "Entity changed since review");
|
|
730
|
-
await c.query("UPDATE ontave.entities SET revision=revision+1 WHERE id=$1", [r.entityId]);
|
|
731
|
-
}
|
|
732
|
-
published.push(r.entityId);
|
|
733
|
-
for (const ident of m.identifiers ?? []) {
|
|
734
|
-
const rule = this.config.identifierRules?.find((x) => x.authority === ident.authority && x.kind === ident.kind);
|
|
735
|
-
if (!rule)
|
|
736
|
-
continue;
|
|
737
|
-
const value = rule.lowercase
|
|
738
|
-
? ident.value.trim().toLowerCase()
|
|
739
|
-
: ident.value.trim();
|
|
740
|
-
const existing = await c.query("SELECT entity_id FROM ontave.identifiers WHERE authority=$1 AND kind=$2 AND normalized=$3", [ident.authority, ident.kind, value]);
|
|
741
|
-
check(!existing.rows.length ||
|
|
742
|
-
existing.rows[0].entity_id === r.entityId, "UNRESOLVED_IDENTITY", "Identifier is already linked elsewhere");
|
|
743
|
-
await c.query("INSERT INTO ontave.identifiers(workspace_id,authority,kind,normalized,entity_id,evidence_id) VALUES($1,$2,$3,$4,$5,$6) ON CONFLICT DO NOTHING", [
|
|
744
|
-
a.workspaceId,
|
|
745
|
-
ident.authority,
|
|
746
|
-
ident.kind,
|
|
747
|
-
value,
|
|
748
|
-
r.entityId,
|
|
749
|
-
b.evidence_id,
|
|
750
|
-
]);
|
|
751
|
-
}
|
|
752
|
-
for (const [field, f] of Object.entries(m.fields)) {
|
|
753
|
-
const v = f.verification ?? "reported";
|
|
754
|
-
if (v === "verified")
|
|
755
|
-
check(this.config.sourcePolicies?.[evidence.rows[0].source_policy]?.verifiedFields.includes(m.conceptId + "." + field), "VALIDATION_FAILED", "Source verification rule denied");
|
|
756
|
-
const existing = await c.query("SELECT id FROM ontave.assertions WHERE entity_id=$1 AND field_id=$2 AND evidence_id=$3 AND value=$4::jsonb AND verification=$5 AND kind='set'", [r.entityId, field, b.evidence_id, json(f.value), v]);
|
|
757
|
-
if (!existing.rows.length)
|
|
758
|
-
await c.query("INSERT INTO ontave.assertions(workspace_id,id,entity_id,field_id,value,verification,kind,evidence_id,bundle_id,span) VALUES($1,$2,$3,$4,$5,$6,'set',$7,$8,$9)", [
|
|
759
|
-
a.workspaceId,
|
|
760
|
-
randomUUID(),
|
|
761
|
-
r.entityId,
|
|
762
|
-
field,
|
|
763
|
-
json(f.value),
|
|
764
|
-
v,
|
|
765
|
-
b.evidence_id,
|
|
766
|
-
b.id,
|
|
767
|
-
json(sourceReference(evidence.rows[0].payload, f, evidence.rows[0].kind === "json" ? "json" : "text")),
|
|
768
|
-
]);
|
|
769
|
-
}
|
|
770
|
-
}
|
|
771
|
-
for (const relationship of body.extraction.relationships) {
|
|
772
|
-
const s = body.resolutions[relationship.source], t = body.resolutions[relationship.target];
|
|
773
|
-
const def = active.definition.relations.find((x) => x.id === relationship.relationId);
|
|
774
|
-
const existing = await c.query("SELECT a.id,a.target_entity_id,a.evidence_id,EXISTS(SELECT 1 FROM ontave.assertions x WHERE x.target_assertion_id=a.id AND x.kind='retract') AS retracted FROM ontave.assertions a WHERE a.entity_id=$1 AND a.relation_id=$2 AND a.kind='set'", [s.entityId, relationship.relationId]);
|
|
775
|
-
if (def.max === 1)
|
|
776
|
-
check(existing.rows
|
|
777
|
-
.filter((x) => !x.retracted && !body.retractions.includes(x.id))
|
|
778
|
-
.every((x) => x.target_entity_id === t.entityId), "UNRESOLVED_CONFLICT", "Relationship cardinality conflict");
|
|
779
|
-
if (!existing.rows.some((x) => x.target_entity_id === t.entityId &&
|
|
780
|
-
x.evidence_id === b.evidence_id))
|
|
781
|
-
await c.query("INSERT INTO ontave.assertions(workspace_id,id,entity_id,relation_id,target_entity_id,verification,kind,evidence_id,bundle_id,span) VALUES($1,$2,$3,$4,$5,'reported','set',$6,$7,$8)", [
|
|
782
|
-
a.workspaceId,
|
|
783
|
-
randomUUID(),
|
|
784
|
-
s.entityId,
|
|
785
|
-
relationship.relationId,
|
|
786
|
-
t.entityId,
|
|
787
|
-
b.evidence_id,
|
|
788
|
-
b.id,
|
|
789
|
-
json(sourceReference(evidence.rows[0].payload, relationship, evidence.rows[0].kind === "json" ? "json" : "text")),
|
|
790
|
-
]);
|
|
791
|
-
}
|
|
792
|
-
for (const target of body.retractions) {
|
|
793
|
-
const r = await c.query("SELECT * FROM ontave.assertions WHERE id=$1 AND kind='set'", [parseUUID(target)]);
|
|
794
|
-
check(r.rows[0], "NOT_FOUND", "Retraction target not found");
|
|
795
|
-
const x = r.rows[0];
|
|
796
|
-
check(published.includes(x.entity_id), "VALIDATION_FAILED", "Retraction must bind a reviewed entity revision");
|
|
797
|
-
await c.query("INSERT INTO ontave.assertions(workspace_id,id,entity_id,field_id,relation_id,value,verification,kind,target_assertion_id,evidence_id,bundle_id,span) VALUES($1,$2,$3,$4,$5,NULL,'unknown','retract',$6,$7,$8,$9)", [
|
|
798
|
-
a.workspaceId,
|
|
799
|
-
randomUUID(),
|
|
800
|
-
x.entity_id,
|
|
801
|
-
x.field_id,
|
|
802
|
-
x.relation_id,
|
|
803
|
-
x.id,
|
|
804
|
-
b.evidence_id,
|
|
805
|
-
b.id,
|
|
806
|
-
json({
|
|
807
|
-
startByte: 0,
|
|
808
|
-
endByte: Buffer.byteLength(evidence.rows[0].payload),
|
|
809
|
-
}),
|
|
810
|
-
]);
|
|
811
|
-
}
|
|
812
|
-
for (const id of published)
|
|
813
|
-
await this.project(c, a.workspaceId, id, active.definition);
|
|
814
|
-
await c.query("UPDATE ontave.jobs SET state='completed',updated_at=now() WHERE id=$1", [b.job_id]);
|
|
815
|
-
const result = {
|
|
816
|
-
entityIds: published,
|
|
817
|
-
bundleId: b.id,
|
|
818
|
-
ontologyHash: active.hash,
|
|
819
|
-
};
|
|
820
|
-
await this.record(c, a, "accept", input.requestKey, digest, result, input.reason);
|
|
821
|
-
return result;
|
|
822
|
-
});
|
|
823
|
-
},
|
|
847
|
+
accept: (context, input) => this.acceptBundle(context, input),
|
|
824
848
|
reject: async (context, input) => {
|
|
825
849
|
const a = await this.access(context, "review");
|
|
826
850
|
return this.config.storage.transaction(a.workspaceId, async (c) => {
|
package/dist/runtime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
|
package/docs/API_REFERENCE.md
CHANGED
|
@@ -110,3 +110,10 @@ These additions are available in alpha.5. `openOntave` is exported from `ontave/
|
|
|
110
110
|
`advanceAutomatically(runtime,context,jobId)` performs up to four worker/proposal/publication/acceptance transitions and leaves unsupported cases pending with a reason. Local `process()` uses it only when automation is configured. Strict defaults are unchanged.
|
|
111
111
|
|
|
112
112
|
`startStudio({runtime,context,port?,process?})` starts a loopback-only local owner UI. Prefer `app.studio()` for integrated lifecycle handling. It is not a hosted multi-user authentication layer. See [local boundaries](LOCAL_AND_HOSTED.md) and [the adaptation milestone](ADAPTATION_MILESTONE.md).
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
## Alpha.6: reference-only automatic acceptance
|
|
116
|
+
|
|
117
|
+
`reviews.acceptByPolicy` validates policy scope and performs acceptance in one transaction. Every existing entity is reference-only: supplied fields must match its current single accepted value, and recognized identifiers must already be bound to that entity. References do not append assertions, add identifiers or increment revisions. The automatic path cannot fill a missing/unknown field, endorse a conflict candidate, change an existing value or add an outgoing relationship to an existing record. Those proposals remain pending for explicit review. `allowNewExistingEntities` permits creation of base-model entities only; it does not grant mutation of existing records.
|
|
118
|
+
|
|
119
|
+
New eligible entities and their allowed relationships can still be accepted automatically. Any protected mutation aborts the entire bundle, including earlier inserts. Concurrent parent changes retain the existing stale-revision behavior. Historical decisions accepted before the patch are not silently altered. See [policy safety](POLICY_SAFETY.md).
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Ontave implementation status
|
|
2
2
|
|
|
3
|
-
**Developer preview `0.1.0-alpha.
|
|
3
|
+
**Developer preview `0.1.0-alpha.6`** is prepared for npm distribution. Its packaged [release status](https://github.com/smileplis/ontave/blob/v0.1.0-alpha.6/docs/RELEASE_STATUS.json) records the open full-MVP qualification gates. Earlier GitHub alpha archives remain immutable. npm preview distribution has a separate explicit guard; it does not certify the full MVP.
|
|
4
4
|
|
|
5
5
|
Alpha.5 includes: a runnable supplier-quotation example, a standalone LLM + PostgreSQL comparator, optional models on non-inference services and one-transaction review/source snapshots. The [comparison report](SUPPLIER_QUOTATION_BENCHMARK.md) preserves the initial provider failures, the follow-up on reused cases and a completed one-maintainer walkthrough. This does not close independent qualification gates.
|
|
6
6
|
|
|
@@ -47,3 +47,8 @@ Provider factories now constrain short text quotes to an immutable source anchor
|
|
|
47
47
|
## Alpha.5 additions
|
|
48
48
|
|
|
49
49
|
Persistent local database provisioning, loopback Studio, bounded automatic additive publication/acceptance and a frozen quotation adaptation comparator are implemented. The [milestone report](ADAPTATION_MILESTONE.md) separates the successful development ablation from earlier failed acquisitions. Independent semantic qualification, external developer effort measurements and hosted operations remain open. Earlier published alpha archives remain immutable.
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
## Alpha.6 policy safety patch
|
|
53
|
+
|
|
54
|
+
Automatic acceptance treats existing entities as read-only references. It holds protected-field changes, missing/conflicted values, new identifiers and outgoing changes on existing records. Matching references preserve accepted assertions and revisions. Policy validation, locked revision checks and writes occur within one transaction. New additive commitments remain automatic. See [upgrade guidance](POLICY_SAFETY.md).
|
package/docs/LOCAL_AND_HOSTED.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Local setup and optional hosting
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Use **0.1.0-alpha.6** or newer for the automatic-policy safety fix. Install with `npm install ontave` or pin `ontave@0.1.0-alpha.6`. Local setup APIs were introduced in alpha.5; alpha.4 does not include them.
|
|
4
4
|
|
|
5
5
|
## Start locally
|
|
6
6
|
|
|
@@ -45,7 +45,7 @@ const automation = additivePolicy({
|
|
|
45
45
|
});
|
|
46
46
|
```
|
|
47
47
|
|
|
48
|
-
The host chooses which sources and extensions can be adopted. The default profile permits one new namespaced concept, eight text/integer/date fields and one relationship per proposal. Existing meanings and field types cannot change. Extension records must link to an existing allowed parent. New base-model identities are held unless the host explicitly opts in. Retractions and assertions marked verified are held. Evidence, reported-claim semantics and existing contract checks still apply.
|
|
48
|
+
The host chooses which sources and extensions can be adopted. The default profile permits one new namespaced concept, eight text/integer/date fields and one relationship per proposal. Existing meanings and field types cannot change. Extension records must link to an existing allowed parent. New base-model identities are held unless the host explicitly opts in. Retractions and assertions marked verified are held. In alpha.6, existing records are read-only references: supplied fields must match a current single accepted value, and supplied trusted identifiers must already bind that record. Matching references add no assertions and do not bump revisions. New identifiers, changed or missing/conflicted field values, and outgoing relationships on an existing record require explicit review. All checks and writes share one transaction; a rejection rolls back the entire bundle. Evidence, reported-claim semantics and existing contract checks still apply.
|
|
49
49
|
|
|
50
50
|
This removes manual review for eligible cases. It cannot guarantee semantic correctness; quoted source evidence and structural validation do not prove that the model interpreted it correctly. Uncertainty, conflicting identity, disallowed sources and changes outside the policy stay pending. Review them as exceptions, or leave them unadopted. Do not automatically apply this profile to payments, permissions or irreversible actions.
|
|
51
51
|
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Automatic acceptance safety patch: alpha.6
|
|
2
|
+
|
|
3
|
+
Upgrade with `npm install ontave@latest`, or pin `ontave@0.1.0-alpha.6`. This patch tightens automatic acceptance; it does not change the website design or the explicit manual review API.
|
|
4
|
+
|
|
5
|
+
## Defect in alpha.5
|
|
6
|
+
|
|
7
|
+
An allowed source could reference an existing quotation and supply different supplier or currency values. `acceptByPolicy` validated the source and identity scope but did not restrict field assertions on the linked record. It accepted the new assertions, turning previously usable fields into conflicts. Queries filtering the original currency or supplier could stop returning that quotation. The same gap affected other existing fields and allowed new identifier aliases.
|
|
8
|
+
|
|
9
|
+
The regression suite reproduced the defect in a disposable PostgreSQL database with fictional data and no paid model calls. It failed against the alpha.5 implementation before the fix.
|
|
10
|
+
|
|
11
|
+
## New boundary
|
|
12
|
+
|
|
13
|
+
- Existing records are read-only references during automatic acceptance, including records in the extension namespace.
|
|
14
|
+
- Every supplied field must match a current single accepted value. Different values, unknown/missing fields and choices from existing conflicts stay pending.
|
|
15
|
+
- Recognized identifiers must already bind to that exact record. Automation cannot add aliases or rebind an identity.
|
|
16
|
+
- A matching reference does not append field assertions, change identifiers, increment the entity revision or rewrite its projection.
|
|
17
|
+
- Automatic relationships may originate only from new entities. Existing outgoing relationships require explicit review.
|
|
18
|
+
- New eligible entities can still link to an allowed existing parent. `allowNewExistingEntities` permits new base-model records; it never grants mutation of an existing record.
|
|
19
|
+
|
|
20
|
+
Policy validation, row locking, revision checks and canonical writes now run in one acceptance transaction. If any part is denied, the whole bundle rolls back and stays pending. Source evidence and the staged proposal remain available for review. A concurrent committed parent revision causes a stale-bundle failure; the automatic operation cannot adopt partially checked data.
|
|
21
|
+
|
|
22
|
+
## Upgrade and existing data
|
|
23
|
+
|
|
24
|
+
The patch prevents new automatic mutations of protected records. It does not delete or retract claims already accepted by alpha.5. Inspect earlier automatic decisions and any resulting conflicts in your workspace, then use explicit review/correction operations when warranted. Rewriting accepted history without review could discard legitimate business claims.
|
|
25
|
+
|
|
26
|
+
Manual acceptance remains an explicit host-authorized action and may deliberately introduce a reported conflict. Automatic schema publication retains its separately disclosed structural checks and `semanticAccuracyQualified: false`; this patch is not semantic accuracy qualification or full production certification.
|
|
27
|
+
|
|
28
|
+
## Regression coverage
|
|
29
|
+
|
|
30
|
+
`tests/integration/automatic-policy-boundary.test.mjs` covers quotation currency/supplier changes, missing expiry fills, line quantities and price amount/currency, existing extension records, identifier aliases, prior conflicts, mixed-bundle rollback, reference-only retries, concurrent valid commitments, new-base-record permission boundaries and a real PostgreSQL parent-lock/revision race. It checks frozen quotation queries, accepted values, assertions, identifiers, projections and revisions.
|
|
31
|
+
|
|
32
|
+
Existing automatic-evolution tests continue to exercise source/parent limits and strict defaults. Historical benchmark artifacts remain unchanged; new cached replays test that eligible delivery commitments remain usable with the patch.
|
package/docs/QUICKSTART.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Start with Ontave
|
|
2
2
|
|
|
3
|
-
Ontave `0.1.0-alpha.
|
|
3
|
+
Ontave `0.1.0-alpha.6` is a developer preview for Node.js 24 servers. The alpha's open quality gates are recorded in [release status](https://github.com/smileplis/ontave/blob/v0.1.0-alpha.6/docs/RELEASE_STATUS.json).
|
|
4
4
|
|
|
5
5
|
## Install the framework
|
|
6
6
|
|
|
@@ -19,7 +19,7 @@ The package includes the TypeScript declarations, ESM runtime, CLI and internal
|
|
|
19
19
|
With Node.js 24 on macOS or Linux:
|
|
20
20
|
|
|
21
21
|
```sh
|
|
22
|
-
npx --yes ontave@0.1.0-alpha.
|
|
22
|
+
npx --yes ontave@0.1.0-alpha.6 playground --install
|
|
23
23
|
```
|
|
24
24
|
|
|
25
25
|
Open the localhost URL printed by the command. It creates a temporary PostgreSQL instance and restricted role, then uses the actual SDK to exercise source preservation, model evaluation, identity decisions, fact review and accepted-data queries. `--install` explicitly permits downloading optional local tooling. No Docker or model key is needed. Ctrl+C stops the server and removes the temporary database.
|
package/docs/RELEASE_STATUS.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.1.0-alpha.
|
|
2
|
+
"version": "0.1.0-alpha.6",
|
|
3
3
|
"channel": "developer-preview",
|
|
4
4
|
"fullMvpQualified": false,
|
|
5
5
|
"intendedUse": "Developer evaluation of evidence-backed records, local setup and bounded policy-authorized additive adaptation",
|
|
@@ -32,5 +32,10 @@
|
|
|
32
32
|
"manualAdaptationReviews": 0,
|
|
33
33
|
"hostedServiceLaunched": false,
|
|
34
34
|
"productionQualified": false
|
|
35
|
+
},
|
|
36
|
+
"policySafety": {
|
|
37
|
+
"existingRecords": "reference-only on automatic acceptance",
|
|
38
|
+
"atomicValidation": true,
|
|
39
|
+
"previouslyAcceptedConflicts": "require explicit review; no silent history rewrite"
|
|
35
40
|
}
|
|
36
41
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ontave",
|
|
3
|
-
"version": "0.1.0-alpha.
|
|
3
|
+
"version": "0.1.0-alpha.6",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Evidence-backed operational data and governed ontology evolution for TypeScript applications",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -34,7 +34,8 @@
|
|
|
34
34
|
"examples/local",
|
|
35
35
|
"docs/LOCAL_AND_HOSTED.md",
|
|
36
36
|
"docs/ADAPTATION_MILESTONE.md",
|
|
37
|
-
"benchmarks/adaptation-2026-10-23"
|
|
37
|
+
"benchmarks/adaptation-2026-10-23",
|
|
38
|
+
"docs/POLICY_SAFETY.md"
|
|
38
39
|
],
|
|
39
40
|
"exports": {
|
|
40
41
|
".": {
|