@fortemi/core 2026.7.13 → 2026.7.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -167,6 +167,16 @@ attachment byte, and can add an Ed25519 publisher signature. Live values that
167
167
  cannot satisfy the authority schema, including non-768-dimensional embedding
168
168
  vectors, return `archive: null` with a typed capability loss.
169
169
 
170
+ PGlite advertises exact `2.0.0/full-v1` import and export only because
171
+ `schemas/knowledge-shard-v2.cross-repository.receipt.json` binds the released
172
+ PGlite and AIWG archives to clean repeated PGlite and Fortemi destinations,
173
+ complete per-cell semantic/rejection coverage, immutable package and authority
174
+ identities, and delivered CI. Advertisement is computed from that receipt at
175
+ runtime; drifting any bound authority, archive, implementation, or Fortemi
176
+ receipt disables the claim, while the verifier requires the packaged receipt
177
+ bytes to match their declared digests. RecordStore remains `record-v1` only.
178
+ This receipt does not establish suite-wide portability or complete backup.
179
+
170
180
  Knowledge Shard 2.0 treats absent, `null`, empty, and non-empty values as
171
181
  distinct authority states. PGlite persists `core-v1` field presence in a
172
182
  transactional sidecar, while RecordStore carries its `record-v1` projection and
@@ -194,8 +204,16 @@ can also read optional rich fields from full records:
194
204
  These fields are additive to `aiwg.fortemi.index.record.v1`. Version 2 records
195
205
  can also carry AIWG migration fields such as `search`, `chunks`, `embeddings`,
196
206
  `source.origin`, `source.generated`, `source.checksum`, `source.updated_at`,
197
- `privacy.locality`, and compatibility metadata. Query helpers use v2 `search`
198
- and `chunks` text when the old top-level `title`/`text` fields are absent.
207
+ `privacy.locality`, `operational_state`, `state_transfer`, and compatibility
208
+ metadata. Query helpers use v2 `search` and `chunks` text when the old top-level
209
+ `title`/`text` fields are absent.
210
+
211
+ The reduced `core-v1` converter maps directory prefixes from
212
+ `source.repo_relative_path` to deterministic native collections and assigns
213
+ each note to the leaf collection. A note tombstone is emitted only from an
214
+ explicit `state_transfer.deleted_at`; `operational_state` remains provenance
215
+ about an observed external system and never implies deletion. The full source
216
+ record remains embedded in note metadata for reverse conversion.
199
217
  Existing consumers can ignore the v2 fields and continue querying the flat
200
218
  fields. Chunked indexes with a projection keep rich metadata in detail records;
201
219
  call `getRecord(id)` before rendering a metadata panel.
@@ -171,6 +171,12 @@ var aiwg_fortemi_index_export_schema_default = {
171
171
  },
172
172
  {
173
173
  required: ["provenance_events"]
174
+ },
175
+ {
176
+ required: ["operational_state"]
177
+ },
178
+ {
179
+ required: ["state_transfer"]
174
180
  }
175
181
  ]
176
182
  },
@@ -626,11 +632,54 @@ var aiwg_fortemi_index_export_schema_default = {
626
632
  }
627
633
  }
628
634
  },
635
+ operational_state: {
636
+ $ref: "#/$defs/operationalState"
637
+ },
638
+ state_transfer: {
639
+ $ref: "#/$defs/stateTransfer"
640
+ },
629
641
  updated_at: {
630
642
  type: "string",
631
643
  format: "date-time"
632
644
  }
633
645
  }
646
+ },
647
+ operationalState: {
648
+ type: "object",
649
+ additionalProperties: false,
650
+ required: ["classification"],
651
+ properties: {
652
+ source_repo: { type: "string", minLength: 1 },
653
+ source_kind: { type: "string", minLength: 1 },
654
+ source_id: { type: "string", minLength: 1 },
655
+ observed_state: { type: "string", minLength: 1 },
656
+ observed_at: { type: "string", format: "date-time" },
657
+ source_updated_at: { type: "string", format: "date-time" },
658
+ evidence_url: { type: "string", format: "uri" },
659
+ evidence_path: { type: "string", minLength: 1 },
660
+ observer: { type: "string", minLength: 1 },
661
+ supersedes: { $ref: "#/$defs/stringArray" },
662
+ contradicts: { $ref: "#/$defs/stringArray" },
663
+ stale_after: { type: "string", format: "date-time" },
664
+ classification: {
665
+ enum: ["fresh", "historical", "superseded", "contradicted", "needs-source"]
666
+ },
667
+ confidence: {
668
+ enum: ["source", "candidate", "reviewed", "rejected"]
669
+ },
670
+ current_action_selector: { type: "boolean" }
671
+ }
672
+ },
673
+ stateTransfer: {
674
+ type: "object",
675
+ additionalProperties: false,
676
+ required: ["deleted_at"],
677
+ properties: {
678
+ deleted_at: {
679
+ type: ["string", "null"],
680
+ format: "date-time"
681
+ }
682
+ }
634
683
  }
