@continuum-dev/runtime 0.1.2 → 0.1.3

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.
@@ -1 +1 @@
1
- {"version":3,"file":"collection-resolver.d.ts","sourceRoot":"","sources":["../../../../../packages/runtime/src/lib/reconciliation/collection-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,SAAS,EAAY,MAAM,qBAAqB,CAAC;AAGpG,OAAO,KAAK,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAS9E,UAAU,0BAA0B;IAClC,KAAK,EAAE,SAAS,CAAC,mBAAmB,CAAC,CAAC;IACtC,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAC9B,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,cAAc,GAAG,SAAS,CAAC,mBAAmB,CAAC,CA4BnG;AAED,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,cAAc,GAAG,SAAS,CAAC,mBAAmB,CAAC,CAUjG;AAoFD,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,cAAc,EACzB,OAAO,EAAE,cAAc,EACvB,UAAU,EAAE,OAAO,EACnB,OAAO,EAAE,qBAAqB,GAC7B,0BAA0B,CA+H5B;AAED,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,cAAc,EACpB,KAAK,EAAE,OAAO,GACb,SAAS,CAAC,mBAAmB,CAAC,CAShC"}
1
+ {"version":3,"file":"collection-resolver.d.ts","sourceRoot":"","sources":["../../../../../packages/runtime/src/lib/reconciliation/collection-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,SAAS,EAAY,MAAM,qBAAqB,CAAC;AAGpG,OAAO,KAAK,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAS9E,UAAU,0BAA0B;IAClC,KAAK,EAAE,SAAS,CAAC,mBAAmB,CAAC,CAAC;IACtC,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAC9B,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,cAAc,GAAG,SAAS,CAAC,mBAAmB,CAAC,CA4BnG;AAED,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,cAAc,GAAG,SAAS,CAAC,mBAAmB,CAAC,CAUjG;AAoFD,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,cAAc,EACzB,OAAO,EAAE,cAAc,EACvB,UAAU,EAAE,OAAO,EACnB,OAAO,EAAE,qBAAqB,GAC7B,0BAA0B,CA6I5B;AAED,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,cAAc,EACpB,KAAK,EAAE,OAAO,GACb,SAAS,CAAC,mBAAmB,CAAC,CAShC"}
@@ -146,7 +146,7 @@ export function reconcileCollectionValue(priorNode, newNode, priorValue, options
146
146
  // If AI provided new defaultValues, populate those instead
147
147
  if (receivedNewDefaults) {
148
148
  const defaultCollection = resolveCollectionDefaultValues(newNode);
149
- const constrained = applyItemConstraints(defaultCollection.value.items, newNode.minItems, newNode.maxItems, issues, newNode.id);
149
+ const constrained = applyItemConstraints(defaultCollection.value.items, newNode.minItems, newNode.maxItems, issues, newNode.id, newNode.template);
150
150
  // If there were dirty items, return the new defaults as a `suggestion` for the whole collection
151
151
  if (hasDirtyItems) {
152
152
  const suggestedValue = {
@@ -208,7 +208,7 @@ export function reconcileCollectionValue(priorNode, newNode, priorValue, options
208
208
  }
209
209
  return { values };
210
210
  });
211
- const constrained = applyItemConstraints(migratedItems, newNode.minItems, newNode.maxItems, issues, newNode.id);
211
+ const constrained = applyItemConstraints(migratedItems, newNode.minItems, newNode.maxItems, issues, newNode.id, newNode.template);
212
212
  return {
213
213
  value: { value: { items: constrained } },
214
214
  issues,
@@ -225,7 +225,7 @@ export function normalizeCollectionValue(node, value) {
225
225
  : [];
226
226
  return { value: { items } };
227
227
  }
228
- function applyItemConstraints(items, minItems, maxItems, issues, nodeId) {
228
+ function applyItemConstraints(items, minItems, maxItems, issues, nodeId, template) {
229
229
  let constrained = [...items];
230
230
  const min = normalizeMinItems(minItems);
231
231
  const max = normalizeMaxItems(maxItems);
@@ -239,7 +239,7 @@ function applyItemConstraints(items, minItems, maxItems, issues, nodeId) {
239
239
  });
240
240
  }
241
241
  while (constrained.length < min) {
242
- constrained.push({ values: {} });
242
+ constrained.push({ values: collectTemplateDefaults(template) });
243
243
  issues.push({
244
244
  severity: ISSUE_SEVERITY.INFO,
245
245
  nodeId,
@@ -1 +1 @@
1
- {"version":3,"file":"node-resolver.d.ts","sourceRoot":"","sources":["../../../../../packages/runtime/src/lib/reconciliation/node-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAuB,MAAM,qBAAqB,CAAC;AAE5F,OAAO,KAAK,EACV,yBAAyB,EACzB,mBAAmB,EACnB,qBAAqB,EACrB,SAAS,EACV,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAwB3D,wBAAgB,eAAe,CAC7B,GAAG,EAAE,qBAAqB,EAC1B,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,SAAS,EAAE,YAAY,EACvB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,qBAAqB,GAC7B,yBAAyB,CAiF3B;AAgOD,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,qBAAqB,EAC1B,SAAS,EAAE,YAAY,EACvB,OAAO,EAAE,qBAAqB,EAC9B,GAAG,EAAE,MAAM,GACV;IAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IAAC,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;CAAE,CAsCtG"}
1
+ {"version":3,"file":"node-resolver.d.ts","sourceRoot":"","sources":["../../../../../packages/runtime/src/lib/reconciliation/node-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAuB,MAAM,qBAAqB,CAAC;AAE5F,OAAO,KAAK,EACV,yBAAyB,EACzB,mBAAmB,EACnB,qBAAqB,EACrB,SAAS,EACV,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAwB3D,wBAAgB,eAAe,CAC7B,GAAG,EAAE,qBAAqB,EAC1B,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,SAAS,EAAE,YAAY,EACvB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,qBAAqB,GAC7B,yBAAyB,CAiF3B;AAuOD,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,qBAAqB,EAC1B,SAAS,EAAE,YAAY,EACvB,OAAO,EAAE,qBAAqB,EAC9B,GAAG,EAAE,MAAM,GACV;IAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IAAC,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;CAAE,CAsCtG"}
@@ -124,13 +124,15 @@ function resolveHashChangedNode(acc, newId, priorNode, priorNodeId, newNode, mat
124
124
  resolveUnchangedNode(acc, newId, priorNode, priorNodeId, newNode, matchedBy, priorValue, priorData, now);
125
125
  }
126
126
  function resolveUnchangedNode(acc, newId, priorNode, priorNodeId, newNode, matchedBy, priorValue, priorData, now) {
127
+ let reconciledValue = priorValue !== undefined ? priorValue : undefined;
128
+ let didApplyDefaultChange = false;
127
129
  if (priorValue !== undefined) {
128
130
  const priorNodeValue = priorValue;
129
131
  const resolvedValue = { ...priorNodeValue };
130
- // Check if AI provided a new defaultValue that differs from prior
131
132
  if ('defaultValue' in newNode && newNode.defaultValue !== undefined) {
132
133
  if ('defaultValue' in priorNode) {
133
134
  if (JSON.stringify(priorNode.defaultValue) !== JSON.stringify(newNode.defaultValue)) {
135
+ didApplyDefaultChange = true;
134
136
  if (priorNodeValue.isDirty) {
135
137
  resolvedValue.suggestion = newNode.defaultValue;
136
138
  }
@@ -140,6 +142,7 @@ function resolveUnchangedNode(acc, newId, priorNode, priorNodeId, newNode, match
140
142
  }
141
143
  }
142
144
  else {
145
+ didApplyDefaultChange = true;
143
146
  if (priorNodeValue.isDirty) {
144
147
  resolvedValue.suggestion = newNode.defaultValue;
145
148
  }
@@ -149,9 +152,13 @@ function resolveUnchangedNode(acc, newId, priorNode, priorNodeId, newNode, match
149
152
  }
150
153
  }
151
154
  acc.values[newId] = resolvedValue;
155
+ reconciledValue = resolvedValue;
152
156
  carryValuesMeta(acc.valueLineage, newId, priorNodeId, priorData, now, false);
157
+ if (didApplyDefaultChange) {
158
+ acc.diffs.push(migratedDiff(newId, priorValue, resolvedValue));
159
+ }
153
160
  }
154
- acc.resolutions.push(carriedResolution(newId, priorNodeId, matchedBy, priorNode.type, priorValue, priorValue !== undefined ? priorValue : undefined));
161
+ acc.resolutions.push(carriedResolution(newId, priorNodeId, matchedBy, priorNode.type, priorValue, reconciledValue));
155
162
  }
156
163
  export function detectRemovedNodes(ctx, priorData, options, now) {
157
164
  const diffs = [];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@continuum-dev/runtime",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -39,6 +39,6 @@
39
39
  "LICENSE*"
40
40
  ],
41
41
  "dependencies": {
42
- "@continuum-dev/contract": "^0.1.2"
42
+ "@continuum-dev/contract": "^0.1.3"
43
43
  }
44
44
  }