@fortemi/core 2026.8.0 → 2026.9.0

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.
Files changed (24) hide show
  1. package/benchmarks/dataset-materialization/small-corpus.v1.json +12 -0
  2. package/dist/index.d.ts +1173 -130
  3. package/dist/index.js +2121 -405
  4. package/dist/index.js.map +1 -1
  5. package/package.json +10 -1
  6. package/schemas/dataset-execution-capabilities/fixtures/browser-local.json +14 -0
  7. package/schemas/dataset-execution-capabilities/fixtures/invalid-field-lineage-without-evidence.json +10 -0
  8. package/schemas/dataset-execution-capabilities/fixtures/invalid-incremental-without-checkpoint.json +10 -0
  9. package/schemas/dataset-execution-capabilities/fixtures/portable-shard.json +12 -0
  10. package/schemas/dataset-execution-capabilities/fixtures/remote-alpha.json +12 -0
  11. package/schemas/dataset-execution-capabilities/fixtures/static-cache.json +12 -0
  12. package/schemas/dataset-execution-capabilities/v1.schema.json +164 -0
  13. package/schemas/dataset-ingest/v1.schema.json +138 -0
  14. package/schemas/dataset-lineage/fixtures/golden-observed-field.json +20 -0
  15. package/schemas/dataset-lineage/v1.schema.json +126 -0
  16. package/schemas/dataset-materialization/fixtures/browser.json +11 -0
  17. package/schemas/dataset-materialization/fixtures/degraded.json +12 -0
  18. package/schemas/dataset-materialization/fixtures/deterministic.json +11 -0
  19. package/schemas/dataset-materialization/fixtures/external-adapter.json +11 -0
  20. package/schemas/dataset-materialization/fixtures/nondeterministic.json +11 -0
  21. package/schemas/dataset-materialization/fixtures/server.json +11 -0
  22. package/schemas/dataset-materialization/fixtures/supported.json +12 -0
  23. package/schemas/dataset-materialization/fixtures/unsupported.json +11 -0
  24. package/schemas/dataset-materialization/v1.schema.json +169 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fortemi/core",
3
- "version": "2026.8.0",
3
+ "version": "2026.9.0",
4
4
  "description": "Browser-only knowledge management core: PGlite (PostgreSQL WASM), MCP tools, hybrid search, and profile-scoped Knowledge Shard interchange.",
5
5
  "keywords": [
6
6
  "fortemi",
@@ -52,12 +52,21 @@
52
52
  "types": "./dist/aiwg-index-shard.d.ts",
53
53
  "import": "./dist/aiwg-index-shard.js"
54
54
  },
55
+ "./schemas/dataset-execution-capabilities/v1": "./schemas/dataset-execution-capabilities/v1.schema.json",
56
+ "./schemas/dataset-ingest/v1": "./schemas/dataset-ingest/v1.schema.json",
57
+ "./schemas/dataset-lineage/v1": "./schemas/dataset-lineage/v1.schema.json",
58
+ "./schemas/dataset-materialization/v1": "./schemas/dataset-materialization/v1.schema.json",
55
59
  "./worker/pglite-worker": "./dist/worker/pglite-worker.js",
56
60
  "./service-worker/sw": "./dist/service-worker/sw.js",
57
61
  "./package.json": "./package.json"
58
62
  },
