@happyvertical/smrt-content 0.30.0 → 0.31.1

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 (33) hide show
  1. package/dist/content-chat-session.d.ts.map +1 -1
  2. package/dist/content-versions.d.ts.map +1 -1
  3. package/dist/content.d.ts +35 -4
  4. package/dist/content.d.ts.map +1 -1
  5. package/dist/index.js +135 -18
  6. package/dist/index.js.map +1 -1
  7. package/dist/manifest.json +34 -2
  8. package/dist/smrt-knowledge.json +8 -4
  9. package/dist/svelte/components/ContentClaimAuditTool.svelte +2 -2
  10. package/dist/svelte/components/ContentCorrectionsTool.svelte +2 -2
  11. package/dist/svelte/components/ContentEditor.svelte +53 -2
  12. package/dist/svelte/components/ContentEditor.svelte.d.ts.map +1 -1
  13. package/dist/svelte/components/ContentGovernancePanel.svelte +35 -6
  14. package/dist/svelte/components/ContentGovernancePanel.svelte.d.ts.map +1 -1
  15. package/dist/svelte/components/ContentList.svelte +32 -8
  16. package/dist/svelte/components/ContentList.svelte.d.ts.map +1 -1
  17. package/dist/svelte/components/ContentVersionsTool.svelte +34 -6
  18. package/dist/svelte/components/ContentVersionsTool.svelte.d.ts.map +1 -1
  19. package/dist/svelte/i18n.contribution.d.ts +3 -0
  20. package/dist/svelte/i18n.contribution.d.ts.map +1 -1
  21. package/dist/svelte/i18n.contribution.js +3 -0
  22. package/dist/svelte/i18n.editor.d.ts +3 -0
  23. package/dist/svelte/i18n.editor.d.ts.map +1 -1
  24. package/dist/svelte/i18n.editor.js +3 -0
  25. package/dist/svelte/i18n.governance.d.ts +4 -0
  26. package/dist/svelte/i18n.governance.d.ts.map +1 -1
  27. package/dist/svelte/i18n.governance.js +4 -0
  28. package/dist/svelte/i18n.tools.d.ts +4 -0
  29. package/dist/svelte/i18n.tools.d.ts.map +1 -1
  30. package/dist/svelte/i18n.tools.js +4 -0
  31. package/dist/thumbnail-generator.d.ts.map +1 -1
  32. package/dist/utils.d.ts.map +1 -1
  33. package/package.json +14 -14