635
684
  }
636
685
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../schemas/aiwg-fortemi-index-export.schema.json","../src/aiwg-index-schema.ts"],"names":[],"mappings":"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","file":"aiwg-index-schema.js","sourcesContent":["{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"$id\": \"https://aiwg.io/schemas/aiwg-fortemi-index-export.json\",\n \"title\": \"AIWG Fortemi Index Export\",\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"schema_version\", \"generated_at\", \"source\", \"items\"],\n \"properties\": {\n \"schema_version\": {\n \"enum\": [\"aiwg.fortemi.index.export.v1\", \"aiwg.fortemi.index.export.v2\"]\n },\n \"generated_at\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"source\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"repo\", \"privacy\"],\n \"properties\": {\n \"repo\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"privacy\": {\n \"$ref\": \"#/$defs/privacy\"\n },\n \"graph\": {\n \"type\": \"string\",\n \"minLength\": 1\n }\n }\n },\n \"compatibility\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"previous_schema_version\", \"strategy\"],\n \"properties\": {\n \"previous_schema_version\": {\n \"const\": \"aiwg.fortemi.index.export.v1\"\n },\n \"strategy\": {\n \"const\": \"supported\"\n }\n }\n },\n \"items\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/record\"\n }\n }\n },\n \"allOf\": [\n {\n \"if\": {\n \"properties\": {\n \"schema_version\": {\n \"const\": \"aiwg.fortemi.index.export.v1\"\n }\n }\n },\n \"then\": {\n \"not\": {\n \"required\": [\"compatibility\"]\n },\n \"properties\": {\n \"source\": {\n \"not\": {\n \"required\": [\"graph\"]\n }\n },\n \"items\": {\n \"items\": {\n \"allOf\": [\n {\n \"properties\": {\n \"schema_version\": {\n \"const\": \"aiwg.fortemi.index.record.v1\"\n }\n }\n },\n {\n \"$ref\": \"#/$defs/v1RecordCompatibility\"\n }\n ]\n }\n }\n }\n }\n },\n {\n \"if\": {\n \"properties\": {\n \"schema_version\": {\n \"const\": \"aiwg.fortemi.index.export.v2\"\n }\n }\n },\n \"then\": {\n \"required\": [\"compatibility\"],\n \"properties\": {\n \"source\": {\n \"required\": [\"graph\"]\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"schema_version\": {\n \"const\": \"aiwg.fortemi.index.record.v2\"\n }\n }\n }\n }\n }\n }\n }\n ],\n \"$defs\": {\n \"privacy\": {\n \"enum\": [\"private\", \"sanitized\", \"public\"]\n },\n \"recordType\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"stringArray\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"numberArray\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"number\"\n }\n },\n \"v1RecordCompatibility\": {\n \"type\": \"object\",\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\"name\"]\n },\n {\n \"required\": [\"summary\"]\n },\n {\n \"required\": [\"search\"]\n },\n {\n \"required\": [\"chunks\"]\n },\n {\n \"required\": [\"embeddings\"]\n },\n {\n \"required\": [\"compatibility\"]\n },\n {\n \"required\": [\"skos_concepts\"]\n },\n {\n \"required\": [\"skos_relations\"]\n },\n {\n \"required\": [\"provenance_events\"]\n }\n ]\n },\n \"properties\": {\n \"source\": {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\"origin\"]\n },\n {\n \"required\": [\"generated\"]\n },\n {\n \"required\": [\"checksum\"]\n },\n {\n \"required\": [\"updated_at\"]\n }\n ]\n }\n },\n \"relationships\": {\n \"items\": {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\"target_path\"]\n },\n {\n \"required\": [\"direction\"]\n },\n {\n \"required\": [\"label\"]\n },\n {\n \"required\": [\"confidence\"]\n },\n {\n \"required\": [\"privacy\"]\n },\n {\n \"required\": [\"metadata\"]\n }\n ]\n }\n }\n },\n \"privacy\": {\n \"not\": {\n \"required\": [\"locality\"]\n }\n }\n }\n },\n \"record\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\n \"schema_version\",\n \"id\",\n \"type\",\n \"source\",\n \"title\",\n \"text\",\n \"facets\",\n \"tags\",\n \"concepts\",\n \"relationships\",\n \"provenance\",\n \"privacy\",\n \"updated_at\"\n ],\n \"properties\": {\n \"schema_version\": {\n \"enum\": [\n \"aiwg.fortemi.index.record.v1\",\n \"aiwg.fortemi.index.record.v2\"\n ]\n },\n \"id\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"type\": {\n \"$ref\": \"#/$defs/recordType\"\n },\n \"source\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"path\", \"repo_relative_path\", \"locator\"],\n \"properties\": {\n \"path\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"repo_relative_path\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"locator\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"origin\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"generated\": {\n \"type\": \"boolean\"\n },\n \"checksum\": {\n \"type\": \"string\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n }\n }\n },\n \"title\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"summary\": {\n \"type\": \"string\"\n },\n \"text\": {\n \"type\": \"string\"\n },\n \"search\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\n \"title\",\n \"body\",\n \"triggers\",\n \"aliases\",\n \"tags\",\n \"frontmatter\"\n ],\n \"properties\": {\n \"title\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"summary\": {\n \"type\": \"string\"\n },\n \"body\": {\n \"type\": \"string\"\n },\n \"triggers\": {\n \"$ref\": \"#/$defs/stringArray\"\n },\n \"aliases\": {\n \"$ref\": \"#/$defs/stringArray\"\n },\n \"capability\": {\n \"type\": \"string\"\n },\n \"tags\": {\n \"$ref\": \"#/$defs/stringArray\"\n },\n \"phase\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"frontmatter\": {\n \"type\": \"object\"\n }\n }\n },\n \"facets\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/$defs/stringArray\"\n }\n },\n \"tags\": {\n \"$ref\": \"#/$defs/stringArray\"\n },\n \"concepts\": {\n \"$ref\": \"#/$defs/stringArray\"\n },\n \"relationships\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"type\", \"target_id\"],\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"target_id\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"source_path\": {\n \"type\": \"string\"\n },\n \"target_path\": {\n \"type\": \"string\"\n },\n \"direction\": {\n \"enum\": [\"upstream\", \"downstream\", \"related\"]\n },\n \"label\": {\n \"type\": \"string\"\n },\n \"confidence\": {\n \"type\": \"number\"\n },\n \"privacy\": {\n \"$ref\": \"#/$defs/privacy\"\n },\n \"metadata\": {\n \"type\": \"object\"\n }\n }\n }\n },\n \"provenance\": {\n \"type\": \"array\",\n \"minItems\": 1,\n \"items\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"field\", \"source\", \"path\", \"confidence\", \"privacy\"],\n \"properties\": {\n \"field\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"source\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"path\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"confidence\": {\n \"enum\": [\"source\", \"candidate\", \"reviewed\", \"rejected\"]\n },\n \"privacy\": {\n \"$ref\": \"#/$defs/privacy\"\n }\n }\n }\n },\n \"privacy\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"classification\", \"pii\"],\n \"properties\": {\n \"classification\": {\n \"$ref\": \"#/$defs/privacy\"\n },\n \"pii\": {\n \"type\": \"boolean\"\n },\n \"locality\": {\n \"enum\": [\"project\", \"framework\", \"external\"]\n }\n }\n },\n \"chunks\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"text\": {\n \"type\": \"string\"\n },\n \"body\": {\n \"type\": \"string\"\n },\n \"summary\": {\n \"type\": \"string\"\n },\n \"source_path\": {\n \"type\": \"string\"\n },\n \"metadata\": {\n \"type\": \"object\"\n },\n \"checksum\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"embeddings\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"model\": {\n \"type\": \"string\"\n },\n \"embedding\": {\n \"$ref\": \"#/$defs/numberArray\"\n },\n \"vector\": {\n \"$ref\": \"#/$defs/numberArray\"\n },\n \"granularity\": {\n \"type\": \"string\"\n },\n \"source_path\": {\n \"type\": \"string\"\n },\n \"metadata\": {\n \"type\": \"object\"\n },\n \"chunk_id\": {\n \"type\": \"string\"\n },\n \"vector_ref\": {\n \"type\": \"string\"\n },\n \"input_hash\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"compatibility\": {\n \"type\": \"object\"\n },\n \"skos_concepts\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"id\", \"prefLabel\"],\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"prefLabel\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"definition\": {\n \"type\": \"string\"\n },\n \"scheme\": {\n \"type\": \"string\"\n },\n \"notation\": {\n \"type\": \"string\"\n },\n \"uri\": {\n \"type\": \"string\"\n },\n \"altLabels\": {\n \"$ref\": \"#/$defs/stringArray\"\n },\n \"metadata\": {\n \"type\": \"object\"\n }\n }\n }\n },\n \"skos_relations\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"type\", \"source_id\", \"target_id\"],\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"source_id\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"target_id\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"source_path\": {\n \"type\": \"string\"\n },\n \"metadata\": {\n \"type\": \"object\"\n }\n }\n }\n },\n \"provenance_events\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"activity\"],\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"activity\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"agent\": {\n \"type\": \"string\"\n },\n \"started_at\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"ended_at\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"source\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"confidence\": {\n \"enum\": [\"source\", \"candidate\", \"reviewed\", \"rejected\"]\n },\n \"privacy\": {\n \"$ref\": \"#/$defs/privacy\"\n },\n \"attributes\": {\n \"type\": \"object\"\n }\n }\n }\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n }\n }\n }\n }\n}\n","import Ajv2020 from 'ajv/dist/2020.js'\nimport type { ErrorObject, ValidateFunction } from 'ajv'\nimport schema from '../schemas/aiwg-fortemi-index-export.schema.json' with { type: 'json' }\n\nexport interface AiwgIndexSchemaValidationResult {\n valid: boolean\n errors: string[]\n}\n\nconst PROJECTED_FIELDS = [\n 'schema_version',\n 'id',\n 'type',\n 'title',\n 'text',\n 'facets',\n 'tags',\n 'concepts',\n 'privacy',\n] as const\n\nlet ajvInstance: Ajv2020 | undefined\nlet exportValidator: ValidateFunction | undefined\nlet projectedRecordValidator: ValidateFunction | undefined\n\nexport function getAiwgFortemiIndexExportSchema(): unknown {\n return schema\n}\n\nfunction getAjv(): Ajv2020 {\n if (!ajvInstance) {\n ajvInstance = new Ajv2020({\n allErrors: true,\n strict: false,\n validateFormats: false,\n })\n ajvInstance.addSchema(schema)\n }\n return ajvInstance\n}\n\nfunction formatErrors(errors: ErrorObject[] | null | undefined): string[] {\n return (errors ?? []).map((error) => {\n const path = error.instancePath || '(root)'\n return `${path} ${error.message ?? 'is invalid'}`\n })\n}\n\nfunction getExportValidator(): ValidateFunction {\n exportValidator ??= getAjv().getSchema(schema.$id) ?? getAjv().compile(schema)\n return exportValidator\n}\n\nfunction getProjectedRecordValidator(): ValidateFunction {\n if (!projectedRecordValidator) {\n const properties = Object.fromEntries(Object.keys(schema.$defs.record.properties).map((field) => [\n field,\n { $ref: `${schema.$id}#/$defs/record/properties/${field}` },\n ]))\n projectedRecordValidator = getAjv().compile({\n type: 'object',\n required: PROJECTED_FIELDS,\n properties,\n additionalProperties: true,\n allOf: [\n {\n if: {\n properties: {\n schema_version: { const: 'aiwg.fortemi.index.record.v1' },\n },\n },\n then: { $ref: `${schema.$id}#/$defs/v1RecordCompatibility` },\n },\n ],\n })\n }\n return projectedRecordValidator\n}\n\nexport function validateAiwgFortemiIndexExportSchema(value: unknown): AiwgIndexSchemaValidationResult {\n const validate = getExportValidator()\n // `binary_sources` is a documented fortemi-react attachment-text extension;\n // upstream intentionally omits it. Validate every upstream field against the\n // pinned authority while keeping that local extension out of the schema input.\n const schemaValue = value && typeof value === 'object' && Array.isArray((value as { items?: unknown }).items)\n ? {\n ...(value as Record<string, unknown>),\n items: (value as { items: unknown[] }).items.map((item) => {\n if (!item || typeof item !== 'object' || Array.isArray(item)) return item\n const schemaRecord = { ...(item as Record<string, unknown>) }\n Reflect.deleteProperty(schemaRecord, 'binary_sources')\n return schemaRecord\n }),\n }\n : value\n const valid = validate(schemaValue)\n return { valid, errors: formatErrors(validate.errors) }\n}\n\nexport function validateAiwgFortemiProjectedRecordSchema(value: unknown): AiwgIndexSchemaValidationResult {\n const validate = getProjectedRecordValidator()\n const valid = validate(value)\n return { valid, errors: formatErrors(validate.errors) }\n}\n"]}
1
+ {"version":3,"sources":["../schemas/aiwg-fortemi-index-export.schema.json","../src/aiwg-index-schema.ts"],"names":[],"mappings":"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","file":"aiwg-index-schema.js","sourcesContent":["{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"$id\": \"https://aiwg.io/schemas/aiwg-fortemi-index-export.json\",\n \"title\": \"AIWG Fortemi Index Export\",\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"schema_version\", \"generated_at\", \"source\", \"items\"],\n \"properties\": {\n \"schema_version\": {\n \"enum\": [\"aiwg.fortemi.index.export.v1\", \"aiwg.fortemi.index.export.v2\"]\n },\n \"generated_at\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"source\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"repo\", \"privacy\"],\n \"properties\": {\n \"repo\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"privacy\": {\n \"$ref\": \"#/$defs/privacy\"\n },\n \"graph\": {\n \"type\": \"string\",\n \"minLength\": 1\n }\n }\n },\n \"compatibility\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"previous_schema_version\", \"strategy\"],\n \"properties\": {\n \"previous_schema_version\": {\n \"const\": \"aiwg.fortemi.index.export.v1\"\n },\n \"strategy\": {\n \"const\": \"supported\"\n }\n }\n },\n \"items\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/$defs/record\"\n }\n }\n },\n \"allOf\": [\n {\n \"if\": {\n \"properties\": {\n \"schema_version\": {\n \"const\": \"aiwg.fortemi.index.export.v1\"\n }\n }\n },\n \"then\": {\n \"not\": {\n \"required\": [\"compatibility\"]\n },\n \"properties\": {\n \"source\": {\n \"not\": {\n \"required\": [\"graph\"]\n }\n },\n \"items\": {\n \"items\": {\n \"allOf\": [\n {\n \"properties\": {\n \"schema_version\": {\n \"const\": \"aiwg.fortemi.index.record.v1\"\n }\n }\n },\n {\n \"$ref\": \"#/$defs/v1RecordCompatibility\"\n }\n ]\n }\n }\n }\n }\n },\n {\n \"if\": {\n \"properties\": {\n \"schema_version\": {\n \"const\": \"aiwg.fortemi.index.export.v2\"\n }\n }\n },\n \"then\": {\n \"required\": [\"compatibility\"],\n \"properties\": {\n \"source\": {\n \"required\": [\"graph\"]\n },\n \"items\": {\n \"items\": {\n \"properties\": {\n \"schema_version\": {\n \"const\": \"aiwg.fortemi.index.record.v2\"\n }\n }\n }\n }\n }\n }\n }\n ],\n \"$defs\": {\n \"privacy\": {\n \"enum\": [\"private\", \"sanitized\", \"public\"]\n },\n \"recordType\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"stringArray\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"numberArray\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"number\"\n }\n },\n \"v1RecordCompatibility\": {\n \"type\": \"object\",\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\"name\"]\n },\n {\n \"required\": [\"summary\"]\n },\n {\n \"required\": [\"search\"]\n },\n {\n \"required\": [\"chunks\"]\n },\n {\n \"required\": [\"embeddings\"]\n },\n {\n \"required\": [\"compatibility\"]\n },\n {\n \"required\": [\"skos_concepts\"]\n },\n {\n \"required\": [\"skos_relations\"]\n },\n {\n \"required\": [\"provenance_events\"]\n },\n {\n \"required\": [\"operational_state\"]\n },\n {\n \"required\": [\"state_transfer\"]\n }\n ]\n },\n \"properties\": {\n \"source\": {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\"origin\"]\n },\n {\n \"required\": [\"generated\"]\n },\n {\n \"required\": [\"checksum\"]\n },\n {\n \"required\": [\"updated_at\"]\n }\n ]\n }\n },\n \"relationships\": {\n \"items\": {\n \"not\": {\n \"anyOf\": [\n {\n \"required\": [\"target_path\"]\n },\n {\n \"required\": [\"direction\"]\n },\n {\n \"required\": [\"label\"]\n },\n {\n \"required\": [\"confidence\"]\n },\n {\n \"required\": [\"privacy\"]\n },\n {\n \"required\": [\"metadata\"]\n }\n ]\n }\n }\n },\n \"privacy\": {\n \"not\": {\n \"required\": [\"locality\"]\n }\n }\n }\n },\n \"record\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\n \"schema_version\",\n \"id\",\n \"type\",\n \"source\",\n \"title\",\n \"text\",\n \"facets\",\n \"tags\",\n \"concepts\",\n \"relationships\",\n \"provenance\",\n \"privacy\",\n \"updated_at\"\n ],\n \"properties\": {\n \"schema_version\": {\n \"enum\": [\n \"aiwg.fortemi.index.record.v1\",\n \"aiwg.fortemi.index.record.v2\"\n ]\n },\n \"id\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"type\": {\n \"$ref\": \"#/$defs/recordType\"\n },\n \"source\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"path\", \"repo_relative_path\", \"locator\"],\n \"properties\": {\n \"path\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"repo_relative_path\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"locator\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"origin\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"generated\": {\n \"type\": \"boolean\"\n },\n \"checksum\": {\n \"type\": \"string\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n }\n }\n },\n \"title\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"summary\": {\n \"type\": \"string\"\n },\n \"text\": {\n \"type\": \"string\"\n },\n \"search\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\n \"title\",\n \"body\",\n \"triggers\",\n \"aliases\",\n \"tags\",\n \"frontmatter\"\n ],\n \"properties\": {\n \"title\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"summary\": {\n \"type\": \"string\"\n },\n \"body\": {\n \"type\": \"string\"\n },\n \"triggers\": {\n \"$ref\": \"#/$defs/stringArray\"\n },\n \"aliases\": {\n \"$ref\": \"#/$defs/stringArray\"\n },\n \"capability\": {\n \"type\": \"string\"\n },\n \"tags\": {\n \"$ref\": \"#/$defs/stringArray\"\n },\n \"phase\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"frontmatter\": {\n \"type\": \"object\"\n }\n }\n },\n \"facets\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/$defs/stringArray\"\n }\n },\n \"tags\": {\n \"$ref\": \"#/$defs/stringArray\"\n },\n \"concepts\": {\n \"$ref\": \"#/$defs/stringArray\"\n },\n \"relationships\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"type\", \"target_id\"],\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"target_id\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"source_path\": {\n \"type\": \"string\"\n },\n \"target_path\": {\n \"type\": \"string\"\n },\n \"direction\": {\n \"enum\": [\"upstream\", \"downstream\", \"related\"]\n },\n \"label\": {\n \"type\": \"string\"\n },\n \"confidence\": {\n \"type\": \"number\"\n },\n \"privacy\": {\n \"$ref\": \"#/$defs/privacy\"\n },\n \"metadata\": {\n \"type\": \"object\"\n }\n }\n }\n },\n \"provenance\": {\n \"type\": \"array\",\n \"minItems\": 1,\n \"items\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"field\", \"source\", \"path\", \"confidence\", \"privacy\"],\n \"properties\": {\n \"field\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"source\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"path\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"confidence\": {\n \"enum\": [\"source\", \"candidate\", \"reviewed\", \"rejected\"]\n },\n \"privacy\": {\n \"$ref\": \"#/$defs/privacy\"\n }\n }\n }\n },\n \"privacy\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"classification\", \"pii\"],\n \"properties\": {\n \"classification\": {\n \"$ref\": \"#/$defs/privacy\"\n },\n \"pii\": {\n \"type\": \"boolean\"\n },\n \"locality\": {\n \"enum\": [\"project\", \"framework\", \"external\"]\n }\n }\n },\n \"chunks\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"text\": {\n \"type\": \"string\"\n },\n \"body\": {\n \"type\": \"string\"\n },\n \"summary\": {\n \"type\": \"string\"\n },\n \"source_path\": {\n \"type\": \"string\"\n },\n \"metadata\": {\n \"type\": \"object\"\n },\n \"checksum\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"embeddings\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"model\": {\n \"type\": \"string\"\n },\n \"embedding\": {\n \"$ref\": \"#/$defs/numberArray\"\n },\n \"vector\": {\n \"$ref\": \"#/$defs/numberArray\"\n },\n \"granularity\": {\n \"type\": \"string\"\n },\n \"source_path\": {\n \"type\": \"string\"\n },\n \"metadata\": {\n \"type\": \"object\"\n },\n \"chunk_id\": {\n \"type\": \"string\"\n },\n \"vector_ref\": {\n \"type\": \"string\"\n },\n \"input_hash\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"compatibility\": {\n \"type\": \"object\"\n },\n \"skos_concepts\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"id\", \"prefLabel\"],\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"prefLabel\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"definition\": {\n \"type\": \"string\"\n },\n \"scheme\": {\n \"type\": \"string\"\n },\n \"notation\": {\n \"type\": \"string\"\n },\n \"uri\": {\n \"type\": \"string\"\n },\n \"altLabels\": {\n \"$ref\": \"#/$defs/stringArray\"\n },\n \"metadata\": {\n \"type\": \"object\"\n }\n }\n }\n },\n \"skos_relations\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"type\", \"source_id\", \"target_id\"],\n \"properties\": {\n \"type\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"source_id\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"target_id\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"source_path\": {\n \"type\": \"string\"\n },\n \"metadata\": {\n \"type\": \"object\"\n }\n }\n }\n },\n \"provenance_events\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"activity\"],\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"activity\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"agent\": {\n \"type\": \"string\"\n },\n \"started_at\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"ended_at\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"source\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"confidence\": {\n \"enum\": [\"source\", \"candidate\", \"reviewed\", \"rejected\"]\n },\n \"privacy\": {\n \"$ref\": \"#/$defs/privacy\"\n },\n \"attributes\": {\n \"type\": \"object\"\n }\n }\n }\n },\n \"operational_state\": {\n \"$ref\": \"#/$defs/operationalState\"\n },\n \"state_transfer\": {\n \"$ref\": \"#/$defs/stateTransfer\"\n },\n \"updated_at\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n }\n }\n },\n \"operationalState\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"classification\"],\n \"properties\": {\n \"source_repo\": { \"type\": \"string\", \"minLength\": 1 },\n \"source_kind\": { \"type\": \"string\", \"minLength\": 1 },\n \"source_id\": { \"type\": \"string\", \"minLength\": 1 },\n \"observed_state\": { \"type\": \"string\", \"minLength\": 1 },\n \"observed_at\": { \"type\": \"string\", \"format\": \"date-time\" },\n \"source_updated_at\": { \"type\": \"string\", \"format\": \"date-time\" },\n \"evidence_url\": { \"type\": \"string\", \"format\": \"uri\" },\n \"evidence_path\": { \"type\": \"string\", \"minLength\": 1 },\n \"observer\": { \"type\": \"string\", \"minLength\": 1 },\n \"supersedes\": { \"$ref\": \"#/$defs/stringArray\" },\n \"contradicts\": { \"$ref\": \"#/$defs/stringArray\" },\n \"stale_after\": { \"type\": \"string\", \"format\": \"date-time\" },\n \"classification\": {\n \"enum\": [\"fresh\", \"historical\", \"superseded\", \"contradicted\", \"needs-source\"]\n },\n \"confidence\": {\n \"enum\": [\"source\", \"candidate\", \"reviewed\", \"rejected\"]\n },\n \"current_action_selector\": { \"type\": \"boolean\" }\n }\n },\n \"stateTransfer\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"deleted_at\"],\n \"properties\": {\n \"deleted_at\": {\n \"type\": [\"string\", \"null\"],\n \"format\": \"date-time\"\n }\n }\n }\n }\n}\n","import Ajv2020 from 'ajv/dist/2020.js'\nimport type { ErrorObject, ValidateFunction } from 'ajv'\nimport schema from '../schemas/aiwg-fortemi-index-export.schema.json' with { type: 'json' }\n\nexport interface AiwgIndexSchemaValidationResult {\n valid: boolean\n errors: string[]\n}\n\nconst PROJECTED_FIELDS = [\n 'schema_version',\n 'id',\n 'type',\n 'title',\n 'text',\n 'facets',\n 'tags',\n 'concepts',\n 'privacy',\n] as const\n\nlet ajvInstance: Ajv2020 | undefined\nlet exportValidator: ValidateFunction | undefined\nlet projectedRecordValidator: ValidateFunction | undefined\n\nexport function getAiwgFortemiIndexExportSchema(): unknown {\n return schema\n}\n\nfunction getAjv(): Ajv2020 {\n if (!ajvInstance) {\n ajvInstance = new Ajv2020({\n allErrors: true,\n strict: false,\n validateFormats: false,\n })\n ajvInstance.addSchema(schema)\n }\n return ajvInstance\n}\n\nfunction formatErrors(errors: ErrorObject[] | null | undefined): string[] {\n return (errors ?? []).map((error) => {\n const path = error.instancePath || '(root)'\n return `${path} ${error.message ?? 'is invalid'}`\n })\n}\n\nfunction getExportValidator(): ValidateFunction {\n exportValidator ??= getAjv().getSchema(schema.$id) ?? getAjv().compile(schema)\n return exportValidator\n}\n\nfunction getProjectedRecordValidator(): ValidateFunction {\n if (!projectedRecordValidator) {\n const properties = Object.fromEntries(Object.keys(schema.$defs.record.properties).map((field) => [\n field,\n { $ref: `${schema.$id}#/$defs/record/properties/${field}` },\n ]))\n projectedRecordValidator = getAjv().compile({\n type: 'object',\n required: PROJECTED_FIELDS,\n properties,\n additionalProperties: true,\n allOf: [\n {\n if: {\n properties: {\n schema_version: { const: 'aiwg.fortemi.index.record.v1' },\n },\n },\n then: { $ref: `${schema.$id}#/$defs/v1RecordCompatibility` },\n },\n ],\n })\n }\n return projectedRecordValidator\n}\n\nexport function validateAiwgFortemiIndexExportSchema(value: unknown): AiwgIndexSchemaValidationResult {\n const validate = getExportValidator()\n // `binary_sources` is a documented fortemi-react attachment-text extension;\n // upstream intentionally omits it. Validate every upstream field against the\n // pinned authority while keeping that local extension out of the schema input.\n const schemaValue = value && typeof value === 'object' && Array.isArray((value as { items?: unknown }).items)\n ? {\n ...(value as Record<string, unknown>),\n items: (value as { items: unknown[] }).items.map((item) => {\n if (!item || typeof item !== 'object' || Array.isArray(item)) return item\n const schemaRecord = { ...(item as Record<string, unknown>) }\n Reflect.deleteProperty(schemaRecord, 'binary_sources')\n return schemaRecord\n }),\n }\n : value\n const valid = validate(schemaValue)\n return { valid, errors: formatErrors(validate.errors) }\n}\n\nexport function validateAiwgFortemiProjectedRecordSchema(value: unknown): AiwgIndexSchemaValidationResult {\n const validate = getProjectedRecordValidator()\n const valid = validate(value)\n return { valid, errors: formatErrors(validate.errors) }\n}\n"]}
@@ -691,6 +691,8 @@ type AiwgPrivacyClassification = 'private' | 'sanitized' | 'public';
691
691
  type AiwgProvenanceConfidence = 'source' | 'candidate' | 'reviewed' | 'rejected';