59
63
  "files": [
60
64
  "dist",
65
+ "schemas/dataset-execution-capabilities",
66
+ "schemas/dataset-ingest",
67
+ "schemas/dataset-lineage",
68
+ "schemas/dataset-materialization",
69
+ "benchmarks/dataset-materialization",
61
70
  "tools",
62
71
  "README.md",
63
72
  "LICENSE"
@@ -0,0 +1,14 @@
1
+ {
2
+ "contract": "fortemi.dataset-execution-capabilities/v1",
3
+ "schemaVersion": "1.0.0",
4
+ "runtime": { "id": "fortemi-browser", "version": "2026.8.0", "plane": "browser-local-archive", "dataClass": "canonical", "maturity": "stable" },
5
+ "guarantees": { "transaction": "atomic-batch", "isolation": "serializable", "durability": "wal", "availability": "local-process", "ordering": "backend-cursor" },
6
+ "capabilities": [
7
+ { "id": "ingest.full", "version": "1.0.0", "status": "supported", "limits": { "maxBatchRecords": 1000, "maxConcurrency": 1 }, "evidence": ["browser-conformance"] },
8
+ { "id": "identity.record", "version": "1.0.0", "status": "supported", "evidence": ["browser-conformance"] },
9
+ { "id": "mutation.upsert", "version": "1.0.0", "status": "supported", "evidence": ["browser-conformance"] },
10
+ { "id": "transaction.atomic-batch", "version": "1.0.0", "status": "supported", "evidence": ["browser-conformance"] },
11
+ { "id": "ordering.deterministic", "version": "1.0.0", "status": "supported", "evidence": ["browser-conformance"] }
12
+ ],
13
+ "evidence": [{ "id": "browser-conformance", "kind": "conformance-report", "uri": "fixture://browser-local" }]
14
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "contract": "fortemi.dataset-execution-capabilities/v1",
3
+ "schemaVersion": "1.0.0",
4
+ "runtime": { "id": "invalid-lineage", "version": "1.0.0", "plane": "portable-shard", "dataClass": "portable-projection", "maturity": "experimental" },
5
+ "guarantees": { "transaction": "none", "isolation": "snapshot", "durability": "filesystem", "availability": "local-process", "ordering": "stable-identity" },
6
+ "capabilities": [
7
+ { "id": "lineage.field", "version": "1.0.0", "status": "supported", "evidence": ["synthetic"] }
8
+ ],
9
+ "evidence": [{ "id": "synthetic", "kind": "fixture", "uri": "fixture://invalid-lineage" }]
10
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "contract": "fortemi.dataset-execution-capabilities/v1",
3
+ "schemaVersion": "1.0.0",
4
+ "runtime": { "id": "invalid-incremental", "version": "1.0.0", "plane": "server-process", "dataClass": "regenerable-index", "maturity": "experimental" },
5
+ "guarantees": { "transaction": "none", "isolation": "none", "durability": "process", "availability": "single-host", "ordering": "unspecified" },
6
+ "capabilities": [
7
+ { "id": "ingest.incremental", "version": "1.0.0", "status": "supported", "evidence": ["synthetic"] }
8
+ ],
9
+ "evidence": [{ "id": "synthetic", "kind": "fixture", "uri": "fixture://invalid-incremental" }]
10
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "contract": "fortemi.dataset-execution-capabilities/v1",
3
+ "schemaVersion": "1.0.0",
4
+ "runtime": { "id": "fortemi-shard", "version": "2026.8.0", "plane": "portable-shard", "dataClass": "portable-projection", "maturity": "stable" },
5
+ "guarantees": { "transaction": "none", "isolation": "snapshot", "durability": "filesystem", "availability": "local-process", "ordering": "stable-identity" },
6
+ "capabilities": [
7
+ { "id": "schema.inspect", "version": "1.0.0", "status": "supported", "evidence": ["shard-fixture"] },
8
+ { "id": "lineage.dataset", "version": "1.0.0", "status": "experimental", "evidence": ["shard-fixture"] },
9
+ { "id": "ordering.deterministic", "version": "1.0.0", "status": "supported", "evidence": ["shard-fixture"] }
10
+ ],
11
+ "evidence": [{ "id": "shard-fixture", "kind": "fixture", "uri": "fixture://portable-shard" }]
12
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "contract": "fortemi.dataset-execution-capabilities/v1",
3
+ "schemaVersion": "1.0.0",
4
+ "runtime": { "id": "fortemi-server", "version": "0.1.0", "plane": "live-remote-persistence", "dataClass": "remote-persistence", "maturity": "alpha" },
5
+ "guarantees": { "transaction": "single-record", "isolation": "none", "durability": "replicated", "availability": "remote-service", "ordering": "backend-cursor" },
6
+ "capabilities": [
7
+ { "id": "ingest.full", "version": "1.0.0", "status": "experimental", "limits": { "maxBatchRecords": 100 }, "evidence": ["server-contract"] },
8
+ { "id": "identity.record", "version": "1.0.0", "status": "experimental", "evidence": ["server-contract"] },
9
+ { "id": "mutation.upsert", "version": "1.0.0", "status": "experimental", "evidence": ["server-contract"] }
10
+ ],
11
+ "evidence": [{ "id": "server-contract", "kind": "fixture", "uri": "fixture://remote-alpha" }]
12
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "contract": "fortemi.dataset-execution-capabilities/v1",
3
+ "schemaVersion": "1.0.0",
4
+ "runtime": { "id": "fortemi-static", "version": "2026.8.0", "plane": "static-cache", "dataClass": "static-cache", "maturity": "stable" },
5
+ "guarantees": { "transaction": "none", "isolation": "snapshot", "durability": "filesystem", "availability": "local-process", "ordering": "stable-identity" },
6
+ "capabilities": [
7
+ { "id": "index.lexical", "version": "1.0.0", "status": "supported", "limits": { "maxPageSize": 1000 }, "evidence": ["static-fixture"] },
8
+ { "id": "pagination.cursor", "version": "1.0.0", "status": "supported", "evidence": ["static-fixture"] },
9
+ { "id": "ordering.deterministic", "version": "1.0.0", "status": "supported", "evidence": ["static-fixture"] }
10
+ ],
11
+ "evidence": [{ "id": "static-fixture", "kind": "fixture", "uri": "fixture://static-cache" }]
12
+ }
@@ -0,0 +1,164 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://fortemi.dev/schemas/dataset-execution-capabilities/v1.schema.json",
4
+ "title": "Fortemi Dataset Execution Capability Contract v1",
5
+ "oneOf": [
6
+ { "$ref": "#/$defs/descriptor" },
7
+ { "$ref": "#/$defs/request" },
8
+ { "$ref": "#/$defs/result" }
9
+ ],
10
+ "$defs": {
11
+ "capabilityId": {
12
+ "enum": [
13
+ "ingest.full", "ingest.snapshot", "ingest.incremental", "ingest.stream",
14
+ "schema.inspect", "identity.stable-revision", "identity.record",
15
+ "mutation.upsert", "mutation.tombstone", "mutation.reconcile",
16
+ "checkpoint.read", "checkpoint.write", "execution.cancel", "rejection.record",
17
+ "index.lexical", "index.chunk", "index.vector", "index.hybrid", "index.rerank",
18
+ "index.graph", "index.community", "lineage.dataset", "lineage.record",
19
+ "lineage.field", "lineage.relationship-evidence", "transaction.atomic-batch",
20
+ "privacy.pre-materialization-filter", "pagination.cursor", "ordering.deterministic"
21
+ ]
22
+ },
23
+ "semver": { "type": "string", "pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+(?:[-+][0-9A-Za-z.-]+)?$" },
24
+ "digest": { "type": "string", "pattern": "^[a-z0-9]+:[a-f0-9]+$" },
25
+ "limits": {
26
+ "type": "object",
27
+ "additionalProperties": false,
28
+ "properties": {
29
+ "maxInputBytes": { "type": "integer", "minimum": 0 },
30
+ "maxRecordBytes": { "type": "integer", "minimum": 0 },
31
+ "maxBatchRecords": { "type": "integer", "minimum": 0 },
32
+ "maxConcurrency": { "type": "integer", "minimum": 0 },
33
+ "maxPageSize": { "type": "integer", "minimum": 0 },
34
+ "maxTraversalDepth": { "type": "integer", "minimum": 0 }
35
+ }
36
+ },
37
+ "evidence": {
38
+ "type": "object",
39
+ "additionalProperties": false,
40
+ "required": ["id", "kind", "uri"],
41
+ "properties": {
42
+ "id": { "type": "string", "minLength": 1 },
43
+ "kind": { "enum": ["fixture", "conformance-report", "live-qualification"] },
44
+ "uri": { "type": "string", "minLength": 1 },
45
+ "digest": { "$ref": "#/$defs/digest" }
46
+ }
47
+ },
48
+ "capability": {
49
+ "type": "object",
50
+ "additionalProperties": false,
51
+ "required": ["id", "version", "status", "evidence"],
52
+ "properties": {
53
+ "id": { "$ref": "#/$defs/capabilityId" },
54
+ "version": { "$ref": "#/$defs/semver" },
55
+ "status": { "enum": ["supported", "experimental", "unsupported"] },
56
+ "limits": { "$ref": "#/$defs/limits" },
57
+ "evidence": { "type": "array", "items": { "type": "string", "minLength": 1 }, "uniqueItems": true }
58
+ }
59
+ },
60
+ "runtime": {
61
+ "type": "object",
62
+ "additionalProperties": false,
63
+ "required": ["id", "version", "plane", "dataClass", "maturity"],
64
+ "properties": {
65
+ "id": { "type": "string", "minLength": 1 },
66
+ "version": { "$ref": "#/$defs/semver" },
67
+ "plane": { "enum": ["browser-local-archive", "static-cache", "portable-shard", "server-process", "live-remote-persistence"] },
68
+ "dataClass": { "enum": ["canonical", "regenerable-index", "static-cache", "portable-projection", "remote-persistence"] },
69
+ "maturity": { "enum": ["experimental", "alpha", "beta", "stable"] }
70
+ }
71
+ },
72
+ "guarantees": {
73
+ "type": "object",
74
+ "additionalProperties": false,
75
+ "required": ["transaction", "isolation", "durability", "availability", "ordering"],
76
+ "properties": {
77
+ "transaction": { "enum": ["none", "single-record", "atomic-batch"] },
78
+ "isolation": { "enum": ["none", "snapshot", "serializable"] },
79
+ "durability": { "enum": ["process", "memory", "filesystem", "wal", "replicated"] },
80
+ "availability": { "enum": ["local-process", "single-host", "remote-service"] },
81
+ "ordering": { "enum": ["unspecified", "stable-identity", "backend-cursor"] }
82
+ }
83
+ },
84
+ "descriptor": {
85
+ "type": "object",
86
+ "additionalProperties": false,
87
+ "required": ["contract", "schemaVersion", "runtime", "guarantees", "capabilities", "evidence"],
88
+ "properties": {
89
+ "contract": { "const": "fortemi.dataset-execution-capabilities/v1" },
90
+ "schemaVersion": { "$ref": "#/$defs/semver" },
91
+ "runtime": { "$ref": "#/$defs/runtime" },
92
+ "guarantees": { "$ref": "#/$defs/guarantees" },
93
+ "capabilities": { "type": "array", "items": { "$ref": "#/$defs/capability" } },
94
+ "evidence": { "type": "array", "items": { "$ref": "#/$defs/evidence" } }
95
+ }
96
+ },
97
+ "requirement": {
98
+ "type": "object",
99
+ "additionalProperties": false,
100
+ "required": ["id"],
101
+ "properties": {
102
+ "id": { "$ref": "#/$defs/capabilityId" },
103
+ "minimumVersion": { "$ref": "#/$defs/semver" },
104
+ "minimumLimits": { "$ref": "#/$defs/limits" }
105
+ }
106
+ },
107
+ "optionalRequirement": {
108
+ "type": "object",
109
+ "additionalProperties": false,
110
+ "required": ["id"],
111
+ "properties": {
112
+ "id": { "$ref": "#/$defs/capabilityId" },
113
+ "minimumVersion": { "$ref": "#/$defs/semver" },
114
+ "minimumLimits": { "$ref": "#/$defs/limits" },
115
+ "fallback": { "type": "array", "items": { "$ref": "#/$defs/capabilityId" }, "uniqueItems": true }
116
+ }
117
+ },
118
+ "request": {
119
+ "type": "object",
120
+ "additionalProperties": false,
121
+ "required": ["contract", "required"],
122
+ "properties": {
123
+ "contract": { "const": "fortemi.dataset-execution-capabilities/v1" },
124
+ "required": { "type": "array", "items": { "$ref": "#/$defs/requirement" } },
125
+ "optional": { "type": "array", "items": { "$ref": "#/$defs/optionalRequirement" } }
126
+ }
127
+ },
128
+ "diagnostic": {
129
+ "type": "object",
130
+ "additionalProperties": false,
131
+ "required": ["code", "message"],
132
+ "properties": {
133
+ "code": { "enum": ["CONTRACT_MAJOR_UNSUPPORTED", "SCHEMA_VERSION_UNSUPPORTED", "DESCRIPTOR_INVALID", "CAPABILITY_DUPLICATE", "CAPABILITY_INCONSISTENT", "REQUIRED_CAPABILITY_MISSING", "CAPABILITY_VERSION_INSUFFICIENT", "CAPABILITY_LIMIT_INSUFFICIENT"] },
134
+ "capability": { "$ref": "#/$defs/capabilityId" },
135
+ "path": { "type": "string" },
136
+ "message": { "type": "string", "minLength": 1 }
137
+ }
138
+ },
139
+ "degradation": {
140
+ "type": "object",
141
+ "additionalProperties": false,
142
+ "required": ["requested", "reason", "changedGuarantees"],
143
+ "properties": {
144
+ "requested": { "$ref": "#/$defs/capabilityId" },
145
+ "selected": { "$ref": "#/$defs/capabilityId" },
146
+ "reason": { "enum": ["unsupported", "version-insufficient", "limit-insufficient"] },
147
+ "changedGuarantees": { "type": "array", "minItems": 1, "items": { "type": "string", "minLength": 1 } }
148
+ }
149
+ },
150
+ "result": {
151
+ "type": "object",
152
+ "additionalProperties": false,
153
+ "required": ["contract", "accepted", "runtime", "selected", "degradations", "diagnostics"],
154
+ "properties": {
155
+ "contract": { "const": "fortemi.dataset-execution-capabilities/v1" },
156
+ "accepted": { "type": "boolean" },
157
+ "runtime": { "$ref": "#/$defs/runtime" },
158
+ "selected": { "type": "array", "items": { "$ref": "#/$defs/capabilityId" }, "uniqueItems": true },
159
+ "degradations": { "type": "array", "items": { "$ref": "#/$defs/degradation" } },
160
+ "diagnostics": { "type": "array", "items": { "$ref": "#/$defs/diagnostic" } }
161
+ }
162
+ }
163
+ }
164
+ }
@@ -0,0 +1,138 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://fortemi.dev/schemas/dataset-ingest/v1.schema.json",
4
+ "title": "Fortemi Dataset Ingest Contract v1",
5
+ "oneOf": [
6
+ { "$ref": "#/$defs/plan" },
7
+ { "$ref": "#/$defs/checkpoint" },
8
+ { "$ref": "#/$defs/batch" },
9
+ { "$ref": "#/$defs/receipt" }
10
+ ],
11
+ "$defs": {
12
+ "semver": { "type": "string", "pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+(?:[-+][0-9A-Za-z.-]+)?$" },
13
+ "digest": { "type": "string", "pattern": "^[a-z0-9]+:[a-f0-9]+$" },
14
+ "contract": { "const": "fortemi.dataset-ingest/v1" },
15
+ "scope": {
16
+ "type": "object",
17
+ "additionalProperties": false,
18
+ "required": ["tenant", "dataset", "sourceBinding", "stream"],
19
+ "properties": {
20
+ "tenant": { "type": "string", "minLength": 1 },
21
+ "dataset": { "type": "string", "minLength": 1 },
22
+ "sourceBinding": { "type": "string", "minLength": 1 },
23
+ "stream": { "type": "string", "minLength": 1 },
24
+ "partition": { "type": "string", "minLength": 1 }
25
+ }
26
+ },
27
+ "checkpoint": {
28
+ "type": "object",
29
+ "additionalProperties": false,
30
+ "required": ["contract", "schemaVersion", "scope", "opaque", "sequence"],
31
+ "properties": {
32
+ "contract": { "$ref": "#/$defs/contract" },
33
+ "schemaVersion": { "$ref": "#/$defs/semver" },
34
+ "scope": { "$ref": "#/$defs/scope" },
35
+ "opaque": { "type": "string", "minLength": 1 },
36
+ "sequence": { "type": "integer", "minimum": 0 }
37
+ }
38
+ },
39
+ "plan": {
40
+ "type": "object",
41
+ "additionalProperties": false,
42
+ "required": ["contract", "schemaVersion", "planId", "planDigest", "sourceRevision", "configurationDigest", "transformationDigest", "destination", "mode", "rejectionPolicy", "reconciliation"],
43
+ "properties": {
44
+ "contract": { "$ref": "#/$defs/contract" },
45
+ "schemaVersion": { "$ref": "#/$defs/semver" },
46
+ "planId": { "type": "string", "minLength": 1 },
47
+ "planDigest": { "$ref": "#/$defs/digest" },
48
+ "sourceRevision": { "type": "string", "minLength": 1 },
49
+ "configurationDigest": { "$ref": "#/$defs/digest" },
50
+ "transformationDigest": { "$ref": "#/$defs/digest" },
51
+ "destination": { "$ref": "#/$defs/scope" },
52
+ "mode": { "enum": ["full", "snapshot", "incremental"] },
53
+ "rejectionPolicy": {
54
+ "type": "object", "additionalProperties": false,
55
+ "required": ["mode", "maxRejectedRecords"],
56
+ "properties": {
57
+ "mode": { "enum": ["fail-fast", "bounded-reject", "dlq"] },
58
+ "maxRejectedRecords": { "type": "integer", "minimum": 0 }
59
+ }
60
+ },
61
+ "reconciliation": {
62
+ "type": "object", "additionalProperties": false,
63
+ "required": ["enabled", "maxTombstones"],
64
+ "properties": {
65
+ "enabled": { "type": "boolean" },
66
+ "maxTombstones": { "type": "integer", "minimum": 0 }
67
+ }
68
+ }
69
+ }
70
+ },
71
+ "mutation": {
72
+ "oneOf": [
73
+ {
74
+ "type": "object", "additionalProperties": false,
75
+ "required": ["operation", "logicalId", "revision", "digest", "value"],
76
+ "properties": {
77
+ "operation": { "const": "upsert" }, "logicalId": { "type": "string", "minLength": 1 },
78
+ "revision": { "type": "string", "minLength": 1 }, "digest": { "$ref": "#/$defs/digest" },
79
+ "value": {}, "locator": { "type": "string", "minLength": 1 }
80
+ }
81
+ },
82
+ {
83
+ "type": "object", "additionalProperties": false,
84
+ "required": ["operation", "logicalId", "revision", "digest"],
85
+ "properties": {
86
+ "operation": { "const": "tombstone" }, "logicalId": { "type": "string", "minLength": 1 },
87
+ "revision": { "type": "string", "minLength": 1 }, "digest": { "$ref": "#/$defs/digest" },
88
+ "locator": { "type": "string", "minLength": 1 }
89
+ }
90
+ }
91
+ ]
92
+ },
93
+ "batch": {
94
+ "type": "object", "additionalProperties": false,
95
+ "required": ["contract", "schemaVersion", "sequence", "mutations", "checkpointAfter"],
96
+ "properties": {
97
+ "contract": { "$ref": "#/$defs/contract" }, "schemaVersion": { "$ref": "#/$defs/semver" },
98
+ "sequence": { "type": "integer", "minimum": 0 }, "idempotencyKey": { "type": "string", "minLength": 1 },
99
+ "mutations": { "type": "array", "items": { "$ref": "#/$defs/mutation" } },
100
+ "checkpointBefore": { "$ref": "#/$defs/checkpoint" }, "checkpointAfter": { "$ref": "#/$defs/checkpoint" },
101
+ "enumeration": {
102
+ "type": "object", "additionalProperties": false, "required": ["complete"],
103
+ "properties": { "complete": { "type": "boolean" }, "approvalId": { "type": "string", "minLength": 1 } }
104
+ }
105
+ }
106
+ },
107
+ "rejection": {
108
+ "type": "object", "additionalProperties": false, "required": ["logicalIdDigest", "code", "message"],
109
+ "properties": {
110
+ "logicalIdDigest": { "$ref": "#/$defs/digest" }, "locator": { "type": "string" },
111
+ "code": { "type": "string", "minLength": 1 }, "message": { "type": "string", "minLength": 1 }
112
+ }
113
+ },
114
+ "effect": {
115
+ "type": "object", "additionalProperties": false, "required": ["operation", "logicalId", "revision", "digest"],
116
+ "properties": {
117
+ "operation": { "enum": ["upsert", "tombstone"] }, "logicalId": { "type": "string", "minLength": 1 },
118
+ "revision": { "type": "string", "minLength": 1 }, "digest": { "$ref": "#/$defs/digest" }
119
+ }
120
+ },
121
+ "receipt": {
122
+ "type": "object", "additionalProperties": false,
123
+ "required": ["contract", "schemaVersion", "runId", "idempotencyKey", "requestDigest", "planId", "planDigest", "sourceRevision", "destination", "mode", "state", "effects", "acceptedRecords", "rejectedRecords", "rejections", "outputDigest", "checkpointAfter", "verification"],
124
+ "properties": {
125
+ "contract": { "$ref": "#/$defs/contract" }, "schemaVersion": { "$ref": "#/$defs/semver" },
126
+ "runId": { "type": "string", "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$" }, "idempotencyKey": { "type": "string", "minLength": 1 },
127
+ "requestDigest": { "$ref": "#/$defs/digest" }, "planId": { "type": "string", "minLength": 1 },
128
+ "planDigest": { "$ref": "#/$defs/digest" }, "sourceRevision": { "type": "string", "minLength": 1 }, "destination": { "$ref": "#/$defs/scope" },
129
+ "mode": { "enum": ["full", "snapshot", "incremental"] }, "state": { "enum": ["committed", "degraded"] },
130
+ "effects": { "type": "array", "items": { "$ref": "#/$defs/effect" } },
131
+ "acceptedRecords": { "type": "integer", "minimum": 0 }, "rejectedRecords": { "type": "integer", "minimum": 0 },
132
+ "rejections": { "type": "array", "items": { "$ref": "#/$defs/rejection" } },
133
+ "outputDigest": { "$ref": "#/$defs/digest" }, "checkpointBefore": { "$ref": "#/$defs/checkpoint" },
134
+ "checkpointAfter": { "$ref": "#/$defs/checkpoint" }, "verification": { "const": "verified" }
135
+ }
136
+ }
137
+ }
138
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "contract": "fortemi.dataset-lineage/v1",
3
+ "schemaVersion": "1.0.0",
4
+ "snapshot": 6,
5
+ "entities": [
6
+ { "id": "field:source", "kind": "field", "schemaId": "urn:example:customer", "schemaVersion": "1.0.0", "createdAt": "2026-09-03T12:00:00.000Z" },
7
+ { "id": "field:target", "kind": "field", "schemaId": "urn:example:customer", "schemaVersion": "1.0.0", "createdAt": "2026-09-03T12:00:00.000Z" }
8
+ ],
9
+ "agents": [{ "id": "agent:fortemi", "kind": "software", "name": "Fortemi", "version": "2026.8.0" }],
10
+ "activities": [{ "id": "activity:run-1", "kind": "transform", "runId": "run:1", "startedAt": "2026-09-03T12:00:00.000Z", "endedAt": "2026-09-03T12:00:00.000Z", "agentIds": ["agent:fortemi"] }],
11
+ "evidence": [{ "id": "evidence:query", "revision": "1", "locator": "shard://runs/run-1/query.json", "digest": "sha256:0000000000000000000000000000000000000000000000000000000000000000", "privacy": "internal", "capturedAt": "2026-09-03T12:00:00.000Z" }],
12
+ "assertions": [{
13
+ "id": "assertion:field", "revision": "1", "relationship": "field-derived-from", "assertionKind": "observed",
14
+ "sourceEntityId": "field:source", "targetEntityId": "field:target", "issuerAgentId": "agent:fortemi", "producingActivityId": "activity:run-1",
15
+ "method": "sql-expression", "evidence": [{ "evidenceId": "evidence:query", "revision": "1", "digest": "sha256:0000000000000000000000000000000000000000000000000000000000000000" }],
16
+ "confidence": 1, "privacy": "internal", "schemaId": "urn:fortemi:lineage-assertion", "schemaVersion": "1.0.0", "assertedAt": "2026-09-03T12:00:00.000Z"
17
+ }],
18
+ "corrections": [],
19
+ "digest": "sha256:0000000000000000000000000000000000000000000000000000000000000000"
20
+ }
@@ -0,0 +1,126 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://fortemi.dev/schemas/dataset-lineage/v1.schema.json",
4
+ "title": "Fortemi Dataset Lineage v1",
5
+ "description": "Canonical evidence-bearing dataset lineage archive, traversal, projection, and loss receipt contracts.",
6
+ "oneOf": [
7
+ { "$ref": "#/$defs/archive" },
8
+ { "$ref": "#/$defs/traversalResult" },
9
+ { "$ref": "#/$defs/projection" },
10
+ { "$ref": "#/$defs/lossReceipt" }
11
+ ],
12
+ "$defs": {
13
+ "id": { "type": "string", "minLength": 1, "pattern": "^\\S(?:.*\\S)?$" },
14
+ "version": { "type": "string", "pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+(?:[-+][0-9A-Za-z.-]+)?$" },
15
+ "digest": { "type": "string", "pattern": "^sha256:[0-9a-f]{64}$" },
16
+ "timestamp": { "type": "string", "format": "date-time", "pattern": "Z$" },
17
+ "privacy": { "enum": ["public", "internal", "confidential", "restricted"] },
18
+ "entityKind": { "enum": ["dataset", "dataset-revision", "distribution", "record", "field", "chunk", "index", "embedding-set", "graph-artifact", "community-artifact", "processing-plan", "run"] },
19
+ "relationshipKind": { "enum": ["derived-from", "field-derived-from", "extracted-from", "chunk-of", "indexed-from", "embedded-from", "graph-derived-from", "community-derived-from", "revision-of", "distributed-as", "join-influence", "filter-influence", "aggregation-influence", "ordering-influence", "similarity-influence"] },
20
+ "entity": {
21
+ "type": "object",
22
+ "additionalProperties": false,
23
+ "required": ["id", "kind", "schemaId", "schemaVersion", "createdAt"],
24
+ "properties": {
25
+ "id": { "$ref": "#/$defs/id" }, "kind": { "$ref": "#/$defs/entityKind" },
26
+ "schemaId": { "$ref": "#/$defs/id" }, "schemaVersion": { "$ref": "#/$defs/version" },
27
+ "revision": { "$ref": "#/$defs/id" }, "datasetId": { "$ref": "#/$defs/id" },
28
+ "createdAt": { "$ref": "#/$defs/timestamp" }, "attributes": { "type": "object" }
29
+ }
30
+ },
31
+ "agent": {
32
+ "type": "object", "additionalProperties": false,
33
+ "required": ["id", "kind", "name"],
34
+ "properties": { "id": { "$ref": "#/$defs/id" }, "kind": { "enum": ["person", "service", "software", "organization"] }, "name": { "$ref": "#/$defs/id" }, "version": { "type": "string", "minLength": 1 } }
35
+ },
36
+ "activity": {
37
+ "type": "object", "additionalProperties": false,
38
+ "required": ["id", "kind", "startedAt", "agentIds"],
39
+ "properties": {
40
+ "id": { "$ref": "#/$defs/id" }, "kind": { "enum": ["ingest", "transform", "index", "query", "export", "import", "correction"] },
41
+ "planId": { "$ref": "#/$defs/id" }, "runId": { "$ref": "#/$defs/id" },
42
+ "startedAt": { "$ref": "#/$defs/timestamp" }, "endedAt": { "$ref": "#/$defs/timestamp" },
43
+ "agentIds": { "type": "array", "items": { "$ref": "#/$defs/id" }, "uniqueItems": true }
44
+ }
45
+ },
46
+ "evidence": {
47
+ "type": "object", "additionalProperties": false,
48
+ "required": ["id", "revision", "locator", "digest", "privacy", "capturedAt"],
49
+ "properties": {
50
+ "id": { "$ref": "#/$defs/id" }, "revision": { "$ref": "#/$defs/id" }, "locator": { "$ref": "#/$defs/id" },
51
+ "digest": { "$ref": "#/$defs/digest" }, "mediaType": { "type": "string", "minLength": 1 },
52
+ "privacy": { "$ref": "#/$defs/privacy" }, "capturedAt": { "$ref": "#/$defs/timestamp" }, "payload": true
53
+ }
54
+ },
55
+ "evidenceReference": {
56
+ "type": "object", "additionalProperties": false,
57
+ "required": ["evidenceId", "revision", "digest"],
58
+ "properties": { "evidenceId": { "$ref": "#/$defs/id" }, "revision": { "$ref": "#/$defs/id" }, "digest": { "$ref": "#/$defs/digest" }, "locator": { "$ref": "#/$defs/id" } }
59
+ },
60
+ "assertion": {
61
+ "type": "object", "additionalProperties": false,
62
+ "required": ["id", "revision", "relationship", "assertionKind", "sourceEntityId", "targetEntityId", "issuerAgentId", "method", "evidence", "confidence", "privacy", "schemaId", "schemaVersion", "assertedAt"],
63
+ "properties": {
64
+ "id": { "$ref": "#/$defs/id" }, "revision": { "$ref": "#/$defs/id" }, "relationship": { "$ref": "#/$defs/relationshipKind" },
65
+ "assertionKind": { "enum": ["declared", "observed"] }, "sourceEntityId": { "$ref": "#/$defs/id" }, "targetEntityId": { "$ref": "#/$defs/id" },
66
+ "issuerAgentId": { "$ref": "#/$defs/id" }, "producingActivityId": { "$ref": "#/$defs/id" }, "method": { "$ref": "#/$defs/id" },
67
+ "evidence": { "type": "array", "items": { "$ref": "#/$defs/evidenceReference" } }, "confidence": { "type": "number", "minimum": 0, "maximum": 1 },
68
+ "privacy": { "$ref": "#/$defs/privacy" }, "schemaId": { "$ref": "#/$defs/id" }, "schemaVersion": { "$ref": "#/$defs/version" }, "assertedAt": { "$ref": "#/$defs/timestamp" }
69
+ },
70
+ "allOf": [{ "if": { "properties": { "assertionKind": { "const": "observed" } }, "required": ["assertionKind"] }, "then": { "required": ["producingActivityId"], "properties": { "producingActivityId": true, "evidence": { "type": "array", "minItems": 1 } } } }]
71
+ },
72
+ "correction": {
73
+ "type": "object", "additionalProperties": false,
74
+ "required": ["id", "assertionId", "assertionRevision", "action", "issuerAgentId", "activityId", "reason", "recordedAt"],
75
+ "properties": {
76
+ "id": { "$ref": "#/$defs/id" }, "assertionId": { "$ref": "#/$defs/id" }, "assertionRevision": { "$ref": "#/$defs/id" }, "action": { "enum": ["correct", "retract", "supersede"] },
77
+ "issuerAgentId": { "$ref": "#/$defs/id" }, "activityId": { "$ref": "#/$defs/id" }, "reason": { "$ref": "#/$defs/id" },
78
+ "recordedAt": { "$ref": "#/$defs/timestamp" }, "replacementAssertionId": { "$ref": "#/$defs/id" }, "replacementRevision": { "$ref": "#/$defs/id" }
79
+ },
80
+ "allOf": [
81
+ { "if": { "properties": { "action": { "enum": ["correct", "supersede"] } }, "required": ["action"] }, "then": { "required": ["replacementAssertionId", "replacementRevision"], "properties": { "replacementAssertionId": true, "replacementRevision": true } } },
82
+ { "if": { "properties": { "action": { "const": "retract" } }, "required": ["action"] }, "then": { "not": { "anyOf": [{ "required": ["replacementAssertionId"] }, { "required": ["replacementRevision"] }] } } }
83
+ ]
84
+ },
85
+ "base": {
86
+ "type": "object",
87
+ "required": ["contract", "schemaVersion"],
88
+ "properties": { "contract": { "const": "fortemi.dataset-lineage/v1" }, "schemaVersion": { "$ref": "#/$defs/version" } }
89
+ },
90
+ "archive": {
91
+ "allOf": [
92
+ { "$ref": "#/$defs/base" },
93
+ { "type": "object", "additionalProperties": false, "required": ["contract", "schemaVersion", "snapshot", "entities", "agents", "activities", "evidence", "assertions", "corrections", "digest"],
94
+ "properties": {
95
+ "contract": true, "schemaVersion": true, "snapshot": { "type": "integer", "minimum": 0 },
96
+ "entities": { "type": "array", "items": { "$ref": "#/$defs/entity" } }, "agents": { "type": "array", "items": { "$ref": "#/$defs/agent" } },
97
+ "activities": { "type": "array", "items": { "$ref": "#/$defs/activity" } }, "evidence": { "type": "array", "items": { "$ref": "#/$defs/evidence" } },
98
+ "assertions": { "type": "array", "items": { "$ref": "#/$defs/assertion" } }, "corrections": { "type": "array", "items": { "$ref": "#/$defs/correction" } }, "digest": { "$ref": "#/$defs/digest" }
99
+ }
100
+ }
101
+ ]
102
+ },
103
+ "traversalNode": { "type": "object", "additionalProperties": false, "required": ["entity", "depth", "pathAssertionIds"], "properties": { "entity": { "$ref": "#/$defs/entity" }, "depth": { "type": "integer", "minimum": 0 }, "pathAssertionIds": { "type": "array", "items": { "$ref": "#/$defs/id" } } } },
104
+ "traversalEdge": { "type": "object", "additionalProperties": false, "required": ["assertion", "status"], "properties": { "assertion": { "$ref": "#/$defs/assertion" }, "status": { "enum": ["active", "corrected", "retracted", "superseded"] }, "evidence": { "type": "array", "items": { "$ref": "#/$defs/evidence" } } } },
105
+ "traversalResult": {
106
+ "allOf": [{ "$ref": "#/$defs/base" }, { "type": "object", "additionalProperties": false, "required": ["contract", "schemaVersion", "snapshot", "nodes", "edges", "truncated"], "properties": {
107
+ "contract": true, "schemaVersion": true, "snapshot": { "type": "integer", "minimum": 0 }, "nodes": { "type": "array", "items": { "$ref": "#/$defs/traversalNode" } },
108
+ "edges": { "type": "array", "items": { "$ref": "#/$defs/traversalEdge" } }, "nextCursor": { "type": "string", "minLength": 1 }, "truncated": { "type": "boolean" }
109
+ } }]
110
+ },
111
+ "loss": { "type": "object", "additionalProperties": false, "required": ["path", "reason", "canonicalDigest"], "properties": { "path": { "type": "string", "pattern": "^/" }, "reason": { "enum": ["unsupported-entity-kind", "unsupported-relationship-kind", "unsupported-assertion-kind", "evidence-omitted", "corrections-omitted"] }, "canonicalDigest": { "$ref": "#/$defs/digest" } } },
112
+ "lossReceipt": {
113
+ "allOf": [{ "$ref": "#/$defs/base" }, { "type": "object", "additionalProperties": false, "required": ["contract", "schemaVersion", "sourceDigest", "projectionDigest", "lossless", "losses"], "properties": {
114
+ "contract": true, "schemaVersion": true, "sourceDigest": { "$ref": "#/$defs/digest" }, "projectionDigest": { "$ref": "#/$defs/digest" }, "lossless": { "type": "boolean" }, "losses": { "type": "array", "items": { "$ref": "#/$defs/loss" } }
115
+ } }]
116
+ },
117
+ "projection": {
118
+ "allOf": [{ "$ref": "#/$defs/base" }, { "type": "object", "additionalProperties": false, "required": ["contract", "schemaVersion", "canonical", "regenerable", "sourceDigest", "entities", "assertions", "evidence", "corrections", "digest", "lossReceipt"], "properties": {
119
+ "contract": true, "schemaVersion": true, "canonical": { "const": false }, "regenerable": { "const": true }, "sourceDigest": { "$ref": "#/$defs/digest" },
120
+ "entities": { "type": "array", "items": { "$ref": "#/$defs/entity" } }, "assertions": { "type": "array", "items": { "$ref": "#/$defs/assertion" } },
121
+ "evidence": { "type": "array", "items": { "$ref": "#/$defs/evidence" } }, "corrections": { "type": "array", "items": { "$ref": "#/$defs/correction" } },
122
+ "digest": { "$ref": "#/$defs/digest" }, "lossReceipt": { "$ref": "#/$defs/lossReceipt" }
123
+ } }]
124
+ }
125
+ }
126
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "contract": "fortemi.dataset-materialization-profile/v1", "schemaVersion": "1.0.0",
3
+ "id": "fortemi.browser.vector", "version": "1.0.0", "kind": "vector", "status": "supported",
4
+ "operations": ["build", "query"], "inputTypes": ["text/plain"],
5
+ "implementation": { "id": "transformers-js", "version": "3.0.0", "digest": "sha256:6666666666666666666666666666666666666666666666666666666666666666", "model": { "id": "local-mini", "version": "1", "digest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb" } },
6
+ "configurationSchema": { "type": "object" }, "requiredRuntimeCapabilities": [{ "id": "index.vector" }],
7
+ "determinism": { "class": "deterministic" },
8
+ "privacy": { "behavior": "local-only", "authorizationRequired": true, "filtersBefore": ["chunking", "model-invocation", "index-persistence"] },
9
+ "resourceLimits": { "maxInputBytes": 1048576, "maxRecords": 500, "maxConcurrency": 1, "maxMemoryBytes": 536870912 },
10
+ "output": { "dataClass": "regenerable-index", "canonicalMutation": false }
11
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "contract": "fortemi.dataset-materialization-profile/v1", "schemaVersion": "1.0.0",
3
+ "id": "fortemi.hybrid.preferred", "version": "1.0.0", "kind": "hybrid", "status": "supported",
4
+ "operations": ["query"], "inputTypes": ["application/fortemi-index"],
5
+ "implementation": { "id": "fortemi-hybrid", "version": "2026.8.0", "digest": "sha256:3333333333333333333333333333333333333333333333333333333333333333" },
6
+ "configurationSchema": { "type": "object" }, "requiredRuntimeCapabilities": [{ "id": "index.hybrid" }],
7
+ "optionalRuntimeCapabilities": [{ "id": "index.rerank", "fallback": ["index.lexical"] }],
8
+ "determinism": { "class": "deterministic" },
9
+ "privacy": { "behavior": "local-only", "authorizationRequired": true, "filtersBefore": ["chunking", "model-invocation", "index-persistence"] },
10
+ "resourceLimits": { "maxInputBytes": 1048576, "maxRecords": 1000, "maxConcurrency": 1 },
11
+ "output": { "dataClass": "regenerable-index", "canonicalMutation": false }
12
+ }