prelude-context 1.7.0 → 1.8.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.
@@ -107,25 +107,87 @@ export async function update(options = {}) {
107
107
  }
108
108
  }
109
109
  /**
110
- * Force update - overwrites everything
110
+ * Force update - re-infers everything but preserves existing fields that
111
+ * inference can't produce. Inferred fields always win; existing fields
112
+ * are kept only when the inference engine returned nothing for them.
111
113
  */
112
114
  async function forceUpdate(contextDir, inferred, options) {
113
115
  if (options.dryRun) {
114
- logger.info('🔍 Force mode would overwrite all context files');
115
- logger.info('(decisions.json and changelog.md will be preserved)');
116
+ logger.info('🔍 Force mode would overwrite all inferred context files');
117
+ logger.info('(decisions.json, changelog.md, and hand-curated fields preserved)');
116
118
  return;
117
119
  }
118
- // Write inferred context
119
- await writeJSON(join(contextDir, 'project.json'), inferred.project);
120
- await writeJSON(join(contextDir, 'stack.json'), inferred.stack);
121
- await writeJSON(join(contextDir, 'architecture.json'), inferred.architecture);
122
- await writeJSON(join(contextDir, 'constraints.json'), inferred.constraints);
120
+ // Read existing context so we can merge
121
+ const existing = {
122
+ project: await safeReadJSON(join(contextDir, 'project.json')),
123
+ stack: await safeReadJSON(join(contextDir, 'stack.json')),
124
+ architecture: await safeReadJSON(join(contextDir, 'architecture.json')),
125
+ constraints: await safeReadJSON(join(contextDir, 'constraints.json')),
126
+ };
127
+ // Merge: inferred values win, but existing fields are preserved when
128
+ // inference returned undefined/null/empty for them.
129
+ const mergedProject = mergePreserving(existing.project, inferred.project);
130
+ const mergedStack = mergePreserving(existing.stack, inferred.stack);
131
+ const mergedArch = mergePreserving(existing.architecture, inferred.architecture);
132
+ const mergedConstraints = mergePreserving(existing.constraints, inferred.constraints);
133
+ await writeJSON(join(contextDir, 'project.json'), mergedProject);
134
+ await writeJSON(join(contextDir, 'stack.json'), mergedStack);
135
+ await writeJSON(join(contextDir, 'architecture.json'), mergedArch);
136
+ await writeJSON(join(contextDir, 'constraints.json'), mergedConstraints);
123
137
  // Preserve decisions and changelog (they're already on disk)
124
138
  if (!options.silent) {
125
139
  logger.success('✅ Force update complete');
126
140
  logger.info('â„šī¸ All context files overwritten (except decisions.json and changelog.md)');
127
141
  }
128
142
  }