692
692
  type AiwgReviewAction = 'accept' | 'reject' | 'defer';
693
693
  type AiwgFortemiRelationshipDirection = 'upstream' | 'downstream' | 'related';
694
+ type AiwgOperationalStateClassification = 'fresh' | 'historical' | 'superseded' | 'contradicted' | 'needs-source';
695
+ type AiwgOperationalStateConfidence = 'source' | 'candidate' | 'reviewed' | 'rejected';
694
696
  interface AiwgFortemiRecordSource {
695
697
  path: string;
696
698
  repo_relative_path: string;
@@ -794,6 +796,26 @@ interface AiwgFortemiBinarySource {
794
796
  reason?: null | 'extraction_pending' | 'extractor_failed' | 'quarantined' | 'large_binary' | 'unsupported_mime' | 'no_extracted_text';
795
797
  attachment: AiwgFortemiAttachmentReference;
796
798
  }
799
+ interface AiwgOperationalState {
800
+ source_repo?: string;
801
+ source_kind?: string;
802
+ source_id?: string;
803
+ observed_state?: string;
804
+ observed_at?: string;
805
+ source_updated_at?: string;
806
+ evidence_url?: string;
807
+ evidence_path?: string;
808
+ observer?: string;
809
+ supersedes?: string[];
810
+ contradicts?: string[];
811
+ stale_after?: string;
812
+ classification: AiwgOperationalStateClassification;
813
+ confidence?: AiwgOperationalStateConfidence;
814
+ current_action_selector?: boolean;
815
+ }
816
+ interface AiwgStateTransfer {
817
+ deleted_at: string | null;
818
+ }
797
819
  interface AiwgFortemiRecord {
798
820
  schema_version: AiwgFortemiRecordSchemaVersion;
799
821
  id: string;
@@ -817,6 +839,10 @@ interface AiwgFortemiRecord {
817
839
  skos_relations?: AiwgFortemiSkosRelation[];
818
840
  /** Optional W3C PROV-style activity chain for this record. */
819
841
  provenance_events?: AiwgFortemiProvenanceEvent[];
842
+ /** Observed external state provenance. This is not a persistence tombstone. */
843
+ operational_state?: AiwgOperationalState;
844
+ /** Source-authored state projected into portable persistence semantics. */
845
+ state_transfer?: AiwgStateTransfer;
820
846
  privacy: {
821
847
  classification: AiwgPrivacyClassification;
822
848
  pii: boolean;
@@ -1,2 +1,2 @@
1
- export { am as AiwgKnowledgeShardConversionResult, an as AiwgKnowledgeShardOptions, b8 as aiwgFortemiIndexFromKnowledgeShard, ba as aiwgFortemiIndexToKnowledgeShard, bb as aiwgFortemiIndexToKnowledgeShardWithReport } from './aiwg-index-shard-BhF8kKAU.js';
1
+ export { am as AiwgKnowledgeShardConversionResult, an as AiwgKnowledgeShardOptions, b8 as aiwgFortemiIndexFromKnowledgeShard, ba as aiwgFortemiIndexToKnowledgeShard, bb as aiwgFortemiIndexToKnowledgeShardWithReport } from './aiwg-index-shard-BCdaz0X1.js';
2
2
  import '@bytecask/core';