@equationalapplications/core-llm-wiki 6.1.0 → 6.3.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.
@@ -1244,10 +1244,23 @@ declare class MetadataRepository extends BaseRepository {
1244
1244
  mode: OntologyMode;
1245
1245
  manifest: OntologyManifest;
1246
1246
  } | null>;
1247
+ /**
1248
+ * Write an entity's manifest.
1249
+ *
1250
+ * `opts.ifAbsent` selects the conflict behaviour:
1251
+ * - omitted / `false` — upsert. An existing row is replaced.
1252
+ * - `true` — create-if-absent. An existing row is left exactly as it is.
1253
+ *
1254
+ * Returns whether this call actually wrote a row. Under `ifAbsent` a `false`
1255
+ * result means another writer got there first; the check and the write are one
1256
+ * statement, so there is no window between them.
1257
+ */
1247
1258
  setManifest(entityId: string, data: {
1248
1259
  mode: OntologyMode;
1249
1260
  manifest: OntologyManifest;
1250
- }, tx: SQLiteAdapter): Promise<void>;
1261
+ }, tx: SQLiteAdapter, opts?: {
1262
+ ifAbsent?: boolean;
1263
+ }): Promise<boolean>;
1251
1264
  mergeManifestUpdates(entityId: string, updates: OntologyUpdates, tx: SQLiteAdapter): Promise<OntologyManifest>;
1252
1265
  }
1253
1266
 
@@ -2339,10 +2352,44 @@ declare class WikiMemory {
2339
2352
  * Seeds or replaces an entity's ontology manifest and optional mode override.
2340
2353
  * Validates manifest invariants (unique type slugs, edge endpoints reference node types).
2341
2354
  * Invalidates the in-memory ontology cache for this entity.
2355
+ *
2356
+ * Delegates to `setOntologyManifests` so there is a single write path. The
2357
+ * observable contract is unchanged: same upsert semantics, same cache
2358
+ * invalidation, same `void` result.
2342
2359
  */
2343
2360
  setOntologyManifest(entityId: string, manifest: OntologyManifest, options?: {
2344
2361
  mode?: OntologyMode;
2345
2362
  }): Promise<void>;
2363
+ /**
2364
+ * Write several entities' ontology manifests in a single transaction.
2365
+ *
2366
+ * All succeed or none do. The transaction is opened on this instance's
2367
+ * serialized adapter — callers pass data, never a transaction handle, because
2368
+ * a consumer holds the unwrapped adapter and a transaction opened on it would
2369
+ * bypass the serialization mutex applied in the constructor.
2370
+ *
2371
+ * Returns which entities were written. `skipped` is only ever non-empty under
2372
+ * `opts.ifAbsent`.
2373
+ *
2374
+ * Sharp edge: `ifAbsent` checks for a PERSISTED row, not for an effective
2375
+ * manifest. An entity whose manifest currently comes from
2376
+ * `WikiConfig.ontology.seedManifests` has no row until the seed is
2377
+ * materialized on first access that supplies a transaction (in practice, an
2378
+ * ingest). Until then `ifAbsent` treats the entity as absent, writes the new
2379
+ * manifest over the configured seed, and reports it in `written`; the same
2380
+ * call after the seed has been materialized reports it in `skipped`. See the
2381
+ * `ifAbsent` notes in the package README.
2382
+ */
2383
+ setOntologyManifests(entries: Array<{
2384
+ entityId: string;
2385
+ manifest: OntologyManifest;
2386
+ mode?: OntologyMode;
2387
+ }>, opts?: {
2388
+ ifAbsent?: boolean;
2389
+ }): Promise<{
2390
+ written: string[];
2391
+ skipped: string[];
2392
+ }>;
2346
2393
  /** Append a verification event to a fact. Does NOT touch `updated_at`. */
2347
2394
  writeOkfTrust(entryId: string, entityId: string, verified: {
2348
2395
  by: string;
@@ -1244,10 +1244,23 @@ declare class MetadataRepository extends BaseRepository {
1244
1244
  mode: OntologyMode;
1245
1245
  manifest: OntologyManifest;
1246
1246
  } | null>;
1247
+ /**
1248
+ * Write an entity's manifest.
1249
+ *
1250
+ * `opts.ifAbsent` selects the conflict behaviour:
1251
+ * - omitted / `false` — upsert. An existing row is replaced.
1252
+ * - `true` — create-if-absent. An existing row is left exactly as it is.
1253
+ *
1254
+ * Returns whether this call actually wrote a row. Under `ifAbsent` a `false`
1255
+ * result means another writer got there first; the check and the write are one
1256
+ * statement, so there is no window between them.
1257
+ */
1247
1258
  setManifest(entityId: string, data: {
1248
1259
  mode: OntologyMode;
1249
1260
  manifest: OntologyManifest;
1250
- }, tx: SQLiteAdapter): Promise<void>;
1261
+ }, tx: SQLiteAdapter, opts?: {
1262
+ ifAbsent?: boolean;
1263
+ }): Promise<boolean>;
1251
1264
  mergeManifestUpdates(entityId: string, updates: OntologyUpdates, tx: SQLiteAdapter): Promise<OntologyManifest>;
1252
1265
  }
