@ai-matrx/records 0.96.3 → 0.96.5

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.
@@ -301,13 +301,21 @@ interface TemplateTable extends UseCaseTable {
301
301
  /**
302
302
  * REUSE, NEVER DUPLICATE (CHAIR-DESCRIBE-2): this template table IS one the organization already has.
303
303
  * The install makes no table for it — `tables.<token>` is the existing table's id from the first step —
304
- * declares only the fields it lacks (`fields` = the keys it already has), seeds none of its rows, never
305
- * resets its Dimensions, and links the template's new tables to it. Uninstall archives only what the
306
- * install added (its new fields, views, forms), never the table.
304
+ * declares only the fields it lacks (`fields` = the keys it already has), never resets its Dimensions, and
305
+ * links the template's new tables to it. Uninstall archives only what the install added (its new fields,
306
+ * views, forms), never the table.
307
+ *
308
+ * ITS ROWS (a sample row is never dropped whole): by default it seeds none, and a new table's value that
309
+ * points at one of its sample rows is left empty. `seedRows` - the caller found the table EMPTY - writes
310
+ * the template's sample rows into it, so every link to them lands. `rowIds` - the table HAS rows - maps a
311
+ * sample row's key to the id of the existing row it means; a link to a mapped key lands on that row, a link
312
+ * to any other key is left empty (and the field stops being required, so the new row still installs).
307
313
  */
308
314
  bindsTo?: {
309
315
  tableId: string;
310
316
  fields: string[];
317
+ seedRows?: boolean;
318
+ rowIds?: Record<string, string>;
311
319
  };
312
320
  /**
313
321
  * Ordered date pairs that hold on every seed row: [earlier, later]. A side is a field of
@@ -301,13 +301,21 @@ interface TemplateTable extends UseCaseTable {
301
301
  /**
302
302
  * REUSE, NEVER DUPLICATE (CHAIR-DESCRIBE-2): this template table IS one the organization already has.
303
303
  * The install makes no table for it — `tables.<token>` is the existing table's id from the first step —
304
- * declares only the fields it lacks (`fields` = the keys it already has), seeds none of its rows, never
305
- * resets its Dimensions, and links the template's new tables to it. Uninstall archives only what the
306
- * install added (its new fields, views, forms), never the table.
304
+ * declares only the fields it lacks (`fields` = the keys it already has), never resets its Dimensions, and
305
+ * links the template's new tables to it. Uninstall archives only what the install added (its new fields,
306
+ * views, forms), never the table.
307
+ *
308
+ * ITS ROWS (a sample row is never dropped whole): by default it seeds none, and a new table's value that
309
+ * points at one of its sample rows is left empty. `seedRows` - the caller found the table EMPTY - writes
310
+ * the template's sample rows into it, so every link to them lands. `rowIds` - the table HAS rows - maps a
311
+ * sample row's key to the id of the existing row it means; a link to a mapped key lands on that row, a link
312
+ * to any other key is left empty (and the field stops being required, so the new row still installs).
307
313
  */
308
314
  bindsTo?: {
309
315
  tableId: string;
310
316
  fields: string[];
317
+ seedRows?: boolean;
318
+ rowIds?: Record<string, string>;
311
319
  };
312
320
  /**
313
321
  * Ordered date pairs that hold on every seed row: [earlier, later]. A side is a field of
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-matrx/records",
3
- "version": "0.96.3",
3
+ "version": "0.96.5",
4
4
  "description": "The headless client of the AI Matrx record store: the Table / Field / Rule / Record / Relation / Home types, the closed vocabularies and refusal codes read from the store itself, the typed calls over the store's doors and nothing else, the merge-field declaration, a validation mirror that predicts only what the store's own triggers refuse, and the never-throw result envelope. Zero React, zero DOM in the root and /core.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -320,5 +320,5 @@
320
320
  "describe-bench:run": "../../../.venv/bin/python scripts/describe-bench/score-env.py run",
321
321
  "describe-bench:arms": "../../../.venv/bin/python scripts/describe-bench/score-env.py arms"
322
322
  },
323
- "gitHead": "18fdbaf713c5f2525433f92c52d183c6b27bd8b4"
323
+ "gitHead": "830c3f8d93353b81a6ededebf020a3643a309d09"
324
324
  }