@platforma-open/milaboratories.mixcr-clonotyping-2 2.23.13 → 2.24.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/dist/index.js CHANGED
@@ -1,12 +1,12 @@
1
1
  import { r as __toESM, t as __commonJSMin } from "./rolldown-runtime-B-1-B7_t.js";
2
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/plugin_handle.js
2
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.10/node_modules/@platforma-sdk/model/dist/plugin_handle.js
3
3
  const PLUGIN_OUTPUT_PREFIX = "plugin-output#";
4
4
  /** Construct the output key for a plugin output in the block outputs map. */
5
5
  function pluginOutputKey(handle, outputKey) {
6
6
  return `${PLUGIN_OUTPUT_PREFIX}${handle}#${outputKey}`;
7
7
  }
8
8
  //#endregion
9
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/block_storage.js
9
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.10/node_modules/@platforma-sdk/model/dist/block_storage.js
10
10
  /**
11
11
  * Discriminator key for BlockStorage format detection.
12
12
  * This unique hash-based key identifies data as BlockStorage vs legacy formats.
@@ -3815,7 +3815,7 @@ objectType({
3815
3815
  content: stringType()
3816
3816
  });
3817
3817
  //#endregion
3818
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/bmodel/block_kind_ref.js
3818
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.52.0/node_modules/@milaboratories/pl-model-common/dist/bmodel/block_kind_ref.js
3819
3819
  /**
3820
3820
  * Compose a {@link BlockKindReference} from a kind's `name`/`version`.
3821
3821
  *
@@ -3831,7 +3831,7 @@ objectType({
3831
3831
  to: numberType().min(1)
3832
3832
  });
3833
3833
  //#endregion
3834
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/util.js
3834
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.52.0/node_modules/@milaboratories/pl-model-common/dist/util.js
3835
3835
  function assertNever(x) {
3836
3836
  throw new Error("Unexpected object: " + x);
3837
3837
  }
@@ -3843,13 +3843,13 @@ function uniqueBy(array, makeId) {
3843
3843
  return [...new Map(array.map((e) => [makeId(e), e])).values()];
3844
3844
  }
3845
3845
  //#endregion
3846
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/drivers/ls.js
3846
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.52.0/node_modules/@milaboratories/pl-model-common/dist/drivers/ls.js
3847
3847
  const indexPrefix = "index://index/";
3848
3848
  function isImportFileHandleIndex(handle) {
3849
3849
  return handle.startsWith(indexPrefix);
3850
3850
  }
3851
3851
  //#endregion
3852
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/data_info.js
3852
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.52.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/data_info.js
3853
3853
  /**
3854
3854
  * Type guard function that checks if the given value is a valid DataInfo.
3855
3855
  *
@@ -4040,7 +4040,7 @@ function entriesToDataInfo(dataInfoEntries) {
4040
4040
  }
4041
4041
  }
4042
4042
  //#endregion
4043
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/errors.js
4043
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.52.0/node_modules/@milaboratories/pl-model-common/dist/errors.js
4044
4044
  var ServiceError = class extends Error {
4045
4045
  name = "ServiceError";
4046
4046
  };
@@ -4064,7 +4064,7 @@ function ensureError(value) {
4064
4064
  return new Error(stringifyValue(value));
4065
4065
  }
4066
4066
  //#endregion
4067
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/json.js
4067
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.52.0/node_modules/@milaboratories/pl-model-common/dist/json.js
4068
4068
  var import_canonicalize = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMin(((exports, module) => {
4069
4069
  module.exports = function serialize(object) {
4070
4070
  if (typeof object === "number" && isNaN(object)) throw new Error("NaN is not allowed");
@@ -4097,7 +4097,7 @@ function parseJsonSafely(value, fallback) {
4097
4097
  }
4098
4098
  }
4099
4099
  //#endregion
4100
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/spec.js
4100
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.52.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/spec.js
4101
4101
  function readMetadata(metadata, key) {
4102
4102
  return metadata?.[key];
4103
4103
  }
@@ -4422,7 +4422,7 @@ function matchAxisId(query, target) {
4422
4422
  return query.name === target.name && matchDomain$1(query.domain, target.domain) && matchDomain$1(query.contextDomain, target.contextDomain);
4423
4423
  }
4424
4424
  //#endregion
4425
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/query/utils.js
4425
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.52.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/query/utils.js
4426
4426
  const BOOLEAN_TYPES = /* @__PURE__ */ new Set([
4427
4427
  "numericComparison",
4428
4428
  "stringEquals",
@@ -4527,7 +4527,7 @@ function collectSpecQueryColumns(query) {
4527
4527
  return result;
4528
4528
  }
4529
4529
  //#endregion
4530
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/table_calculate.js
4530
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.52.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/table_calculate.js
4531
4531
  function mapPTableDef(def, cb) {
4532
4532
  return {
4533
4533
  ...def,
@@ -4570,7 +4570,7 @@ function mapJoinEntry(entry, cb) {
4570
4570
  }
4571
4571
  }
4572
4572
  //#endregion
4573
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/table_common.js
4573
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.52.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/table_common.js
4574
4574
  function getPTableColumnId(spec) {
4575
4575
  switch (spec.type) {
4576
4576
  case "axis": return {
@@ -4584,7 +4584,7 @@ function getPTableColumnId(spec) {
4584
4584
  }
4585
4585
  }
4586
4586
  //#endregion
4587
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/filtered_column.js
4587
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.52.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/filtered_column.js
4588
4588
  function stringifyColumnFilteredId(key) {
4589
4589
  return canonicalizeJson(createColumnFilteredKey(key));
4590
4590
  }
@@ -4617,7 +4617,7 @@ function applyAxisFilters(spec, axisFilters) {
4617
4617
  };
4618
4618
  }
4619
4619
  //#endregion
4620
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/pool/spec.js
4620
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.52.0/node_modules/@milaboratories/pl-model-common/dist/pool/spec.js
4621
4621
  function isPObjectId(value) {
4622
4622
  if (typeof value !== "string") return false;
4623
4623
  return isPObjectKey(parseJsonSafely(value));
@@ -4739,7 +4739,7 @@ function throwError(v) {
4739
4739
  else throw v;
4740
4740
  }
4741
4741
  //#endregion
4742
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/discovered_column.js
4742
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.52.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/discovered_column.js
4743
4743
  function isColumnDiscoveredKey(obj) {
4744
4744
  return typeof obj === "object" && obj !== null && "__isDiscovered" in obj;
4745
4745
  }
@@ -4803,7 +4803,7 @@ function isString(value) {
4803
4803
  return typeof value === "string";
4804
4804
  }
4805
4805
  //#endregion
4806
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/ids.js
4806
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.52.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/ids.js
4807
4807
  /**
4808
4808
  * Canonically serializes a column key to a branded string id. Accepts both
4809
4809
  * the new {@link ColumnUniversalKey} and the deprecated {@link UniversalPColumnId}
@@ -4977,7 +4977,7 @@ function extractPObjectId(id) {
4977
4977
  throw new Error(`extractPObjectId: unrecognized column id structure: ${JSON.stringify(id)}`);
4978
4978
  }
4979
4979
  //#endregion
4980
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/overridden.js
4980
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.52.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/overridden.js
4981
4981
  function isColumnOverriddenKey(obj) {
4982
4982
  return typeof obj === "object" && obj !== null && "__isOverridden" in obj;
4983
4983
  }
@@ -5099,7 +5099,7 @@ function mergeRecord(a, b) {
5099
5099
  };
5100
5100
  }
5101
5101
  //#endregion
5102
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/anchored.js
5102
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.52.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/anchored.js
5103
5103
  function axisKey(axis) {
5104
5104
  return (0, import_canonicalize.default)(getAxisId(axis));
5105
5105
  }
@@ -5345,7 +5345,7 @@ function isAnchorAxisRef(value) {
5345
5345
  return typeof value === "object" && "anchor" in value;
5346
5346
  }
5347
5347
  //#endregion
5348
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/selectors.js
5348
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.52.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/selectors.js
5349
5349
  /**
5350
5350
  * Determines if an axis ID matches an axis selector.
5351
5351
  *
@@ -5426,7 +5426,7 @@ function legacyColumnSelectorsToPredicate(predicateOrSelectors) {
5426
5426
  else return (spec) => isPColumnSpec(spec) && matchPColumn(spec, predicateOrSelectors);
5427
5427
  }
5428
5428
  //#endregion
5429
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/native_id.js
5429
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.52.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/native_id.js
5430
5430
  function deriveNativeId(spec) {
5431
5431
  const result = {
5432
5432
  kind: spec.kind,
@@ -5438,7 +5438,7 @@ function deriveNativeId(spec) {
5438
5438
  return (0, import_canonicalize.default)(result);
5439
5439
  }
5440
5440
  //#endregion
5441
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/linker_columns.js
5441
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.52.0/node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/linker_columns.js
5442
5442
  var LinkerMap = class LinkerMap {
5443
5443
  /** Graph of linkers connected by axes (single or grouped by parents) */
5444
5444
  data;
@@ -5616,7 +5616,7 @@ var LinkerMap = class LinkerMap {
5616
5616
  }
5617
5617
  };
5618
5618
  //#endregion
5619
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/flags/block_flags.js
5619
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.52.0/node_modules/@milaboratories/pl-model-common/dist/flags/block_flags.js
5620
5620
  /**
5621
5621
  * Required PFrames version. Bump this in lockstep with the `@milaboratories/pframes-rs-*`
5622
5622
  * version in `pnpm-workspace.yaml` so blocks built against the new SDK refuse to load on
@@ -5625,7 +5625,7 @@ var LinkerMap = class LinkerMap {
5625
5625
  const REQUIRES_PFRAMES_VERSION = 1001031;
5626
5626
  stringType().length(24).regex(/[ABCDEFGHIJKLMNOPQRSTUVWXYZ234567]/);
5627
5627
  //#endregion
5628
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/ref.js
5628
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.52.0/node_modules/@milaboratories/pl-model-common/dist/ref.js
5629
5629
  const PlRef = objectType({
5630
5630
  __isRef: literalType(true).describe("Crucial marker for the block dependency tree reconstruction"),
5631
5631
  blockId: stringType().describe("Upstream block id"),
@@ -5661,7 +5661,7 @@ function withEnrichments(ref, requireEnrichments = true) {
5661
5661
  }
5662
5662
  }
5663
5663
  //#endregion
5664
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/value_or_error.js
5664
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.52.0/node_modules/@milaboratories/pl-model-common/dist/value_or_error.js
5665
5665
  function mapValueInVOE(voe, cb) {
5666
5666
  return voe.ok ? {
5667
5667
  ok: true,
@@ -5669,7 +5669,7 @@ function mapValueInVOE(voe, cb) {
5669
5669
  } : voe;
5670
5670
  }
5671
5671
  //#endregion
5672
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/resource_types.js
5672
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.52.0/node_modules/@milaboratories/pl-model-common/dist/resource_types.js
5673
5673
  /** Well-known resource type names used across the platform. */
5674
5674
  const ResourceTypeName = {
5675
5675
  StreamManager: "StreamManager",
@@ -5685,6 +5685,7 @@ const ResourceTypeName = {
5685
5685
  BlobMap: "BlobMap",
5686
5686
  BResolveSingle: "BResolveSingle",
5687
5687
  BResolveSingleNoResult: "BResolveSingleNoResult",
5688
+ BResolveChoice: "BResolveChoice",
5688
5689
  BQueryResult: "BQueryResult",
5689
5690
  TengoTemplate: "TengoTemplate",
5690
5691
  TengoLib: "TengoLib",
@@ -5696,9 +5697,13 @@ const ResourceTypeName = {
5696
5697
  JsonString: "json/string",
5697
5698
  JsonArray: "json/array",
5698
5699
  JsonNumber: "json/number",
5700
+ JsonBool: "json/bool",
5701
+ JsonNull: "json/null",
5702
+ JsonErrorTrace: "json/errorTrace",
5699
5703
  BContextEnd: "BContextEnd",
5700
5704
  FrontendFromUrl: "Frontend/FromUrl",
5701
5705
  FrontendFromFolder: "Frontend/FromFolder",
5706
+ FrontendFromLocalTgz: "Frontend/FromLocalTgz",
5702
5707
  BObjectSpec: "BObjectSpec",
5703
5708
  Blob: "Blob",
5704
5709
  Null: "Null",
@@ -5713,7 +5718,7 @@ const ResourceTypeName = {
5713
5718
  SharedEnvelope: "SharedEnvelope"
5714
5719
  };
5715
5720
  //#endregion
5716
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/services/service_types.js
5721
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.52.0/node_modules/@milaboratories/pl-model-common/dist/services/service_types.js
5717
5722
  const SERVICE_ID_PATTERN = /^[a-zA-Z][a-zA-Z0-9]*$/;
5718
5723
  const { service, isNodeService, isWasmService, isMainService, getServiceKind, getServiceModelMethods, getServiceUiMethods } = (() => {
5719
5724
  const typeMap = /* @__PURE__ */ new Map();
@@ -5752,7 +5757,7 @@ const { service, isNodeService, isWasmService, isMainService, getServiceKind, ge
5752
5757
  };
5753
5758
  })();
5754
5759
  //#endregion
5755
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/services/service_declarations.js
5760
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.52.0/node_modules/@milaboratories/pl-model-common/dist/services/service_declarations.js
5756
5761
  const Services = {
5757
5762
  PFrameSpec: service()({
5758
5763
  type: "wasm",
@@ -5846,7 +5851,7 @@ function resolveRequiredServices(flags) {
5846
5851
  }
5847
5852
  Object.fromEntries(Object.keys(Services).map((key) => [`requires${key}`, true]));
5848
5853
  //#endregion
5849
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/services/service_injectors.js
5854
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.52.0/node_modules/@milaboratories/pl-model-common/dist/services/service_injectors.js
5850
5855
  function buildMethodMap(pick) {
5851
5856
  const result = {};
5852
5857
  for (const id of Object.values(Services)) result[id] = [...pick(id)];
@@ -5855,7 +5860,7 @@ function buildMethodMap(pick) {
5855
5860
  buildMethodMap(getServiceUiMethods);
5856
5861
  buildMethodMap(getServiceModelMethods);
5857
5862
  //#endregion
5858
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/columns/accessor_traversal.js
5863
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.52.0/node_modules/@milaboratories/pl-model-common/dist/columns/accessor_traversal.js
5859
5864
  /** Resource types that hold column collections — DFS stops here and collects. */
5860
5865
  const COLLECT_TYPES = [ResourceTypeName.PFrame];
5861
5866
  /** Resource types DFS descends through when looking for PFrames. */
@@ -5963,7 +5968,7 @@ function indexPoolBlock(block) {
5963
5968
  return result;
5964
5969
  }
5965
5970
  //#endregion
5966
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/columns/column_registry.js
5971
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.52.0/node_modules/@milaboratories/pl-model-common/dist/columns/column_registry.js
5967
5972
  /**
5968
5973
  * Id-index over a set of {@link ColumnEntriesProvider}s. Sole job:
5969
5974
  * {@link PObjectId} → {@link LeafEntry}. Generic over the accessor flavour, so
@@ -6000,7 +6005,7 @@ var ColumnRegistry = class {
6000
6005
  }
6001
6006
  };
6002
6007
  //#endregion
6003
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/columns/dedup.js
6008
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.52.0/node_modules/@milaboratories/pl-model-common/dist/columns/dedup.js
6004
6009
  /**
6005
6010
  * Two-track dedup over an item stream keyed by `ColumnUniversalId`:
6006
6011
  *
@@ -6041,7 +6046,7 @@ function dedupColumns(items, getId, getSpec) {
6041
6046
  return out;
6042
6047
  }
6043
6048
  //#endregion
6044
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/columns/providers.js
6049
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.52.0/node_modules/@milaboratories/pl-model-common/dist/columns/providers.js
6045
6050
  /**
6046
6051
  * Generic entries provider over a single accessor root. Walks `<root>` once
6047
6052
  * from the supplied `rootPath`, builds an id → {@link LeafEntry} map and
@@ -6098,7 +6103,7 @@ var ResultPoolEntriesProvider = class {
6098
6103
  }
6099
6104
  };
6100
6105
  //#endregion
6101
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/template/template_ref_form.js
6106
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.52.0/node_modules/@milaboratories/pl-model-common/dist/template/template_ref_form.js
6102
6107
  /**
6103
6108
  * Whether `value` is a reference in the readable spelling.
6104
6109
  *
@@ -6167,7 +6172,7 @@ function expandTemplatePlRef(ref) {
6167
6172
  };
6168
6173
  }
6169
6174
  //#endregion
6170
- //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.51.0/node_modules/@milaboratories/pl-model-common/dist/template/template_relocate.js
6175
+ //#region ../node_modules/.pnpm/@milaboratories+pl-model-common@1.52.0/node_modules/@milaboratories/pl-model-common/dist/template/template_relocate.js
6171
6176
  /**
6172
6177
  * Point every column identifier in a block's params at the blocks of the project being built.
6173
6178
  *
@@ -6227,7 +6232,7 @@ function relocateBlockIds(params, blockIds) {
6227
6232
  return walk(params);
6228
6233
  }
6229
6234
  //#endregion
6230
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/block_migrations.js
6235
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.10/node_modules/@platforma-sdk/model/dist/block_migrations.js
6231
6236
  /** Create a DataVersioned wrapper with correct shape */
6232
6237
  function makeVersionedData(version, data) {
6233
6238
  return {
@@ -6805,7 +6810,7 @@ var DataModel = class DataModel {
6805
6810
  }
6806
6811
  };
6807
6812
  //#endregion
6808
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/internal.js
6813
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.10/node_modules/@platforma-sdk/model/dist/internal.js
6809
6814
  /** Utility code helping to identify whether the code is running in actual UI environment */
6810
6815
  function isInUI() {
6811
6816
  return typeof globalThis.getPlatforma !== "undefined" || typeof globalThis.platforma !== "undefined";
@@ -6875,7 +6880,7 @@ function registerFutureAwait(handle, onResolve) {
6875
6880
  futureResolves.get(handle).push(onResolve);
6876
6881
  }
6877
6882
  //#endregion
6878
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/block_storage_facade.js
6883
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.10/node_modules/@platforma-sdk/model/dist/block_storage_facade.js
6879
6884
  /**
6880
6885
  * All facade callback names as constants.
6881
6886
  * These are the source of truth - the interface is derived from these.
@@ -6913,7 +6918,7 @@ function registerFacadeCallbacks(callbacks) {
6913
6918
  for (const key of Object.values(BlockStorageFacadeCallbacks)) tryRegisterCallback(key, callbacks[key]);
6914
6919
  }
6915
6920
  //#endregion
6916
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/services/block_services.js
6921
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.10/node_modules/@platforma-sdk/model/dist/services/block_services.js
6917
6922
  /**
6918
6923
  * Services required by all V3 blocks by default.
6919
6924
  * Edit this when a new service should be available to all blocks.
@@ -6929,7 +6934,7 @@ const BLOCK_SERVICE_FLAGS = {
6929
6934
  };
6930
6935
  resolveRequiredServices(BLOCK_SERVICE_FLAGS);
6931
6936
  //#endregion
6932
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/render/future.js
6937
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.10/node_modules/@platforma-sdk/model/dist/render/future.js
6933
6938
  var FutureRef = class FutureRef {
6934
6939
  handle;
6935
6940
  postProcess;
@@ -6957,7 +6962,7 @@ var FutureRef = class FutureRef {
6957
6962
  }
6958
6963
  };
6959
6964
  //#endregion
6960
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/render/accessor.js
6965
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.10/node_modules/@platforma-sdk/model/dist/render/accessor.js
6961
6966
  function ifDef(value, cb) {
6962
6967
  return value === void 0 ? void 0 : cb(value);
6963
6968
  }
@@ -7207,11 +7212,11 @@ var TreeNodeAccessor = class TreeNodeAccessor {
7207
7212
  }
7208
7213
  };
7209
7214
  //#endregion
7210
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/render/internal.js
7215
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.10/node_modules/@platforma-sdk/model/dist/render/internal.js
7211
7216
  const MainAccessorName = "main";
7212
7217
  const StagingAccessorName = "staging";
7213
7218
  //#endregion
7214
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/render/util/axis_filtering.js
7219
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.10/node_modules/@platforma-sdk/model/dist/render/util/axis_filtering.js
7215
7220
  function filterDataInfoEntries(dataInfoEntries, axisFilters) {
7216
7221
  const sortedFilters = [...axisFilters].sort((a, b) => b[0] - a[0]);
7217
7222
  const { type } = dataInfoEntries;
@@ -7275,7 +7280,7 @@ function filterDataInfoEntries(dataInfoEntries, axisFilters) {
7275
7280
  }
7276
7281
  }
7277
7282
  //#endregion
7278
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/labels/linked_column_postfix.js
7283
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.10/node_modules/@platforma-sdk/model/dist/labels/linked_column_postfix.js
7279
7284
  /**
7280
7285
  * Structural postfix derivation for linked columns (phase 2 of `deriveDistinctLabels`).
7281
7286
  *
@@ -7458,7 +7463,7 @@ function derivePostfixes(entries, format = defaultLinkerFormatter) {
7458
7463
  });
7459
7464
  }
7460
7465
  //#endregion
7461
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/labels/derive_distinct_labels.js
7466
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.10/node_modules/@platforma-sdk/model/dist/labels/derive_distinct_labels.js
7462
7467
  const DISTANCE_PENALTY = .001;
7463
7468
  const LABEL_TYPE = "__LABEL__";
7464
7469
  const LABEL_TYPE_FULL = "__LABEL__@1";
@@ -7746,7 +7751,7 @@ function repairBareByPresence(labels, minimized, records, stats, forcedSet, forc
7746
7751
  return patched;
7747
7752
  }
7748
7753
  //#endregion
7749
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/render/util/label.js
7754
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.10/node_modules/@platforma-sdk/model/dist/render/util/label.js
7750
7755
  /** @deprecated Use deriveDistinctLabels */
7751
7756
  function deriveLabels(values, getSpec, options = {}) {
7752
7757
  return deriveDistinctLabels(values.map(getSpec), options).map((label, i) => ({
@@ -7755,7 +7760,7 @@ function deriveLabels(values, getSpec, options = {}) {
7755
7760
  }));
7756
7761
  }
7757
7762
  //#endregion
7758
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/render/util/pcolumn_data.js
7763
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.10/node_modules/@platforma-sdk/model/dist/render/util/pcolumn_data.js
7759
7764
  const RT_RESOURCE_MAP = "PColumnData/ResourceMap";
7760
7765
  const RT_RESOURCE_MAP_PARTITIONED = "PColumnData/Partitioned/ResourceMap";
7761
7766
  const RT_JSON_PARTITIONED = "PColumnData/JsonPartitioned";
@@ -8098,7 +8103,7 @@ function allPColumnsReady(columns) {
8098
8103
  return columns.every(isPColumnReady);
8099
8104
  }
8100
8105
  //#endregion
8101
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/render/util/column_collection.js
8106
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.10/node_modules/@platforma-sdk/model/dist/render/util/column_collection.js
8102
8107
  function isPColumnValues(value) {
8103
8108
  if (!Array.isArray(value)) return false;
8104
8109
  if (value.length === 0) return true;
@@ -8376,7 +8381,7 @@ var PColumnCollection = class {
8376
8381
  }
8377
8382
  };
8378
8383
  //#endregion
8379
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/services/service_bridge.js
8384
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.10/node_modules/@platforma-sdk/model/dist/services/service_bridge.js
8380
8385
  /**
8381
8386
  * Builds a ServiceProxy from a ServiceDispatch.
8382
8387
  * Each service method call is forwarded to dispatch.callServiceMethod.
@@ -8385,7 +8390,7 @@ function createServiceProxy(dispatch) {
8385
8390
  return ((serviceId) => Object.freeze(Object.fromEntries(dispatch.getServiceMethods(serviceId).map((method) => [method, (...args) => dispatch.callServiceMethod(serviceId, method, ...args)]))));
8386
8391
  }
8387
8392
  //#endregion
8388
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/services/get_services.js
8393
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.10/node_modules/@platforma-sdk/model/dist/services/get_services.js
8389
8394
  const cachedServices = /* @__PURE__ */ new WeakMap();
8390
8395
  function getService(name, deps) {
8391
8396
  const ctx = deps?.ctx ?? getCfgRenderCtx();
@@ -8399,7 +8404,7 @@ function getService(name, deps) {
8399
8404
  })();
8400
8405
  }
8401
8406
  //#endregion
8402
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/render/util/pframe_upgraders.js
8407
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.10/node_modules/@platforma-sdk/model/dist/render/util/pframe_upgraders.js
8403
8408
  function patchInSetFilters(filters) {
8404
8409
  const inSetToOrEqual = (predicate) => {
8405
8410
  if (predicate.operator !== "InSet") return predicate;
@@ -8437,7 +8442,7 @@ function patchInSetFilters(filters) {
8437
8442
  return filters.map((filter) => mapFilter(filter, inSetToOrEqual));
8438
8443
  }
8439
8444
  //#endregion
8440
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/render/api.js
8445
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.10/node_modules/@platforma-sdk/model/dist/render/api.js
8441
8446
  /**
8442
8447
  * Helper function to match domain objects
8443
8448
  * @param query Optional domain to match against
@@ -8886,27 +8891,27 @@ var PluginRenderCtx = class extends RenderCtxBase {
8886
8891
  }
8887
8892
  };
8888
8893
  //#endregion
8889
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/plugin_model.js
8894
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.10/node_modules/@platforma-sdk/model/dist/plugin_model.js
8890
8895
  /** Internal plugin↔block handshake. `Symbol.for` (not `Symbol`) so it stays
8891
8896
  * identical across multiple `@platforma-sdk/model` copies in one process. */
8892
8897
  const CREATE_PLUGIN_MODEL = Symbol.for("@platforma-sdk/model:createPluginModel");
8893
8898
  //#endregion
8894
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/version.js
8895
- const PlatformaSDKVersion = "1.84.1";
8899
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.10/node_modules/@platforma-sdk/model/dist/version.js
8900
+ const PlatformaSDKVersion = "1.84.10";
8896
8901
  //#endregion
8897
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/bconfig/types.js
8902
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.10/node_modules/@platforma-sdk/model/dist/bconfig/types.js
8898
8903
  function isConfigLambda(cfgOrFh) {
8899
8904
  return cfgOrFh.__renderLambda === true;
8900
8905
  }
8901
8906
  //#endregion
8902
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/bconfig/normalization.js
8907
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.10/node_modules/@platforma-sdk/model/dist/bconfig/normalization.js
8903
8908
  function downgradeCfgOrLambda(data) {
8904
8909
  if (data === void 0) return void 0;
8905
8910
  if (isConfigLambda(data)) return data.handle;
8906
8911
  return data;
8907
8912
  }
8908
8913
  //#endregion
8909
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/block_storage_callbacks.js
8914
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.10/node_modules/@platforma-sdk/model/dist/block_storage_callbacks.js
8910
8915
  /**
8911
8916
  * BlockStorage Callback Implementations - wired to facade callbacks in BlockModelV3.done().
8912
8917
  *
@@ -9260,7 +9265,7 @@ function deriveTemplateParamsFromStorage(storageJson, deriveTemplateParams) {
9260
9265
  }
9261
9266
  }
9262
9267
  //#endregion
9263
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/block_model.js
9268
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.10/node_modules/@platforma-sdk/model/dist/block_model.js
9264
9269
  /**
9265
9270
  * Merges two feature flag objects with type-aware logic:
9266
9271
  * - `supports*` (boolean): OR — `true` if either side is `true`
@@ -9626,7 +9631,7 @@ var BlockModelV3 = class BlockModelV3 {
9626
9631
  }
9627
9632
  };
9628
9633
  //#endregion
9629
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/columns/column_recipes/leaf_rebrand.js
9634
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.10/node_modules/@platforma-sdk/model/dist/columns/column_recipes/leaf_rebrand.js
9630
9635
  /**
9631
9636
  * Replace every column leaf whose id equals `fromId` with `toId`, leaving
9632
9637
  * other column refs (linkers, sub-anchors) intact. Wrapper recipes
@@ -10844,7 +10849,7 @@ var LRUCache = class LRUCache {
10844
10849
  }
10845
10850
  };
10846
10851
  //#endregion
10847
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/columns/column_providers/providers.js
10852
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.10/node_modules/@platforma-sdk/model/dist/columns/column_providers/providers.js
10848
10853
  /**
10849
10854
  * Unified memoised factory dispatching to the right provider flavour by the
10850
10855
  * source shape:
@@ -10933,7 +10938,7 @@ function hashRawPool(rawPool) {
10933
10938
  return rawPool.map((b) => `${b.blockId}\x1f${b.prodCtx ?? ""}\x1f${b.stagingCtx ?? ""}\x1f${b.prodIncomplete ? 1 : 0}\x1f${b.stagingIncomplete ? 1 : 0}`).join("");
10934
10939
  }
10935
10940
  //#endregion
10936
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/columns/column_providers/index.js
10941
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.10/node_modules/@platforma-sdk/model/dist/columns/column_providers/index.js
10937
10942
  /**
10938
10943
  * Build the default set of ColumnsProviders for the ambient render ctx:
10939
10944
  * - `AccessorColumnsProvider` over `outputs` (if present)
@@ -10968,7 +10973,7 @@ function isColumnProvider(source) {
10968
10973
  return typeof p.getColumns === "function" && typeof p.isFinal === "function";
10969
10974
  }
10970
10975
  //#endregion
10971
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/columns/data_column.js
10976
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.10/node_modules/@platforma-sdk/model/dist/columns/data_column.js
10972
10977
  /**
10973
10978
  * Thrown by leaf-recipe factories when the requested column is provably
10974
10979
  * absent in the active render ctx — i.e. every relevant accessor reports
@@ -11208,7 +11213,7 @@ function memoizeByEntry(fn) {
11208
11213
  };
11209
11214
  }
11210
11215
  //#endregion
11211
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/columns/column_recipes/column_overrided_recipe.js
11216
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.10/node_modules/@platforma-sdk/model/dist/columns/column_recipes/column_overrided_recipe.js
11212
11217
  /**
11213
11218
  * Recipe wrapper that overlays {@link SpecOverrides} on top of any other
11214
11219
  * recipe. The id is `ColumnOverriddenKey { source: inner.id, specOverrides }`.
@@ -11346,7 +11351,7 @@ var DataColumnOverriddenRecipe = class extends ColumnOverriddenRecipe {
11346
11351
  }
11347
11352
  };
11348
11353
  //#endregion
11349
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/columns/column_recipes/column_filtered_recipe.js
11354
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.10/node_modules/@platforma-sdk/model/dist/columns/column_recipes/column_filtered_recipe.js
11350
11355
  /**
11351
11356
  * Recipe wrapper that fixes the values of selected axes of an inner recipe
11352
11357
  * (axis slicing). The id is `FilteredPColumnId { source: inner.id,
@@ -11472,7 +11477,7 @@ function toAxisSelector(axis) {
11472
11477
  return selector;
11473
11478
  }
11474
11479
  //#endregion
11475
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/columns/column_recipes/index.js
11480
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.10/node_modules/@platforma-sdk/model/dist/columns/column_recipes/index.js
11476
11481
  /**
11477
11482
  * Build a `ColumnRecipe` from a stringified id. Dispatches to the matching
11478
11483
  * concrete recipe variant based on the id's encoding and recurses on
@@ -11523,7 +11528,7 @@ function ColumnRecipeGetStatus(id, opts = {}) {
11523
11528
  }
11524
11529
  const ColumnRecipe = Object.assign(ColumnRecipeBuild, { getStatus: ColumnRecipeGetStatus });
11525
11530
  //#endregion
11526
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/columns/column_recipes/column_discovered_recipe.js
11531
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.10/node_modules/@platforma-sdk/model/dist/columns/column_recipes/column_discovered_recipe.js
11527
11532
  /**
11528
11533
  * Recipe for columns identified by a {@link ColumnDiscoveredKey}: a base
11529
11534
  * column + a `path` of linkers + qualifications.
@@ -11694,7 +11699,7 @@ function referencedUniIdsOf(key) {
11694
11699
  return /* @__PURE__ */ new Set([key.column, ...(key.path ?? []).map((item) => item.column)]);
11695
11700
  }
11696
11701
  //#endregion
11697
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/columns/column.js
11702
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.10/node_modules/@platforma-sdk/model/dist/columns/column.js
11698
11703
  /**
11699
11704
  * Unified entry point — routes between the two top-level dispatchers:
11700
11705
  * - string id (`PObjectId` / `ColumnUniversalId`) → {@link ColumnRecipe}
@@ -11708,7 +11713,7 @@ function Column(source, opts) {
11708
11713
  return DataColumn(source, opts);
11709
11714
  }
11710
11715
  //#endregion
11711
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/columns/columns_collection.js
11716
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.10/node_modules/@platforma-sdk/model/dist/columns/columns_collection.js
11712
11717
  /**
11713
11718
  * Build a {@link ColumnsCollection} from sandbox-side source descriptors.
11714
11719
  * Resolves the `columnsCollection` driver (either from `deps.driver` or via
@@ -11817,7 +11822,7 @@ function defaultCtxSources(ctx) {
11817
11822
  return [...currentBlockSources(ctx), { kind: "result_pool" }];
11818
11823
  }
11819
11824
  //#endregion
11820
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/columns/utils.js
11825
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.10/node_modules/@platforma-sdk/model/dist/columns/utils.js
11821
11826
  /**
11822
11827
  * PObjectIds of every non-hit column referenced by `recipe.getQuery()`,
11823
11828
  * deduped in traversal order. The hit column is
@@ -11948,7 +11953,7 @@ function hasSingleDataColumn(recipe) {
11948
11953
  return recipe.getReferencedIds().length === 1;
11949
11954
  }
11950
11955
  //#endregion
11951
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/filters/traverse.js
11956
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.10/node_modules/@platforma-sdk/model/dist/filters/traverse.js
11952
11957
  /**
11953
11958
  * Recursively traverses a FilterSpec tree bottom-up, applying visitor callbacks.
11954
11959
  *
@@ -11987,7 +11992,7 @@ function collectFilterSpecColumns(filter) {
11987
11992
  });
11988
11993
  }
11989
11994
  //#endregion
11990
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/filters/converters/filterToQuery.js
11995
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.10/node_modules/@platforma-sdk/model/dist/filters/converters/filterToQuery.js
11991
11996
  /** Converts a QueryColumnId object into a SpecQueryExpression reference. */
11992
11997
  function resolveColumnRef(col) {
11993
11998
  return col.type === "axis" ? {
@@ -12315,7 +12320,7 @@ function isEmpty(value) {
12315
12320
  return true;
12316
12321
  }
12317
12322
  //#endregion
12318
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/filters/distill.js
12323
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.10/node_modules/@platforma-sdk/model/dist/filters/distill.js
12319
12324
  /**
12320
12325
  * Strips non-FilterSpec metadata (whitelist approach) and removes
12321
12326
  * unfilled leaves (type is undefined or any required field is undefined).
@@ -12420,7 +12425,7 @@ const REQUIRED_KEYS_BY_TYPE = {
12420
12425
  greaterThanColumnOrEqual: ["column", "rhs"]
12421
12426
  };
12422
12427
  //#endregion
12423
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/components/PlDataTable/state-migration.js
12428
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.10/node_modules/@platforma-sdk/model/dist/components/PlDataTable/state-migration.js
12424
12429
  /** Upgrade PlDataTableStateV2 to the latest version */
12425
12430
  function upgradePlDataTableStateV2(state) {
12426
12431
  if (!state) return createPlDataTableStateV2();
@@ -12778,7 +12783,7 @@ function parseLegacyLeafColumn(s) {
12778
12783
  return parsed;
12779
12784
  }
12780
12785
  //#endregion
12781
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/components/PlDataTable/createPlDataTable/utils.js
12786
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.10/node_modules/@platforma-sdk/model/dist/components/PlDataTable/createPlDataTable/utils.js
12782
12787
  /** Adapt a {@link ColumnRecipe} to the plain {@link RuleColumn} shape. */
12783
12788
  function toRuleColumn(col) {
12784
12789
  return {
@@ -12876,7 +12881,7 @@ function deriveAllLabels(options) {
12876
12881
  })), deriveLabelsOptions).reduce((acc, label, index) => (acc[columns[index].id] = label, acc), {});
12877
12882
  }
12878
12883
  //#endregion
12879
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/components/PlDataTable/createPlDataTable/createPTableDefV3.js
12884
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.10/node_modules/@platforma-sdk/model/dist/components/PlDataTable/createPlDataTable/createPTableDefV3.js
12880
12885
  /**
12881
12886
  * Assemble a ptable def directly from recipes. Each secondary recipe is its own
12882
12887
  * outer-joined subtree: `getQuery()` encodes its linker chain, and its
@@ -12940,7 +12945,7 @@ function columnToJoinEntry(col, qualifications) {
12940
12945
  };
12941
12946
  }
12942
12947
  //#endregion
12943
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/components/PlDataTable/columnResolver.js
12948
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.10/node_modules/@platforma-sdk/model/dist/components/PlDataTable/columnResolver.js
12944
12949
  function createColumnResolver(columns) {
12945
12950
  const axisIds = [];
12946
12951
  for (const c of columns) for (const ax of c.getSpec().axesSpec) axisIds.push(getAxisId(ax));
@@ -12962,7 +12967,7 @@ function createColumnResolver(columns) {
12962
12967
  };
12963
12968
  }
12964
12969
  //#endregion
12965
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/components/PlDataTable/createPlDataTable/discoverColumns.js
12970
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.10/node_modules/@platforma-sdk/model/dist/components/PlDataTable/createPlDataTable/discoverColumns.js
12966
12971
  /**
12967
12972
  * Discover columns from sources/anchors and split them into primary
12968
12973
  * (direct anchor hits — zero-hop, query is a bare column) and secondary
@@ -13008,7 +13013,7 @@ function discoverLabelColumns(ctx, primary) {
13008
13013
  }).getColumns();
13009
13014
  }
13010
13015
  //#endregion
13011
- //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.1/node_modules/@platforma-sdk/model/dist/components/PlDataTable/createPlDataTable/createPlDataTableV3.js
13016
+ //#region ../node_modules/.pnpm/@platforma-sdk+model@1.84.10/node_modules/@platforma-sdk/model/dist/components/PlDataTable/createPlDataTable/createPlDataTableV3.js
13012
13017
  function createPlDataTableV3(ctx, options) {
13013
13018
  const state = upgradePlDataTableStateV2(options.tableState);
13014
13019
  const primaryJoinType = options.primaryJoinType ?? "full";
@@ -13387,6 +13392,17 @@ const StopCodonReplacements = objectType({
13387
13392
  ochre: stringType().optional(),
13388
13393
  opal: stringType().optional()
13389
13394
  }).optional();
13395
+ /** Per-step replacement of the workflow's sizing rule; an unset field keeps the rule's value. */
13396
+ const StepResourceOverride = objectType({
13397
+ memFloor: numberType().int().gte(1).optional(),
13398
+ memIntercept: numberType().int().gte(0).optional(),
13399
+ memSlope: numberType().gte(0).optional(),
13400
+ cap: numberType().int().gte(1).optional(),
13401
+ cpuIntercept: numberType().int().gte(1).optional(),
13402
+ cpuSlope: numberType().gte(0).optional()
13403
+ }).refine((o) => o.cap === void 0 || o.memFloor === void 0 || o.cap >= o.memFloor, { message: "Cap must be at least the memory floor" });
13404
+ /** Keyed by step: the MiXCR command, or `mitool-<command>`. */
13405
+ const StepResources = recordType(stringType(), StepResourceOverride);
13390
13406
  const BlockArgsValidBase = objectType({
13391
13407
  defaultBlockLabel: stringType().optional(),
13392
13408
  customBlockLabel: stringType().optional(),
@@ -13406,6 +13422,7 @@ const BlockArgsValidBase = objectType({
13406
13422
  limitInput: numberType().int().optional(),
13407
13423
  perProcessMemGB: numberType().int().gte(1, "1GB or more required").optional(),
13408
13424
  perProcessCPUs: numberType().int().gte(1, "1 or more required").optional(),
13425
+ stepResources: StepResources.optional(),
13409
13426
  cloneClusteringMode: enumType([
13410
13427
  "relaxed",
13411
13428
  "default",
@@ -13430,6 +13447,14 @@ BlockArgsValidBase.partial({
13430
13447
  //#endregion
13431
13448
  //#region ../model/dist/progress.js
13432
13449
  const ProgressPrefix = "[==PROGRESS==]";
13450
+ //#endregion
13451
+ //#region ../model/dist/step-resources.js
13452
+ /** Drops steps whose override sets no field, so clearing a row leaves no trace in the args. */
13453
+ function dropEmptyOverrides(o) {
13454
+ if (o === void 0) return void 0;
13455
+ const kept = Object.entries(o).map(([step, v]) => [step, Object.fromEntries(Object.entries(v).filter(([, x]) => x !== void 0))]).filter(([, v]) => Object.keys(v).length > 0);
13456
+ return kept.length > 0 ? Object.fromEntries(kept) : void 0;
13457
+ }
13433
13458
  stringType().length(24).regex(/[ABCDEFGHIJKLMNOPQRSTUVWXYZ234567]/).brand("PlId");
13434
13459
  //#endregion
13435
13460
  //#region ../model/dist/preset.js
@@ -13801,6 +13826,46 @@ const dataModel = new DataModelBuilder({ kind }).from("v1").upgradeLegacy(({ arg
13801
13826
  tableState: createPlDataTableStateV2(),
13802
13827
  runMode: params?.runMode ?? "full"
13803
13828
  }));
13829
+ /**
13830
+ * Reads the per-sample `logs` column. A sample's value is one log stream, or a map of streams
13831
+ * keyed by MiXCR step for a run split into one command per step. Entries are keyed [sampleId]
13832
+ * or [sampleId, step].
13833
+ */
13834
+ function parseSampleLogs(acc, parse) {
13835
+ if (acc === void 0) return void 0;
13836
+ const data = [];
13837
+ let isComplete = acc.getInputsLocked();
13838
+ for (const sampleKey of acc.listInputFields()) {
13839
+ const sample = acc.resolve({
13840
+ field: sampleKey,
13841
+ assertFieldType: "Input"
13842
+ });
13843
+ if (sample === void 0) {
13844
+ isComplete = false;
13845
+ continue;
13846
+ }
13847
+ const key = JSON.parse(sampleKey);
13848
+ if (sample.resourceType.name === "PColumnData/ResourceMap") {
13849
+ const steps = parseResourceMap(sample, parse, false);
13850
+ isComplete &&= steps.isComplete;
13851
+ for (const step of steps.data) data.push({
13852
+ key: [...key, ...step.key],
13853
+ value: step.value
13854
+ });
13855
+ } else {
13856
+ const value = parse(sample);
13857
+ if (value === void 0 || value === null) isComplete = false;
13858
+ else data.push({
13859
+ key,
13860
+ value
13861
+ });
13862
+ }
13863
+ }
13864
+ return {
13865
+ isComplete,
13866
+ data
13867
+ };
13868
+ }
13804
13869
  const platforma$1 = BlockModelV3.create({
13805
13870
  dataModel,
13806
13871
  kind
@@ -13839,7 +13904,11 @@ const platforma$1 = BlockModelV3.create({
13839
13904
  leftAlignmentMode: data.leftAlignmentMode,
13840
13905
  rightAlignmentMode: data.rightAlignmentMode,
13841
13906
  materialType: data.materialType,
13842
- isGenericPreset: data.isGenericPreset
13907
+ isGenericPreset: data.isGenericPreset,
13908
+ ...data.listStepsParams ? {
13909
+ listSteps: true,
13910
+ ...data.listStepsParams
13911
+ } : {}
13843
13912
  })).args((data) => {
13844
13913
  if (!data.input) throw new Error("Input dataset is required");
13845
13914
  if (!data.preset) throw new Error("Preset is required");
@@ -13869,6 +13938,7 @@ const platforma$1 = BlockModelV3.create({
13869
13938
  limitInput: data.runMode === "dry" ? data.limitInput : void 0,
13870
13939
  perProcessMemGB: data.perProcessMemGB,
13871
13940
  perProcessCPUs: data.perProcessCPUs,
13941
+ stepResources: dropEmptyOverrides(data.stepResources),
13872
13942
  cloneClusteringMode: data.cloneClusteringMode,
13873
13943
  presetCommonName: data.presetCommonName,
13874
13944
  isGenericPreset: data.isGenericPreset,
@@ -13884,6 +13954,14 @@ const platforma$1 = BlockModelV3.create({
13884
13954
  field: "preset",
13885
13955
  assertFieldType: "Input",
13886
13956
  allowPermanentAbsence: true
13957
+ })?.getDataAsJson()).retentiveOutput("presetSupport", (ctx) => ctx.prerun?.resolve({
13958
+ field: "presetSupport",
13959
+ assertFieldType: "Input",
13960
+ allowPermanentAbsence: true
13961
+ })?.getDataAsJson()).output("stepDefaults", (ctx) => ctx.prerun?.resolve({
13962
+ field: "stepDefaults",
13963
+ assertFieldType: "Input",
13964
+ allowPermanentAbsence: true
13887
13965
  })?.getDataAsJson()).retentiveOutput("libraryOptions", (ctx) => ctx.resultPool.getOptions((spec) => spec.annotations?.["pl7.app/vdj/isLibrary"] === "true", {
13888
13966
  includeNativeLabel: true,
13889
13967
  addLabelAsSuffix: true
@@ -13895,9 +13973,9 @@ const platforma$1 = BlockModelV3.create({
13895
13973
  if (!acc || !acc.getInputsLocked()) return void 0;
13896
13974
  return parseResourceMap(acc, (acc) => acc.getFileHandle(), true);
13897
13975
  }).output("reports", (ctx) => parseResourceMap(ctx.outputs?.resolve("reports"), (acc) => acc.getFileHandle(), false)).output("logs", (ctx) => {
13898
- return ctx.outputs !== void 0 ? parseResourceMap(ctx.outputs?.resolve("logs"), (acc) => acc.getLogHandle(), false) : void 0;
13976
+ return ctx.outputs !== void 0 ? parseSampleLogs(ctx.outputs?.resolve("logs"), (acc) => acc.getLogHandle()) : void 0;
13899
13977
  }).output("progress", (ctx) => {
13900
- return ctx.outputs !== void 0 ? parseResourceMap(ctx.outputs?.resolve("logs"), (acc) => acc.getProgressLog(ProgressPrefix), false) : void 0;
13978
+ return ctx.outputs !== void 0 ? parseSampleLogs(ctx.outputs?.resolve("logs"), (acc) => acc.getProgressLog(ProgressPrefix)) : void 0;
13901
13979
  }).output("started", (ctx) => ctx.outputs !== void 0).output("done", (ctx) => {
13902
13980
  return ctx.outputs !== void 0 ? parseResourceMap(ctx.outputs?.resolve("clns"), (_acc) => true, false).data.map((e) => e.key[0]) : void 0;
13903
13981
  }).outputWithStatus("clones", (ctx) => {