1253
1266
 
@@ -2339,10 +2352,44 @@ declare class WikiMemory {
2339
2352
  * Seeds or replaces an entity's ontology manifest and optional mode override.
2340
2353
  * Validates manifest invariants (unique type slugs, edge endpoints reference node types).
2341
2354
  * Invalidates the in-memory ontology cache for this entity.
2355
+ *
2356
+ * Delegates to `setOntologyManifests` so there is a single write path. The
2357
+ * observable contract is unchanged: same upsert semantics, same cache
2358
+ * invalidation, same `void` result.
2342
2359
  */
2343
2360
  setOntologyManifest(entityId: string, manifest: OntologyManifest, options?: {
2344
2361
  mode?: OntologyMode;
2345
2362
  }): Promise<void>;
2363
+ /**
2364
+ * Write several entities' ontology manifests in a single transaction.
2365
+ *
2366
+ * All succeed or none do. The transaction is opened on this instance's
2367
+ * serialized adapter — callers pass data, never a transaction handle, because
2368
+ * a consumer holds the unwrapped adapter and a transaction opened on it would
2369
+ * bypass the serialization mutex applied in the constructor.
2370
+ *
2371
+ * Returns which entities were written. `skipped` is only ever non-empty under
2372
+ * `opts.ifAbsent`.
2373
+ *
2374
+ * Sharp edge: `ifAbsent` checks for a PERSISTED row, not for an effective
2375
+ * manifest. An entity whose manifest currently comes from
2376
+ * `WikiConfig.ontology.seedManifests` has no row until the seed is
2377
+ * materialized on first access that supplies a transaction (in practice, an
2378
+ * ingest). Until then `ifAbsent` treats the entity as absent, writes the new
2379
+ * manifest over the configured seed, and reports it in `written`; the same
2380
+ * call after the seed has been materialized reports it in `skipped`. See the
2381
+ * `ifAbsent` notes in the package README.
2382
+ */
2383
+ setOntologyManifests(entries: Array<{
2384
+ entityId: string;
2385
+ manifest: OntologyManifest;
2386
+ mode?: OntologyMode;
2387
+ }>, opts?: {
2388
+ ifAbsent?: boolean;
2389
+ }): Promise<{
2390
+ written: string[];
2391
+ skipped: string[];
2392
+ }>;
2346
2393
  /** Append a verification event to a fact. Does NOT touch `updated_at`. */
2347
2394
  writeOkfTrust(entryId: string, entityId: string, verified: {
2348
2395
  by: string;
@@ -1,3 +1,3 @@
1
- export { a3 as EmbeddingService, a4 as ImportExportService, a5 as IngestionService, a6 as JobManager, a6 as JobManagerType, a7 as MaintenanceService, a8 as RetrievalService, a9 as SearchService, a9 as SearchServiceType, Y as WikiMemoryTestAccess, aa as WriteService } from './testing-D0m2V9-E.mjs';
1
+ export { a3 as EmbeddingService, a4 as ImportExportService, a5 as IngestionService, a6 as JobManager, a6 as JobManagerType, a7 as MaintenanceService, a8 as RetrievalService, a9 as SearchService, a9 as SearchServiceType, Y as WikiMemoryTestAccess, aa as WriteService } from './testing-BPwT0171.mjs';
2
2
  import '@equationalapplications/core-okf';
3
3
  import 'minisearch';
package/dist/testing.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- export { a3 as EmbeddingService, a4 as ImportExportService, a5 as IngestionService, a6 as JobManager, a6 as JobManagerType, a7 as MaintenanceService, a8 as RetrievalService, a9 as SearchService, a9 as SearchServiceType, Y as WikiMemoryTestAccess, aa as WriteService } from './testing-D0m2V9-E.js';
1
+ export { a3 as EmbeddingService, a4 as ImportExportService, a5 as IngestionService, a6 as JobManager, a6 as JobManagerType, a7 as MaintenanceService, a8 as RetrievalService, a9 as SearchService, a9 as SearchServiceType, Y as WikiMemoryTestAccess, aa as WriteService } from './testing-BPwT0171.js';
2
2
  import '@equationalapplications/core-okf';
3
3
  import 'minisearch';