@fortemi/core 2026.7.15 → 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.
- package/README.md +3 -1
- package/benchmarks/dataset-materialization/small-corpus.v1.json +12 -0
- package/dist/index.d.ts +1379 -130
- package/dist/index.js +3180 -425
- package/dist/index.js.map +1 -1
- package/package.json +10 -1
- package/schemas/dataset-execution-capabilities/fixtures/browser-local.json +14 -0
- package/schemas/dataset-execution-capabilities/fixtures/invalid-field-lineage-without-evidence.json +10 -0
- package/schemas/dataset-execution-capabilities/fixtures/invalid-incremental-without-checkpoint.json +10 -0
- package/schemas/dataset-execution-capabilities/fixtures/portable-shard.json +12 -0
- package/schemas/dataset-execution-capabilities/fixtures/remote-alpha.json +12 -0
- package/schemas/dataset-execution-capabilities/fixtures/static-cache.json +12 -0
- package/schemas/dataset-execution-capabilities/v1.schema.json +164 -0
- package/schemas/dataset-ingest/v1.schema.json +138 -0
- package/schemas/dataset-lineage/fixtures/golden-observed-field.json +20 -0
- package/schemas/dataset-lineage/v1.schema.json +126 -0
- package/schemas/dataset-materialization/fixtures/browser.json +11 -0
- package/schemas/dataset-materialization/fixtures/degraded.json +12 -0
- package/schemas/dataset-materialization/fixtures/deterministic.json +11 -0
- package/schemas/dataset-materialization/fixtures/external-adapter.json +11 -0
- package/schemas/dataset-materialization/fixtures/nondeterministic.json +11 -0
- package/schemas/dataset-materialization/fixtures/server.json +11 -0
- package/schemas/dataset-materialization/fixtures/supported.json +12 -0
- package/schemas/dataset-materialization/fixtures/unsupported.json +11 -0
- 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.
|
|
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
|
+
}
|
package/schemas/dataset-execution-capabilities/fixtures/invalid-field-lineage-without-evidence.json
ADDED
|
@@ -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
|
+
}
|
package/schemas/dataset-execution-capabilities/fixtures/invalid-incremental-without-checkpoint.json
ADDED
|
@@ -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
|
+
}
|