@@ -1 +1 @@
1
- {"version":3,"file":"content-chat-session.d.ts","sourceRoot":"","sources":["../src/content-chat-session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAElE,KAAK,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE9C,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,aAAa,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC/B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,6BAA6B;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACxC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAoBD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CA+B5D;AAED,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,cAAc,GACtB,sBAAsB,CAcxB;AAED,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,cAAc,EACvB,cAAc,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACzC,aAAa,EAAE,MAAM,GACpB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CASrC;AAED,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,cAAc,EACvB,cAAc,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACzC,aAAa,EAAE,MAAM,GACpB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAe/B;AAED,wBAAgB,gCAAgC,CAC9C,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,cAAc,GACrB,cAAc,CAgBhB;AAmBD,wBAAgB,sCAAsC,CACpD,KAAK,EAAE,6BAA6B,GACnC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAkBxB"}
1
+ {"version":3,"file":"content-chat-session.d.ts","sourceRoot":"","sources":["../src/content-chat-session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAElE,KAAK,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE9C,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,aAAa,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC/B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,6BAA6B;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACxC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAoBD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CA+B5D;AAED,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,cAAc,GACtB,sBAAsB,CAcxB;AAED,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,cAAc,EACvB,cAAc,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACzC,aAAa,EAAE,MAAM,GACpB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CASrC;AAED,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,cAAc,EACvB,cAAc,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACzC,aAAa,EAAE,MAAM,GACpB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAe/B;AAED,wBAAgB,gCAAgC,CAC9C,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,cAAc,GACrB,cAAc,CAgBhB;AA0BD,wBAAgB,sCAAsC,CACpD,KAAK,EAAE,6BAA6B,GACnC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAkBxB"}
@@ -1 +1 @@
1
- {"version":3,"file":"content-versions.d.ts","sourceRoot":"","sources":["../src/content-versions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AAExE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,qBAAa,wBAAyB,SAAQ,cAAc,CAAC,cAAc,CAAC;IAC1E,MAAM,CAAC,QAAQ,CAAC,UAAU,wBAAkB;IAE5C,OAAO,CAAC,8BAA8B;IA8ChC,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAO5D,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAKtE,4BAA4B,CAChC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAY3B,UAAU,CACd,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAO3B,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKxD,cAAc,CAClB,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE,2BAAgC,GACxC,OAAO,CAAC,cAAc,CAAC;IAsFpB,kBAAkB,CACtB,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,OAAO,CAAC;CA2FpB"}
1
+ {"version":3,"file":"content-versions.d.ts","sourceRoot":"","sources":["../src/content-versions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AAExE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,qBAAa,wBAAyB,SAAQ,cAAc,CAAC,cAAc,CAAC;IAC1E,MAAM,CAAC,QAAQ,CAAC,UAAU,wBAAkB;IAE5C,OAAO,CAAC,8BAA8B;IA8ChC,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAO5D,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAKtE,4BAA4B,CAChC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAY3B,UAAU,CACd,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAO3B,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKxD,cAAc,CAClB,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE,2BAAgC,GACxC,OAAO,CAAC,cAAc,CAAC;IA8FpB,kBAAkB,CACtB,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,OAAO,CAAC;CAqKpB"}
package/dist/content.d.ts CHANGED
@@ -292,6 +292,25 @@ export declare class Content extends SmrtObject implements AssetAssociable, Meta
292
292
  private getPersistedContent;
293
293
  private buildReviewFingerprint;
294
294
  private buildTransparencySnapshot;
295
+ /**
296
+ * Fingerprint of the *content-bearing* publication surface only.
297
+ *
298
+ * This must converge: two byte-identical `save()`s of published content
299
+ * have to produce the same fingerprint so the publication-version writer
300
+ * (`save()`) does not append a redundant `ContentVersion` on every save.
301
+ *
302
+ * It therefore deliberately excludes everything that grows or carries a
303
+ * timestamp/ordering with each save — `versionHistory`, `reviews`,
304
+ * `corrections`, and any `generatedAt`/`createdAt`/`id` fields. The earlier
305
+ * implementation fingerprinted the full transparency snapshot (which embeds
306
+ * the growing `versionHistory`), so the stored fingerprint of vN predated vN
307
+ * and the next save's recomputed fingerprint always differed → unbounded
308
+ * redundant publication versions (#1387 blocker).
309
+ *
310
+ * The surface mirrors `buildReviewFingerprint`'s content block, plus the
311
+ * pinned reference edges (`{ targetId, targetVersion }`) — a pin change is a
312
+ * meaningful republication — and the publication profile key.
313
+ */
295
314
  private buildPublicationSnapshotFingerprint;
296
315
  private getLatestPublicationSnapshotFingerprint;
297
316
  private buildCorrectionDraftSnapshot;
@@ -335,16 +354,28 @@ export declare class Content extends SmrtObject implements AssetAssociable, Meta
335
354
  * @returns Promise resolving to an array of referenced Content objects
336
355
  */
337
356
  getReferences(): Promise<Content[]>;
357
+ /**
358
+ * Returns the raw reference edges with their citation pins
359
+ * (`{ targetId, targetVersion }`). Unlike `getReferences()` (which resolves
360
+ * to `Content` objects and loses the per-edge `targetVersion`), this keeps
361
+ * the pin so callers — notably version snapshots — can reconstruct pinned
362
+ * citations on restore. See `ContentVersionCollection.restoreIntoContent`.
363
+ */
364
+ getReferenceEdges(): Promise<Array<{
365
+ targetId: string;
366
+ targetVersion: number | null;
367
+ }>>;
338
368
  /**
339
369
  * Returns one entry per reference edge with the pinned `targetVersion` and
340
370
  * the target's latest version. Drift exists when both are present and
341
371
  * differ — callers can use this to surface "the source you cited has been
342
372
  * updated" affordances in editors or review tools.
343
373
  *
344
- * `currentVersion` is sourced from `getLatestForContent`, which returns
345
- * the most recent `ContentVersion` of **any kind** (manual or publication).
346
- * Consumers that only care about published drift should filter the result
347
- * by loading the matching `ContentVersion` and inspecting `kind`.
374
+ * `currentVersion` is the target's latest **publication** `ContentVersion`,
375
+ * because pins are taken against the latest publication (see `addReference`).
376
+ * Auto-created `correction`/`draft`/`manual` versions bump the shared
377
+ * `(content_id, version)` counter but do NOT republish, so comparing against
378
+ * the max version of *any* kind produced false drift positives (#1387 #4).
348
379
  *
349
380
  * Unpinned references (`citedVersion === null`) are included with
350
381
  * `currentVersion` populated when available so callers can choose to
@@ -1 +1 @@
1
- {"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../src/content.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../src/content.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1220,6 +1220,11 @@ class ThumbnailGenerator {
1220
1220
  } else if (typeof imageData === "string") {
1221
1221
  if (imageData.startsWith("http")) {
1222
1222
  const response = await fetch(imageData);
1223
+ if (!response.ok) {
1224
+ throw new Error(
1225
+ `AI image generation URL fetch failed: ${response.status} ${response.statusText}`
1226
+ );
1227
+ }
1223
1228
  buffer = Buffer.from(await response.arrayBuffer());
1224
1229
  } else {
1225
1230
  buffer = Buffer.from(imageData, "base64");
@@ -1281,7 +1286,6 @@ class ThumbnailGenerator {
1281
1286
  height: metadata.height,
1282
1287
  sourceUri: `data:${metadata.mimeType};base64,${buffer.toString("base64")}`
1283
1288
  });
1284
- await image.save();
1285
1289
  return image;
1286
1290
  }
1287
1291
  }
@@ -1946,16 +1950,75 @@ let Content = class extends SmrtObject {
1946
1950
  }
1947
1951
  );
1948
1952
  }
1953
+ /**
1954
+ * Fingerprint of the *content-bearing* publication surface only.
1955
+ *
1956
+ * This must converge: two byte-identical `save()`s of published content
1957
+ * have to produce the same fingerprint so the publication-version writer
1958
+ * (`save()`) does not append a redundant `ContentVersion` on every save.
1959
+ *
1960
+ * It therefore deliberately excludes everything that grows or carries a
1961
+ * timestamp/ordering with each save — `versionHistory`, `reviews`,
1962
+ * `corrections`, and any `generatedAt`/`createdAt`/`id` fields. The earlier
1963
+ * implementation fingerprinted the full transparency snapshot (which embeds
1964
+ * the growing `versionHistory`), so the stored fingerprint of vN predated vN
1965
+ * and the next save's recomputed fingerprint always differed → unbounded
1966
+ * redundant publication versions (#1387 blocker).
1967
+ *
1968
+ * The surface mirrors `buildReviewFingerprint`'s content block, plus the
1969
+ * pinned reference edges (`{ targetId, targetVersion }`) — a pin change is a
1970
+ * meaningful republication — and the publication profile key.
1971
+ */
1949
1972
  async buildPublicationSnapshotFingerprint(governance) {
1950
- const transparency = await this.buildTransparencySnapshot({
1951
- snapshotKind: "published",
1952
- governance
1953
- });
1954
- if (!transparency) {
1973
+ if (!governance.isGoverned || !governance.transparencyEnabled) {
1955
1974
  return null;
1956
1975
  }
1957
- const { generatedAt, ...stableSnapshot } = transparency;
1958
- return createFingerprint(stableSnapshot);
1976
+ const referenceCollection = await this.getReferenceCollection();
1977
+ const [referenceEdges, facts, factLinks] = await Promise.all([
1978
+ this.id ? referenceCollection.getForSource(this.id) : Promise.resolve([]),
1979
+ governance.factLinkingEnabled ? this.getFacts({ latestOnly: true, includeSuperseded: false }) : Promise.resolve([]),
1980
+ governance.factLinkingEnabled ? this.getFactLinks() : Promise.resolve([])
1981
+ ]);
1982
+ return createFingerprint({
1983
+ scope: "content-publication",
1984
+ publicationProfileKey: governance.publicationProfileKey || null,
1985
+ content: {
1986
+ id: this.id || null,
1987
+ type: this.type,
1988
+ variant: this.variant,
1989
+ title: this.title,
1990
+ description: this.description,
1991
+ body: this.body,
1992
+ author: this.author,
1993
+ state: this.state,
1994
+ publishDate: this.publish_date,
1995
+ language: this.language,
1996
+ category: this.category,
1997
+ tags: this.tags,
1998
+ metadata: this.metadata
1999
+ },
2000
+ // Pinned reference edges only — ordering-independent so it converges.
2001
+ references: referenceEdges.map((edge) => ({
2002
+ targetId: edge.targetId || null,
2003
+ targetVersion: edge.targetVersion ?? null
2004
+ })).sort((a, b) => String(a.targetId).localeCompare(String(b.targetId))),
2005
+ facts: facts.map((fact) => ({
2006
+ id: fact.id || null,
2007
+ previousFactId: fact.previousFactId || null,
2008
+ status: fact.status || null,
2009
+ textRefined: fact.textRefined || "",
2010
+ sourceCount: fact.sourceCount ?? 0,
2011
+ confidence: fact.confidence ?? null,
2012
+ metadata: typeof fact?.getMetadata === "function" ? fact.getMetadata() : {}
2013
+ })).sort((a, b) => String(a.id).localeCompare(String(b.id))),
2014
+ factLinks: factLinks.map((link) => ({
2015
+ factId: link.factId || null,
2016
+ relationship: link.relationship || null,
2017
+ metadata: typeof link?.getMetadata === "function" ? link.getMetadata() : {}
2018
+ })).sort(
2019
+ (a, b) => String(a.factId).localeCompare(String(b.factId))
2020
+ )
2021
+ });
1959
2022
  }
1960
2023
  async getLatestPublicationSnapshotFingerprint() {
1961
2024
  const versions = await this.getVersions();
@@ -2266,16 +2329,35 @@ let Content = class extends SmrtObject {
2266
2329
  this.references = targetIds.map((targetId) => referencesById.get(targetId)).filter(Boolean);
2267
2330
  return this.references;
2268
2331
  }
2332
+ /**
2333
+ * Returns the raw reference edges with their citation pins
2334
+ * (`{ targetId, targetVersion }`). Unlike `getReferences()` (which resolves
2335
+ * to `Content` objects and loses the per-edge `targetVersion`), this keeps
2336
+ * the pin so callers — notably version snapshots — can reconstruct pinned
2337
+ * citations on restore. See `ContentVersionCollection.restoreIntoContent`.
2338
+ */
2339
+ async getReferenceEdges() {
2340
+ if (!this.id) {
2341
+ return [];
2342
+ }
2343
+ const references = await this.getReferenceCollection();
2344
+ const linkedReferences = await references.getForSource(this.id);
2345
+ return linkedReferences.filter((edge) => Boolean(edge.targetId)).map((edge) => ({
2346
+ targetId: edge.targetId,
2347
+ targetVersion: edge.targetVersion ?? null
2348
+ }));
2349
+ }
2269
2350
  /**
2270
2351
  * Returns one entry per reference edge with the pinned `targetVersion` and
2271
2352
  * the target's latest version. Drift exists when both are present and
2272
2353
  * differ — callers can use this to surface "the source you cited has been
2273
2354
  * updated" affordances in editors or review tools.
2274
2355
  *
2275
- * `currentVersion` is sourced from `getLatestForContent`, which returns
2276
- * the most recent `ContentVersion` of **any kind** (manual or publication).
2277
- * Consumers that only care about published drift should filter the result
2278
- * by loading the matching `ContentVersion` and inspecting `kind`.
2356
+ * `currentVersion` is the target's latest **publication** `ContentVersion`,
2357
+ * because pins are taken against the latest publication (see `addReference`).
2358
+ * Auto-created `correction`/`draft`/`manual` versions bump the shared
2359
+ * `(content_id, version)` counter but do NOT republish, so comparing against
2360
+ * the max version of *any* kind produced false drift positives (#1387 #4).
2279
2361
  *
2280
2362
  * Unpinned references (`citedVersion === null`) are included with
2281
2363
  * `currentVersion` populated when available so callers can choose to
@@ -2293,7 +2375,7 @@ let Content = class extends SmrtObject {
2293
2375
  const versions = await this.getContentVersionCollection();
2294
2376
  const targetIds = linkedReferences.map((reference) => reference.targetId);
2295
2377
  const allVersions = await versions.list({
2296
- where: { contentId: targetIds },
2378
+ where: { contentId: targetIds, kind: "publication" },
2297
2379
  orderBy: "version DESC"
2298
2380
  });
2299
2381
  const latestByContentId = /* @__PURE__ */ new Map();
@@ -4199,8 +4281,9 @@ function displayValue(value, fallback = "(empty)") {
4199
4281
  return String(value);
4200
4282
  }
4201
4283
  function delimitPromptValue(name, value) {
4284
+ const sanitizedValue = value.replace(/<<<\s*(?:END_)?SMRT_[\s\S]*?>>>/gi, "");
4202
4285
  return `<<<${CONTENT_PROMPT_DELIMITER} name=${name}>>>
4203
- ${value.replace(/<<<(?:END_)?SMRT_[^>]*>>>/g, "")}
4286
+ ${sanitizedValue}
4204
4287
  <<<END_${CONTENT_PROMPT_DELIMITER}>>>`;
4205
4288
  }
4206
4289
  function buildContentEditorInteractionVariables(input) {
@@ -11323,8 +11406,11 @@ class ContentVersionCollection extends SmrtCollection {
11323
11406
  contentVariant: content.variant,
11324
11407
  db: this.db
11325
11408
  });
11326
- const [references, assets, factsState] = await Promise.all([
11409
+ const [references, referenceEdges, assets, factsState] = await Promise.all([
11327
11410
  typeof content.getReferences === "function" ? content.getReferences() : [],
11411
+ // Capture per-edge citation pins so restore can reconstruct them.
11412
+ // `getReferences()` resolves to Content objects and loses targetVersion.
11413
+ typeof content.getReferenceEdges === "function" ? content.getReferenceEdges() : Promise.resolve([]),
11328
11414
  typeof content.getAssets === "function" ? content.getAssets() : [],
11329
11415
  typeof content.getFactsState === "function" && governance.factLinkingEnabled ? content.getFactsState() : {
11330
11416
  factIds: [],
@@ -11357,6 +11443,9 @@ class ContentVersionCollection extends SmrtCollection {
11357
11443
  metadata: content.metadata,
11358
11444
  thumbnailAssetId: content.thumbnailAssetId,
11359
11445
  referenceIds: references.map((reference) => reference.id).filter(Boolean),
11446
+ // Full edges with citation pins; `referenceIds` retained for back-compat
11447
+ // with snapshots written before pin-aware restore (#1387 #3).
11448
+ referenceEdges: referenceEdges.filter((edge) => Boolean(edge.targetId)),
11360
11449
  assetIds: assets.map((asset) => asset.id).filter(Boolean),
11361
11450
  factIds: factsState.factIds,
11362
11451
  factLinks: factsState.factLinks,
@@ -11423,13 +11512,37 @@ class ContentVersionCollection extends SmrtCollection {
11423
11512
  content[key] = snapshot[key];
11424
11513
  }
11425
11514
  }
11426
- if (Array.isArray(snapshot.referenceIds)) {
11427
- content.referenceIds = [...snapshot.referenceIds];
11515
+ const snapshotEdges = Array.isArray(snapshot.referenceEdges) ? snapshot.referenceEdges.filter(
11516
+ (edge) => edge && typeof edge.targetId === "string" && edge.targetId.length > 0
11517
+ ).map((edge) => ({
11518
+ targetId: edge.targetId,
11519
+ targetVersion: typeof edge.targetVersion === "number" ? edge.targetVersion : null
11520
+ })) : Array.isArray(snapshot.referenceIds) ? snapshot.referenceIds.filter(
11521
+ (id) => typeof id === "string" && id.length > 0
11522
+ ).map((targetId) => ({ targetId, targetVersion: null })) : [];
11523
+ if (Array.isArray(snapshot.referenceEdges) || Array.isArray(snapshot.referenceIds)) {
11524
+ content.referenceIds = snapshotEdges.map(
11525
+ (edge) => edge.targetId
11526
+ );
11428
11527
  }
11429
11528
  if (Array.isArray(snapshot.assetIds)) {
11430
11529
  content.assetIds = [...snapshot.assetIds];
11431
11530
  }
11432
11531
  await content.save();
11532
+ if (snapshotEdges.length > 0 && typeof content.getReferences === "function" && typeof content.addReference === "function") {
11533
+ const resolvedReferences = await content.getReferences();
11534
+ const resolvedById = new Map(
11535
+ resolvedReferences.filter((reference) => reference.id).map((reference) => [reference.id, reference])
11536
+ );
11537
+ for (const edge of snapshotEdges) {
11538
+ const target = resolvedById.get(edge.targetId);
11539
+ if (target) {
11540
+ await content.addReference(target, {
11541
+ targetVersion: edge.targetVersion
11542
+ });
11543
+ }
11544
+ }
11545
+ }
11433
11546
  const governance = await resolveEffectiveContentGovernance({
11434
11547
  contentType: content.type,
11435
11548
  contentVariant: content.variant,
@@ -11485,7 +11598,11 @@ function stringToContent(data) {
11485
11598
  );
11486
11599
  if (frontmatterEnd !== -1) {
11487
11600
  const frontmatterYAML = data.substring(frontmatterStart + separator.length, frontmatterEnd).trim();
11488
- frontmatter = yaml.parse(frontmatterYAML) || {};
11601
+ try {
11602
+ frontmatter = yaml.parse(frontmatterYAML) || {};
11603
+ } catch {
11604
+ frontmatter = {};
11605
+ }
11489
11606
  body = data.substring(frontmatterEnd + separator.length).trim();
11490
11607
  }
11491
11608
  }