143
+ /**
144
+ * Safely read JSON, returning empty object if file doesn't exist or is invalid.
145
+ */
146
+ async function safeReadJSON(path) {
147
+ try {
148
+ return await readJSON(path);
149
+ }
150
+ catch {
151
+ return {};
152
+ }
153
+ }
154
+ /**
155
+ * Merge inferred data over existing, preserving existing fields that
156
+ * inference returned empty/undefined for.
157
+ *
158
+ * Rule: inferred non-empty values always win. Existing values are kept
159
+ * only when the inferred value is undefined, null, empty string, empty
160
+ * array, or empty object.
161
+ */
162
+ function mergePreserving(existing, inferred) {
163
+ if (!existing || typeof existing !== 'object')
164
+ return inferred;
165
+ if (!inferred || typeof inferred !== 'object')
166
+ return existing;
167
+ const merged = { ...existing };
168
+ // Overlay all inferred fields
169
+ for (const key of Object.keys(inferred)) {
170
+ const val = inferred[key];
171
+ if (val === undefined || val === null)
172
+ continue;
173
+ // Empty array — keep existing if it has content
174
+ if (Array.isArray(val) && val.length === 0) {
175
+ if (Array.isArray(existing[key]) && existing[key].length > 0)
176
+ continue;
177
+ }
178
+ // Empty object — keep existing if it has content
179
+ if (typeof val === 'object' && !Array.isArray(val) && Object.keys(val).length === 0) {
180
+ if (typeof existing[key] === 'object' && existing[key] !== null &&
181
+ !Array.isArray(existing[key]) && Object.keys(existing[key]).length > 0)
182
+ continue;
183
+ }
184
+ // Empty string — keep existing if it has content
185
+ if (val === '' && existing[key] && typeof existing[key] === 'string' && existing[key].length > 0)
186
+ continue;
187
+ merged[key] = val;
188
+ }
189
+ return merged;
190
+ }
129
191
  /**
130
192
  * Display changes in a readable format
131
193
  */
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/commands/update.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/commands/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAoB,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzG,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAUzC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,UAAyB,EAAE;IACtD,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IAE9C,MAAM,UAAU,GAAG,YAAY;QAC7B,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAY,CAAC;QAC9D,CAAC,CAAC,UAAU,CAAC;IAEf,0BAA0B;IAC1B,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,MAAM,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;QACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACpB,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,CAAC;QACH,2BAA2B;QAC3B,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,UAAU,CAAC,CAAC;QAElD,gCAAgC;QAChC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACpB,YAAY,CAAC,MAAM,EAAE,CAAC;YACtB,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBACpB,MAAM,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;QAED,wBAAwB;QACxB,MAAM,QAAQ,GAAG;YACf,OAAO,EAAE,MAAM,QAAQ,CAAU,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;YAClE,KAAK,EAAE,MAAM,QAAQ,CAAQ,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;YAC5D,YAAY,EAAE,MAAM,QAAQ,CAAe,IAAI,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;YACjF,WAAW,EAAE,MAAM,QAAQ,CAAc,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;SAC/E,CAAC;QAEF,yBAAyB;QACzB,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,QAAQ,GAAG;YACf,OAAO,EAAE,MAAM,oBAAoB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;YAClD,KAAK,EAAE,MAAM,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;YACtC,YAAY,EAAE,MAAM,iBAAiB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;YACpD,WAAW,EAAE,MAAM,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;SACnD,CAAC;QAEF,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,8DAA8D;YAC9D,OAAO,MAAM,WAAW,CAAC,UAAU,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC1D,CAAC;QAED,mBAAmB;QACnB,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,YAAY,CAAC,CAAC;QAE/C,MAAM,aAAa,GAAG,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC9E,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;QACtE,MAAM,kBAAkB,GAAG,MAAM,CAAC,iBAAiB,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;QAClG,MAAM,iBAAiB,GAAG,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;QAE9F,MAAM,UAAU,GAAG;YACjB,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YACnE,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YAC/D,GAAG,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YAC7E,GAAG,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;SAC5E,CAAC;QAEF,eAAe;QACf,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,MAAM,CAAC,OAAO,CAAC,4CAA4C,CAAC,CAAC;YAC7D,OAAO;QACT,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,cAAc,CAAC,UAAU,CAAC,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;QAED,gCAAgC;QAChC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;YACxD,MAAM,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;YAC3D,OAAO;QACT,CAAC;QAED,4CAA4C;QAC5C,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;YAC3E,sCAAsC;QACxC,CAAC;QAED,gBAAgB;QAChB,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;QACxE,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QACpE,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,mBAAmB,CAAC,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAClF,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAEhF,wBAAwB;QACxB,cAAc,CAAC,YAAY,EAAE,cAAc,EAAE,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;QACrF,cAAc,CAAC,YAAY,EAAE,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC/E,cAAc,CAAC,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;QACpG,cAAc,CAAC,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;QAEjG,YAAY,CAAC,IAAI,EAAE,CAAC;QAEpB,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACpB,MAAM,CAAC,OAAO,CAAC,sCAAsC,UAAU,CAAC,MAAM,mBAAmB,CAAC,CAAC;YAC3F,MAAM,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;QACnE,CAAC;IAEH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,MAAM,CAAC,KAAK,CAAC,kBAAkB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,WAAW,CACxB,UAAkB,EAClB,QAAa,EACb,OAAsB;IAEtB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;QACxE,MAAM,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;QACjF,OAAO;IACT,CAAC;IAED,wCAAwC;IACxC,MAAM,QAAQ,GAAG;QACf,OAAO,EAAE,MAAM,YAAY,CAAU,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QACtE,KAAK,EAAE,MAAM,YAAY,CAAQ,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QAChE,YAAY,EAAE,MAAM,YAAY,CAAe,IAAI,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;QACrF,WAAW,EAAE,MAAM,YAAY,CAAc,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;KACnF,CAAC;IAEF,qEAAqE;IACrE,oDAAoD;IACpD,MAAM,aAAa,GAAG,eAAe,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC1E,MAAM,WAAW,GAAG,eAAe,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpE,MAAM,UAAU,GAAG,eAAe,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;IACjF,MAAM,iBAAiB,GAAG,eAAe,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;IAEtF,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,EAAE,aAAa,CAAC,CAAC;IACjE,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,CAAC;IAC7D,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,mBAAmB,CAAC,EAAE,UAAU,CAAC,CAAC;IACnE,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,EAAE,iBAAiB,CAAC,CAAC;IAEzE,6DAA6D;IAE7D,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACpB,MAAM,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;QAC1C,MAAM,CAAC,IAAI,CAAC,4EAA4E,CAAC,CAAC;IAC5F,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,YAAY,CAAI,IAAY;IACzC,IAAI,CAAC;QACH,OAAO,MAAM,QAAQ,CAAI,IAAI,CAAC,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,eAAe,CAAC,QAAa,EAAE,QAAa;IACnD,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC/D,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAE/D,MAAM,MAAM,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;IAE/B,8BAA8B;IAC9B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxC,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI;YAAE,SAAS;QAEhD,gDAAgD;QAChD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3C,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC;gBAAE,SAAS;QACzE,CAAC;QAED,iDAAiD;QACjD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpF,IAAI,OAAO,QAAQ,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,IAAI;gBAC3D,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC;gBAAE,SAAS;QACvF,CAAC;QAED,iDAAiD;QACjD,IAAI,GAAG,KAAK,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,QAAQ,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC;YAAE,SAAS;QAE3G,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IACpB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,OAA8C;IACpE,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;QAC7C,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;YAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7C,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9B,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAmC,CAAC,CAAC;IAExC,KAAK,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1D,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC;QAE3B,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;YACjC,MAAM,IAAI,GAAG;gBACX,KAAK,EAAE,MAAM;gBACb,OAAO,EAAE,MAAM;gBACf,QAAQ,EAAE,MAAM;gBAChB,SAAS,EAAE,MAAM;aAClB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAEf,MAAM,KAAK,GAAG;gBACZ,KAAK,EAAE,UAAU,EAAK,QAAQ;gBAC9B,OAAO,EAAE,UAAU,EAAG,MAAM;gBAC5B,QAAQ,EAAE,UAAU,EAAE,SAAS;gBAC/B,SAAS,EAAE,UAAU,EAAE,OAAO;aAC/B,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAEf,MAAM,KAAK,GAAG,SAAS,CAAC;YAExB,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,KAAK,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YAEzE,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAClC,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC7D,CAAC;YACD,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAClC,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CACrB,YAA0B,EAC1B,IAAY,EACZ,MAAW,EACX,QAAa;IAEb,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACtC,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,aAAa,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;QAEpC,wBAAwB;QACxB,IAAI,WAAW,KAAK,SAAS;YAAE,SAAS;QAExC,4CAA4C;QAC5C,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC;YAClE,YAAY,CAAC,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;QACrD,CAAC;aAAM,CAAC;YACN,6BAA6B;YAC7B,YAAY,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"merger.d.ts","sourceRoot":"","sources":["../../../src/core/merger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEpF;;GAEG;AAEH,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,MAAM,EAAE,CAAC,CAAC;IACV,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,UAAU,GAAG,WAAW,CAAC;IACrD,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,qBAAa,aAAa;IACZ,OAAO,CAAC,YAAY;gBAAZ,YAAY,EAAE,YAAY;IAE9C;;OAEG;IACH,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;IAiFxE;;OAEG;IACH,UAAU,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;IA4ChE;;OAEG;IACH,iBAAiB,CAAC,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,GAAG,WAAW,CAAC,YAAY,CAAC;IAkD5F;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC;IA6CxF;;OAEG;IACH,OAAO,CAAC,cAAc;IAItB;;OAEG;IACH,OAAO,CAAC,cAAc;CASvB"}
1
+ {"version":3,"file":"merger.d.ts","sourceRoot":"","sources":["../../../src/core/merger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEpF;;GAEG;AAEH,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,MAAM,EAAE,CAAC,CAAC;IACV,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,UAAU,GAAG,WAAW,CAAC;IACrD,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,qBAAa,aAAa;IACZ,OAAO,CAAC,YAAY;gBAAZ,YAAY,EAAE,YAAY;IAE9C;;OAEG;IACH,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;IAiFxE;;OAEG;IACH,UAAU,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;IAiFhE;;OAEG;IACH,iBAAiB,CAAC,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,GAAG,WAAW,CAAC,YAAY,CAAC;IAkD5F;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC;IA+ExF;;OAEG;IACH,OAAO,CAAC,cAAc;IAItB;;OAEG;IACH,OAAO,CAAC,cAAc;CASvB"}
@@ -83,8 +83,41 @@ export class ContextMerger {
83
83
  */
84
84
  mergeStack(existing, inferred) {
85
85
  const changes = [];
86
- const merged = { ...inferred };
87
- // Check for removed dependencies
86
+ // Start from existing, overlay inferred — preserves fields inference can't produce
87
+ const merged = { ...existing, ...inferred };
88
+ // Carry forward existing fields that inference returned empty/undefined for
89
+ for (const key of Object.keys(existing)) {
90
+ const existingValue = existing[key];
91
+ const inferredValue = inferred[key];
92
+ if (existingValue !== undefined && existingValue !== null) {
93
+ // Inference produced nothing for this field — keep existing
94
+ if (inferredValue === undefined || inferredValue === null) {
95
+ merged[key] = existingValue;
96
+ changes.push({
97
+ field: key,
98
+ type: 'preserved',
99
+ newValue: existingValue,
100
+ reason: 'Existing value preserved (not re-inferred)',
101
+ });
102
+ }
103
+ // Inference produced an empty array/object but existing has content — keep existing
104
+ else if ((Array.isArray(inferredValue) && inferredValue.length === 0 &&
105
+ Array.isArray(existingValue) && existingValue.length > 0) ||
106
+ (typeof inferredValue === 'object' && !Array.isArray(inferredValue) &&
107
+ Object.keys(inferredValue).length === 0 &&
108
+ typeof existingValue === 'object' && !Array.isArray(existingValue) &&
109
+ Object.keys(existingValue).length > 0)) {
110
+ merged[key] = existingValue;
111
+ changes.push({
112
+ field: key,
113
+ type: 'preserved',
114
+ newValue: existingValue,
115
+ reason: 'Existing value preserved (inference returned empty)',
116
+ });
117
+ }
118
+ }
119
+ }
120
+ // Track framework/dep additions and removals
88
121
  const existingDeps = new Set([
89
122
  ...(existing.frameworks || []),
90
123
  ...(existing.buildTools || []),
@@ -170,7 +203,27 @@ export class ContextMerger {
170
203
  */
171
204
  mergeConstraints(existing, inferred) {
172
205
  const changes = [];
173
- const merged = { ...inferred };
206
+ // Start from existing, overlay inferred — preserves hand-curated fields
207
+ const merged = { ...existing, ...inferred };
208
+ // Carry forward existing fields that inference returned empty/undefined for
209
+ for (const key of Object.keys(existing)) {
210
+ const existingValue = existing[key];
211
+ const inferredValue = inferred[key];
212
+ if (existingValue !== undefined && existingValue !== null) {
213
+ if (inferredValue === undefined || inferredValue === null) {
214
+ merged[key] = existingValue;
215
+ }
216
+ // Preserve non-empty arrays/objects over empty inferred ones
217
+ else if ((Array.isArray(inferredValue) && inferredValue.length === 0 &&
218
+ Array.isArray(existingValue) && existingValue.length > 0) ||
219
+ (typeof inferredValue === 'object' && !Array.isArray(inferredValue) &&
220
+ Object.keys(inferredValue).length === 0 &&
221
+ typeof existingValue === 'object' && !Array.isArray(existingValue) &&
222
+ Object.keys(existingValue).length > 0)) {
223
+ merged[key] = existingValue;
224
+ }
225
+ }
226
+ }
174
227
  // Preserve user-added preferences
175
228
  if (existing.preferences && existing.preferences.length > 0) {
176
229
  const manualPreferences = existing.preferences.filter(pref => this.stateManager.isManuallyEdited('constraints.json', `preferences.${pref.category}`));
@@ -188,13 +241,27 @@ export class ContextMerger {
188
241
  }
189
242
  }
190
243
  // Merge mustUse/mustNotUse (combine inferred + manual)
191
- if (existing.mustUse) {
192
- const manual = existing.mustUse.filter(item => this.stateManager.isManuallyEdited('constraints.json', `mustUse.${item}`));
193
- merged.mustUse = [...new Set([...(inferred.mustUse || []), ...manual])];
244
+ // If inference returned nothing, keep all existing items.
245
+ // Otherwise, keep inferred + manually-edited existing items.
246
+ if (existing.mustUse && existing.mustUse.length > 0) {
247
+ const inferredMustUse = inferred.mustUse || [];
248
+ if (inferredMustUse.length === 0) {
249
+ merged.mustUse = existing.mustUse;
250
+ }
251
+ else {
252
+ const manual = existing.mustUse.filter(item => this.stateManager.isManuallyEdited('constraints.json', `mustUse.${item}`));
253
+ merged.mustUse = [...new Set([...inferredMustUse, ...manual])];
254
+ }
194
255
  }
195
- if (existing.mustNotUse) {
196
- const manual = existing.mustNotUse.filter(item => this.stateManager.isManuallyEdited('constraints.json', `mustNotUse.${item}`));
197
- merged.mustNotUse = [...new Set([...(inferred.mustNotUse || []), ...manual])];
256
+ if (existing.mustNotUse && existing.mustNotUse.length > 0) {
257
+ const inferredMustNotUse = inferred.mustNotUse || [];
258
+ if (inferredMustNotUse.length === 0) {
259
+ merged.mustNotUse = existing.mustNotUse;
260
+ }
261
+ else {
262
+ const manual = existing.mustNotUse.filter(item => this.stateManager.isManuallyEdited('constraints.json', `mustNotUse.${item}`));
263
+ merged.mustNotUse = [...new Set([...inferredMustNotUse, ...manual])];
264
+ }
198
265
  }
199
266
  return { merged, changes };
200
267
  }
@@ -1 +1 @@
1
- {"version":3,"file":"merger.js","sourceRoot":"","sources":["../../../src/core/merger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"merger.js","sourceRoot":"","sources":["../../../src/core/merger.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "prelude-context",
3
- "version": "1.7.0",
3
+ "version": "1.8.0",
4
4
  "description": "The open standard for expressing and maintaining machine-readable context about a codebase",
5
5
  "type": "module",
6
6
  "bin": {