canopycms 0.0.53 → 0.0.54

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":"generate.d.ts","sourceRoot":"","sources":["../../src/ai/generate.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,KAAK,EAAE,YAAY,EAAqC,MAAM,kBAAkB,CAAA;AACvF,OAAO,KAAK,EAAE,cAAc,EAAmB,MAAM,WAAW,CAAA;AAKhE,OAAO,EAA2B,KAAK,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC3F,OAAO,KAAK,EACV,eAAe,EAGf,UAAU,EAIX,MAAM,SAAS,CAAA;AAMhB,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,YAAY,CAAA;IACnB,UAAU,EAAE,cAAc,EAAE,CAAA;IAC5B,8CAA8C;IAC9C,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,eAAe,CAAA;IACxB,2CAA2C;IAC3C,YAAY,CAAC,EAAE,oBAAoB,CAAA;CACpC;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,UAAU,CAAA;IACpB,6EAA6E;IAC7E,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC3B;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAwGzF"}
1
+ {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/ai/generate.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,OAAO,KAAK,EAAE,YAAY,EAAqC,MAAM,kBAAkB,CAAA;AACvF,OAAO,KAAK,EAAE,cAAc,EAAmB,MAAM,WAAW,CAAA;AAUhE,OAAO,EAA2B,KAAK,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC3F,OAAO,KAAK,EACV,eAAe,EAGf,UAAU,EAKX,MAAM,SAAS,CAAA;AAMhB,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,YAAY,CAAA;IACnB,UAAU,EAAE,cAAc,EAAE,CAAA;IAC5B,8CAA8C;IAC9C,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,eAAe,CAAA;IACxB,2CAA2C;IAC3C,YAAY,CAAC,EAAE,oBAAoB,CAAA;CACpC;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,UAAU,CAAA;IACpB,6EAA6E;IAC7E,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC3B;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAwGzF"}
@@ -6,10 +6,12 @@
6
6
  * a manifest + file map.
7
7
  */
8
8
  import path from 'node:path';
9
+ import fs from 'node:fs/promises';
9
10
  import { minimatch } from 'minimatch';
10
11
  import { isDataOnlyFormat } from '../utils/format.js';
11
- import { extractEntryTypeFromFilename } from '../content-id-index.js';
12
- import { getErrorMessage } from '../utils/error.js';
12
+ import { extractEntryTypeFromFilename, extractIdFromFilename, } from '../content-id-index.js';
13
+ import { hasTraversalSequence } from '../paths/index.js';
14
+ import { getErrorMessage, isNodeError } from '../utils/error.js';
13
15
  import { entryToMarkdown } from './json-to-markdown.js';
14
16
  import { resolveEntryLinksInText } from '../entry-link-resolver.js';
15
17
  /**
@@ -127,6 +129,8 @@ async function processCollection(store, collection, flatSchema, contentRoot, con
127
129
  // Check predicate exclusion
128
130
  if (config?.exclude?.where?.(aiEntry))
129
131
  continue;
132
+ // Fold in adopter-supplied markdown (e.g. a colocated sibling artifact), once per entry
133
+ await runEntryTransform(aiEntry, doc.absolutePath, extractIdFromFilename(path.basename(listEntry.relativePath)), config);
130
134
  entries.push(aiEntry);
131
135
  // Write individual entry file
132
136
  const entryFilePath = `${cleanPath}/${listEntry.slug}.md`;
@@ -201,6 +205,8 @@ async function processRootEntries(store, rootCollection, contentRoot, config, id
201
205
  }
202
206
  if (config?.exclude?.where?.(aiEntry))
203
207
  continue;
208
+ // Fold in adopter-supplied markdown (e.g. a colocated sibling artifact), once per entry
209
+ await runEntryTransform(aiEntry, doc.absolutePath, extractIdFromFilename(path.basename(listEntry.relativePath)), config);
204
210
  entries.push(aiEntry);
205
211
  const entryFilePath = `${listEntry.slug}.md`;
206
212
  const entryMarkdown = entryToMarkdown(aiEntry, config);
@@ -254,6 +260,66 @@ function docToAIEntry(doc, slug, entryTypeName, entryTypeConfig, cleanCollection
254
260
  fields: entryTypeConfig.schema,
255
261
  };
256
262
  }
263
+ /**
264
+ * Build a sibling-file reader bound to a single directory. The returned function reads a bare
265
+ * filename colocated in `dir`, refusing anything that could escape it (slashes, `..`, absolute
266
+ * paths). Resolves `null` when the file is missing or is not a regular file. Path-safety and IO
267
+ * stay inside the package — the absolute path is never handed to the caller.
268
+ */
269
+ function makeReadSibling(dir) {
270
+ const resolvedDir = path.resolve(dir);
271
+ return async (name) => {
272
+ if (!name ||
273
+ name.includes('/') ||
274
+ name.includes('\\') ||
275
+ path.isAbsolute(name) ||
276
+ hasTraversalSequence(name)) {
277
+ return null;
278
+ }
279
+ const abs = path.resolve(resolvedDir, name);
280
+ // Defense in depth: the resolved file must sit directly inside `dir`.
281
+ if (path.dirname(abs) !== resolvedDir)
282
+ return null;
283
+ try {
284
+ // lstat (not stat) so a symlink in the entry dir can't redirect the read outside it:
285
+ // lstat reports the link itself, whose isFile() is false, so it's rejected as a non-file.
286
+ const stats = await fs.lstat(abs);
287
+ if (!stats.isFile())
288
+ return null;
289
+ return await fs.readFile(abs, 'utf8');
290
+ }
291
+ catch (err) {
292
+ if (isNodeError(err) && (err.code === 'ENOENT' || err.code === 'ENOTDIR'))
293
+ return null;
294
+ throw err;
295
+ }
296
+ };
297
+ }
298
+ /**
299
+ * Run the configured entry transform (if any), caching its returned markdown on
300
+ * `entry.appendedSections`. The transform receives the entry's content ID and a directory-bound
301
+ * `readSibling`. Runs once per entry; the cached result is reused across the per-entry file, the
302
+ * collection `all.md`, and any bundle that includes this entry. A throwing transform is logged and
303
+ * skipped — the entry still renders without the appended section (distinct from an unreadable
304
+ * entry, which is skipped entirely upstream).
305
+ */
306
+ async function runEntryTransform(entry, absolutePath, contentId, config) {
307
+ const transform = config?.entryTransforms?.[entry.entryType];
308
+ if (!transform)
309
+ return;
310
+ const ctx = {
311
+ contentId: contentId ?? '',
312
+ readSibling: makeReadSibling(path.dirname(absolutePath)),
313
+ };
314
+ try {
315
+ const appended = await transform(entry, ctx);
316
+ if (appended)
317
+ entry.appendedSections = appended;
318
+ }
319
+ catch (err) {
320
+ console.warn(`AI content: entry transform for "${entry.slug}" (${entry.entryType}) failed:`, getErrorMessage(err));
321
+ }
322
+ }
257
323
  /** Check if an entry matches a bundle filter (filters are AND'd) */
258
324
  function matchesBundleFilter(entry, filter, contentRoot) {
259
325
  // Collections filter
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/ai/generate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/ai/generate.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@
7
7
  export { defineAIContentConfig } from './types';
8
8
  export { createAIContentHandler } from './handler';
9
9
  export { generateAIContent } from './generate';
10
- export type { AIContentConfig, ExcludeConfig, BundleConfig, BundleFilter, FieldTransformFn, FieldTransforms, ComponentProps, ComponentTransformFn, ComponentTransforms, BodyTransformFn, BodyTransforms, AIManifest, AIManifestCollection, AIManifestEntry, AIManifestBundle, AIEntry, AIEntryMeta, } from './types';
10
+ export type { AIContentConfig, ExcludeConfig, BundleConfig, BundleFilter, FieldTransformFn, FieldTransforms, ComponentProps, ComponentTransformFn, ComponentTransforms, BodyTransformFn, BodyTransforms, EntryTransformFn, EntryTransforms, EntryTransformContext, AIManifest, AIManifestCollection, AIManifestEntry, AIManifestBundle, AIEntry, AIEntryMeta, } from './types';
11
11
  export type { AIContentHandlerOptions } from './handler';
12
12
  export type { GenerateOptions, GenerateResult } from './generate';
13
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAA;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAC9C,YAAY,EACV,eAAe,EACf,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,UAAU,EACV,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,OAAO,EACP,WAAW,GACZ,MAAM,SAAS,CAAA;AAChB,YAAY,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAA;AACxD,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAA;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAC9C,YAAY,EACV,eAAe,EACf,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,qBAAqB,EACrB,UAAU,EACV,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,OAAO,EACP,WAAW,GACZ,MAAM,SAAS,CAAA;AAChB,YAAY,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAA;AACxD,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"json-to-markdown.d.ts","sourceRoot":"","sources":["../../src/ai/json-to-markdown.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAEvD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,eAAe,GAAG,MAAM,CA2BhF"}
1
+ {"version":3,"file":"json-to-markdown.d.ts","sourceRoot":"","sources":["../../src/ai/json-to-markdown.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAEvD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,eAAe,GAAG,MAAM,CAkChF"}
@@ -37,6 +37,12 @@ export function entryToMarkdown(entry, config) {
37
37
  // For data-only formats (JSON/YAML): full schema-driven conversion
38
38
  parts.push(...renderJsonEntry(entry, config, skipFields));
39
39
  }
40
+ // Markdown appended by an entry transform (e.g. a folded-in sibling artifact). Computed once
41
+ // upstream, so it flows into the per-entry file, the collection all.md, and bundles alike.
42
+ if (entry.appendedSections) {
43
+ parts.push(entry.appendedSections.trim());
44
+ parts.push('');
45
+ }
40
46
  return parts.join('\n');
41
47
  }
42
48
  /**
@@ -155,6 +161,13 @@ function renderField(field, value, depth, entry, config) {
155
161
  function renderListField(field, values, depth, label, heading, descriptionLine, entry, config) {
156
162
  if (values.length === 0)
157
163
  return '';
164
+ // Arrays of flat records (object items whose subfields are all single-line scalars) render far
165
+ // more compactly — and more scannably for an AI — as a markdown table than as nested ordinal
166
+ // headings. Genuinely nested items (subfields that are lists/objects/blocks/long text) keep the
167
+ // heading-per-item fallback below.
168
+ if (field.type === 'object' && isFlatObjectList(field)) {
169
+ return renderObjectListTable(field, values, label, heading, descriptionLine);
170
+ }
158
171
  const isComplex = field.type === 'object' || field.type === 'block';
159
172
  if (isComplex) {
160
173
  // For complex types, render each item as a subsection
@@ -183,6 +196,80 @@ function renderListField(field, values, depth, label, heading, descriptionLine,
183
196
  const items = values.map((v) => `- ${formatInlineValue(field, v)}`).join('\n');
184
197
  return `${heading} ${label}${descriptionLine}\n\n${items}`;
185
198
  }
199
+ /** Subfield types that render to a single line and so fit cleanly in a table cell. */
200
+ const FLAT_CELL_TYPES = new Set([
201
+ 'string',
202
+ 'number',
203
+ 'datetime',
204
+ 'boolean',
205
+ 'select',
206
+ 'reference',
207
+ 'image',
208
+ ]);
209
+ /**
210
+ * True when an object list field's items are flat records — every subfield is a single-line scalar
211
+ * *field type* (no sub-lists, nested objects/blocks, or multi-line text/code types). Such lists
212
+ * render as a table; anything else keeps the nested heading-per-item form. This is a schema-level
213
+ * check: it classifies by declared field type, not by inspecting values (a `string` field whose
214
+ * value happens to be long still qualifies and is collapsed into one cell).
215
+ */
216
+ function isFlatObjectList(field) {
217
+ if (field.type !== 'object')
218
+ return false;
219
+ const subFields = field.fields;
220
+ if (!subFields || subFields.length === 0)
221
+ return false;
222
+ return subFields.every((f) => !('list' in f && f.list) && FLAT_CELL_TYPES.has(f.type));
223
+ }
224
+ /**
225
+ * Render an array of flat object records as a GFM table. Columns are the subfields in schema order;
226
+ * absent values become empty cells; pipes and newlines in cells are escaped.
227
+ */
228
+ function renderObjectListTable(field, values, label, heading, descriptionLine) {
229
+ const columns = field.fields;
230
+ const headerRow = `| ${columns.map((f) => escapeTableCell(f.label || f.name)).join(' | ')} |`;
231
+ const separatorRow = `| ${columns.map(() => '---').join(' | ')} |`;
232
+ const dataRows = values.map((item) => {
233
+ const record = typeof item === 'object' && item !== null ? item : {};
234
+ const cells = columns.map((f) => {
235
+ const v = record[f.name];
236
+ if (v === undefined || v === null)
237
+ return '';
238
+ return escapeTableCell(formatCellValue(f, v));
239
+ });
240
+ return `| ${cells.join(' | ')} |`;
241
+ });
242
+ const table = [headerRow, separatorRow, ...dataRows].join('\n');
243
+ return `${heading} ${label}${descriptionLine}\n\n${table}`;
244
+ }
245
+ /** Render a single scalar subfield value to its one-line table-cell form. */
246
+ function formatCellValue(field, value) {
247
+ switch (field.type) {
248
+ case 'boolean':
249
+ return value ? 'Yes' : 'No';
250
+ case 'reference':
251
+ return formatReference(value);
252
+ case 'select':
253
+ return Array.isArray(value)
254
+ ? value.map((v) => resolveSelectLabel(field, v)).join(', ')
255
+ : resolveSelectLabel(field, value);
256
+ case 'image':
257
+ // Match the standalone image rendering (renderField) so a table cell stays an image reference.
258
+ return `![](${String(value)})`;
259
+ default:
260
+ return String(value);
261
+ }
262
+ }
263
+ /** Escape a value for a GFM table cell: backslashes and pipes are escaped, newlines collapsed. */
264
+ function escapeTableCell(value) {
265
+ // Escape backslashes first so an already-present backslash can't consume the pipe escape we add
266
+ // (source `a\|b` must become `a\\\|b`, not `a\\|b` — the latter leaves `|` as a column delimiter).
267
+ return value
268
+ .replace(/\\/g, '\\\\')
269
+ .replace(/\|/g, '\\|')
270
+ .replace(/\r?\n+/g, ' ')
271
+ .trim();
272
+ }
186
273
  /**
187
274
  * Render a select field.
188
275
  */
@@ -1 +1 @@
1
- {"version":3,"file":"json-to-markdown.js","sourceRoot":"","sources":["../../src/ai/json-to-markdown.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"json-to-markdown.js","sourceRoot":"","sources":["../../src/ai/json-to-markdown.ts"],"names":[],"mappings":"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"}
@@ -120,6 +120,52 @@ export type BodyTransformFn = (body: string, entry: AIEntryMeta) => string;
120
120
  * ```
121
121
  */
122
122
  export type BodyTransforms = Record<string, BodyTransformFn>;
123
+ /**
124
+ * Context passed to an entry transform. Lets an adopter fold a colocated machine-generated
125
+ * sibling artifact (e.g. `<contentId>.profile.json`) into the generated markdown — the AI-export
126
+ * counterpart of reading a sibling from `meta.physicalPath` in a page render.
127
+ *
128
+ * The transform sees a single entry plus its colocated sibling *files*; it cannot see other
129
+ * entries. Cross-entry context (e.g. an index of all entries) must be built adopter-side.
130
+ */
131
+ export interface EntryTransformContext {
132
+ /**
133
+ * Stable content ID (Base58) of this entry — matches the id embedded in the entry's filename
134
+ * and is invariant under slug edits. Use it to name sibling artifacts.
135
+ */
136
+ contentId: string;
137
+ /**
138
+ * Read a sibling file colocated in this entry's directory. `name` must be a bare filename —
139
+ * no slashes, no `..`, not absolute. Resolves to the file's UTF-8 contents, or `null` if the
140
+ * file is missing or is not a regular file. Path-safety and IO are performed inside Canopy;
141
+ * the entry's absolute filesystem path is never exposed (it must not leak into published output).
142
+ */
143
+ readSibling: (name: string) => Promise<string | null>;
144
+ }
145
+ /**
146
+ * Per-entry-type transform. Runs once per entry at generation time (may be async). Return a
147
+ * markdown string to APPEND after the entry's body/fields, or `undefined` to append nothing.
148
+ * Append-only by design — `entryToMarkdown` remains the sole owner of base serialization.
149
+ *
150
+ * Unlike `bodyTransforms` (which fire only for MD/MDX bodies), entry transforms fire for every
151
+ * format, including data-only JSON/YAML entries.
152
+ *
153
+ * @example
154
+ * ```ts
155
+ * {
156
+ * dataset: async (entry, { contentId, readSibling }) => {
157
+ * const raw = await readSibling(`${contentId}.profile.json`)
158
+ * if (!raw) return
159
+ * return renderProfileSchema(entry.data, JSON.parse(raw))
160
+ * },
161
+ * }
162
+ * ```
163
+ */
164
+ export type EntryTransformFn = (entry: AIEntry, ctx: EntryTransformContext) => Promise<string | undefined> | string | undefined;
165
+ /**
166
+ * Entry transform overrides, keyed by entry type name.
167
+ */
168
+ export type EntryTransforms = Record<string, EntryTransformFn>;
123
169
  /**
124
170
  * Main AI content configuration. Shared by route handler and build utility.
125
171
  */
@@ -134,6 +180,8 @@ export interface AIContentConfig {
134
180
  componentTransforms?: ComponentTransforms;
135
181
  /** Per-entry-type body transforms (applied after componentTransforms) */
136
182
  bodyTransforms?: BodyTransforms;
183
+ /** Per-entry-type transforms that append markdown (e.g. folding in a colocated sibling artifact) */
184
+ entryTransforms?: EntryTransforms;
137
185
  }
138
186
  /**
139
187
  * Identity function for type-checking AI content config.
@@ -179,5 +227,11 @@ export interface AIEntry extends AIEntryMeta {
179
227
  body?: string;
180
228
  /** Schema fields for this entry type */
181
229
  fields: readonly FieldConfig[];
230
+ /**
231
+ * Markdown produced by an entry transform, appended after the entry's body/fields.
232
+ * Computed once at generation time and reused across the per-entry file, the collection
233
+ * `all.md`, and any bundle that includes this entry. Internal — not part of `AIEntryMeta`.
234
+ */
235
+ appendedSections?: string;
182
236
  }
183
237
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/ai/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAM5C;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,sFAAsF;IACtF,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,2EAA2E;IAC3E,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,sGAAsG;IACtG,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,kEAAkE;IAClE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,0DAA0D;IAC1D,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,OAAO,CAAA;CACxC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,0DAA0D;IAC1D,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,OAAO,CAAA;CACxC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,wEAAwE;IACxE,IAAI,EAAE,MAAM,CAAA;IACZ,oEAAoE;IACpE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,0DAA0D;IAC1D,MAAM,EAAE,YAAY,CAAA;CACrB;AAED;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,KAAK,MAAM,CAAA;AAEnF;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAA;AAE9E;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAEnD;;;;;;;GAOG;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAA;AAElG;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAA;AAEtE;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,KAAK,MAAM,CAAA;AAE1E;;;;;;;;;GASG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;AAE5D;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,2CAA2C;IAC3C,OAAO,CAAC,EAAE,aAAa,CAAA;IACvB,gDAAgD;IAChD,OAAO,CAAC,EAAE,YAAY,EAAE,CAAA;IACxB,mDAAmD;IACnD,eAAe,CAAC,EAAE,eAAe,CAAA;IACjC,mEAAmE;IACnE,mBAAmB,CAAC,EAAE,mBAAmB,CAAA;IACzC,yEAAyE;IACzE,cAAc,CAAC,EAAE,cAAc,CAAA;CAChC;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,eAAe,GAAG,eAAe,CAE9E;AAMD,8BAA8B;AAC9B,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;CACb;AAED,kEAAkE;AAClE,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,uFAAuF;IACvF,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,eAAe,EAAE,CAAA;IAC1B,cAAc,CAAC,EAAE,oBAAoB,EAAE,CAAA;CACxC;AAED,+BAA+B;AAC/B,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,wCAAwC;AACxC,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAA;IACjB,kDAAkD;IAClD,OAAO,EAAE,eAAe,EAAE,CAAA;IAC1B,WAAW,EAAE,oBAAoB,EAAE,CAAA;IACnC,OAAO,EAAE,gBAAgB,EAAE,CAAA;CAC5B;AAMD,yDAAyD;AACzD,MAAM,WAAW,OAAQ,SAAQ,WAAW;IAC1C,uCAAuC;IACvC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,wCAAwC;IACxC,MAAM,EAAE,SAAS,WAAW,EAAE,CAAA;CAC/B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/ai/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/ai/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAsJH;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAuB;IAC3D,OAAO,MAAM,CAAA;AACf,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/ai/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA4MH;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAuB;IAC3D,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -706,7 +706,7 @@ import path14 from "node:path";
706
706
  import { createJiti } from "jiti";
707
707
 
708
708
  // dist/build/generate-ai-content.js
709
- import fs11 from "node:fs/promises";
709
+ import fs12 from "node:fs/promises";
710
710
  import path13 from "node:path";
711
711
 
712
712
  // dist/content-store.js
@@ -1076,13 +1076,13 @@ function extractIdFromFilename(filename) {
1076
1076
  return null;
1077
1077
  }
1078
1078
  async function resolveCollectionPath(root, logicalPath) {
1079
- const fs12 = await import("node:fs/promises");
1079
+ const fs13 = await import("node:fs/promises");
1080
1080
  const path15 = await import("node:path");
1081
1081
  const segments = logicalPath.split("/").filter(Boolean);
1082
1082
  let currentPath = root;
1083
1083
  for (const segment of segments) {
1084
1084
  try {
1085
- const entries = await fs12.readdir(currentPath, { withFileTypes: true });
1085
+ const entries = await fs13.readdir(currentPath, { withFileTypes: true });
1086
1086
  const matchingDir = entries.find((entry) => {
1087
1087
  if (!entry.isDirectory())
1088
1088
  return false;
@@ -2093,6 +2093,7 @@ var BranchSchemaCache = class {
2093
2093
 
2094
2094
  // dist/ai/generate.js
2095
2095
  import path7 from "node:path";
2096
+ import fs7 from "node:fs/promises";
2096
2097
  import { minimatch } from "minimatch";
2097
2098
 
2098
2099
  // dist/ai/strip-mdx.js
@@ -2279,6 +2280,10 @@ function entryToMarkdown(entry, config) {
2279
2280
  } else {
2280
2281
  parts.push(...renderJsonEntry(entry, config, skipFields));
2281
2282
  }
2283
+ if (entry.appendedSections) {
2284
+ parts.push(entry.appendedSections.trim());
2285
+ parts.push("");
2286
+ }
2282
2287
  return parts.join("\n");
2283
2288
  }
2284
2289
  function renderMarkdownEntry(entry, config, skipFields) {
@@ -2388,6 +2393,9 @@ ${String(value)}`;
2388
2393
  function renderListField(field, values, depth, label, heading, descriptionLine, entry, config) {
2389
2394
  if (values.length === 0)
2390
2395
  return "";
2396
+ if (field.type === "object" && isFlatObjectList(field)) {
2397
+ return renderObjectListTable(field, values, label, heading, descriptionLine);
2398
+ }
2391
2399
  const isComplex = field.type === "object" || field.type === "block";
2392
2400
  if (isComplex) {
2393
2401
  const items2 = values.map((item, i) => {
@@ -2418,6 +2426,59 @@ ${items2.join("\n\n")}`;
2418
2426
 
2419
2427
  ${items}`;
2420
2428
  }
2429
+ var FLAT_CELL_TYPES = /* @__PURE__ */ new Set([
2430
+ "string",
2431
+ "number",
2432
+ "datetime",
2433
+ "boolean",
2434
+ "select",
2435
+ "reference",
2436
+ "image"
2437
+ ]);
2438
+ function isFlatObjectList(field) {
2439
+ if (field.type !== "object")
2440
+ return false;
2441
+ const subFields = field.fields;
2442
+ if (!subFields || subFields.length === 0)
2443
+ return false;
2444
+ return subFields.every((f) => !("list" in f && f.list) && FLAT_CELL_TYPES.has(f.type));
2445
+ }
2446
+ function renderObjectListTable(field, values, label, heading, descriptionLine) {
2447
+ const columns = field.fields;
2448
+ const headerRow = `| ${columns.map((f) => escapeTableCell(f.label || f.name)).join(" | ")} |`;
2449
+ const separatorRow = `| ${columns.map(() => "---").join(" | ")} |`;
2450
+ const dataRows = values.map((item) => {
2451
+ const record = typeof item === "object" && item !== null ? item : {};
2452
+ const cells = columns.map((f) => {
2453
+ const v = record[f.name];
2454
+ if (v === void 0 || v === null)
2455
+ return "";
2456
+ return escapeTableCell(formatCellValue(f, v));
2457
+ });
2458
+ return `| ${cells.join(" | ")} |`;
2459
+ });
2460
+ const table = [headerRow, separatorRow, ...dataRows].join("\n");
2461
+ return `${heading} ${label}${descriptionLine}
2462
+
2463
+ ${table}`;
2464
+ }
2465
+ function formatCellValue(field, value) {
2466
+ switch (field.type) {
2467
+ case "boolean":
2468
+ return value ? "Yes" : "No";
2469
+ case "reference":
2470
+ return formatReference(value);
2471
+ case "select":
2472
+ return Array.isArray(value) ? value.map((v) => resolveSelectLabel(field, v)).join(", ") : resolveSelectLabel(field, value);
2473
+ case "image":
2474
+ return `![](${String(value)})`;
2475
+ default:
2476
+ return String(value);
2477
+ }
2478
+ }
2479
+ function escapeTableCell(value) {
2480
+ return value.replace(/\\/g, "\\\\").replace(/\|/g, "\\|").replace(/\r?\n+/g, " ").trim();
2481
+ }
2421
2482
  function renderSelectField(field, value, heading, label, descriptionLine) {
2422
2483
  if (Array.isArray(value)) {
2423
2484
  return `${heading} ${label}${descriptionLine}
@@ -2837,6 +2898,7 @@ async function processCollection(store, collection, flatSchema, contentRoot, con
2837
2898
  }
2838
2899
  if (config?.exclude?.where?.(aiEntry))
2839
2900
  continue;
2901
+ await runEntryTransform(aiEntry, doc.absolutePath, extractIdFromFilename(path7.basename(listEntry.relativePath)), config);
2840
2902
  entries.push(aiEntry);
2841
2903
  const entryFilePath = `${cleanPath}/${listEntry.slug}.md`;
2842
2904
  const entryMarkdown = entryToMarkdown(aiEntry, config);
@@ -2905,6 +2967,7 @@ async function processRootEntries(store, rootCollection, contentRoot, config, id
2905
2967
  }
2906
2968
  if (config?.exclude?.where?.(aiEntry))
2907
2969
  continue;
2970
+ await runEntryTransform(aiEntry, doc.absolutePath, extractIdFromFilename(path7.basename(listEntry.relativePath)), config);
2908
2971
  entries.push(aiEntry);
2909
2972
  const entryFilePath = `${listEntry.slug}.md`;
2910
2973
  const entryMarkdown = entryToMarkdown(aiEntry, config);
@@ -2951,6 +3014,43 @@ function docToAIEntry(doc, slug, entryTypeName, entryTypeConfig, cleanCollection
2951
3014
  fields: entryTypeConfig.schema
2952
3015
  };
2953
3016
  }
3017
+ function makeReadSibling(dir) {
3018
+ const resolvedDir = path7.resolve(dir);
3019
+ return async (name) => {
3020
+ if (!name || name.includes("/") || name.includes("\\") || path7.isAbsolute(name) || hasTraversalSequence(name)) {
3021
+ return null;
3022
+ }
3023
+ const abs = path7.resolve(resolvedDir, name);
3024
+ if (path7.dirname(abs) !== resolvedDir)
3025
+ return null;
3026
+ try {
3027
+ const stats = await fs7.lstat(abs);
3028
+ if (!stats.isFile())
3029
+ return null;
3030
+ return await fs7.readFile(abs, "utf8");
3031
+ } catch (err) {
3032
+ if (isNodeError(err) && (err.code === "ENOENT" || err.code === "ENOTDIR"))
3033
+ return null;
3034
+ throw err;
3035
+ }
3036
+ };
3037
+ }
3038
+ async function runEntryTransform(entry, absolutePath, contentId, config) {
3039
+ const transform = config?.entryTransforms?.[entry.entryType];
3040
+ if (!transform)
3041
+ return;
3042
+ const ctx = {
3043
+ contentId: contentId ?? "",
3044
+ readSibling: makeReadSibling(path7.dirname(absolutePath))
3045
+ };
3046
+ try {
3047
+ const appended = await transform(entry, ctx);
3048
+ if (appended)
3049
+ entry.appendedSections = appended;
3050
+ } catch (err) {
3051
+ console.warn(`AI content: entry transform for "${entry.slug}" (${entry.entryType}) failed:`, getErrorMessage(err));
3052
+ }
3053
+ }
2954
3054
  function matchesBundleFilter(entry, filter, contentRoot) {
2955
3055
  if (filter.collections) {
2956
3056
  const matches = filter.collections.some((pattern) => {
@@ -2982,11 +3082,11 @@ import path12 from "node:path";
2982
3082
 
2983
3083
  // dist/branch-metadata.js
2984
3084
  import { randomUUID } from "node:crypto";
2985
- import fs8 from "node:fs/promises";
3085
+ import fs9 from "node:fs/promises";
2986
3086
  import path9 from "node:path";
2987
3087
 
2988
3088
  // dist/branch-registry.js
2989
- import fs7 from "node:fs/promises";
3089
+ import fs8 from "node:fs/promises";
2990
3090
  import path8 from "node:path";
2991
3091
  var REGISTRY_FILE = "branches.json";
2992
3092
  var REGISTRY_STALE_FILE = "branches.stale.json";
@@ -3004,7 +3104,7 @@ var BranchRegistry = class {
3004
3104
  */
3005
3105
  async list() {
3006
3106
  try {
3007
- const raw = await fs7.readFile(this.registryPath, "utf8");
3107
+ const raw = await fs8.readFile(this.registryPath, "utf8");
3008
3108
  const parsed = JSON.parse(raw);
3009
3109
  if (!parsed.version || !Array.isArray(parsed.branches)) {
3010
3110
  return await this.regenerate();
@@ -3030,7 +3130,7 @@ var BranchRegistry = class {
3030
3130
  */
3031
3131
  async invalidate() {
3032
3132
  try {
3033
- await fs7.rename(this.registryPath, this.stalePath);
3133
+ await fs8.rename(this.registryPath, this.stalePath);
3034
3134
  } catch (err) {
3035
3135
  if (!isNotFoundError(err)) {
3036
3136
  throw err;
@@ -3044,20 +3144,20 @@ var BranchRegistry = class {
3044
3144
  async regenerate() {
3045
3145
  const branches = await this.scanBranchDirectories();
3046
3146
  const uniqueTempPath = `${this.tempPath}.${Date.now()}.${Math.random().toString(36).slice(2)}`;
3047
- await fs7.mkdir(this.root, { recursive: true });
3147
+ await fs8.mkdir(this.root, { recursive: true });
3048
3148
  const snapshot = {
3049
3149
  version: REGISTRY_VERSION,
3050
3150
  branches
3051
3151
  };
3052
- await fs7.writeFile(uniqueTempPath, JSON.stringify(snapshot, null, 2) + "\n", "utf8");
3152
+ await fs8.writeFile(uniqueTempPath, JSON.stringify(snapshot, null, 2) + "\n", "utf8");
3053
3153
  try {
3054
- await fs7.rename(uniqueTempPath, this.registryPath);
3154
+ await fs8.rename(uniqueTempPath, this.registryPath);
3055
3155
  } catch (err) {
3056
- await fs7.unlink(uniqueTempPath).catch(() => {
3156
+ await fs8.unlink(uniqueTempPath).catch(() => {
3057
3157
  });
3058
3158
  throw err;
3059
3159
  }
3060
- await fs7.unlink(this.stalePath).catch(() => {
3160
+ await fs8.unlink(this.stalePath).catch(() => {
3061
3161
  });
3062
3162
  return branches;
3063
3163
  }
@@ -3067,7 +3167,7 @@ var BranchRegistry = class {
3067
3167
  async scanBranchDirectories() {
3068
3168
  const branches = [];
3069
3169
  try {
3070
- const entries = await fs7.readdir(this.root, { withFileTypes: true });
3170
+ const entries = await fs8.readdir(this.root, { withFileTypes: true });
3071
3171
  for (const entry of entries) {
3072
3172
  if (!entry.isDirectory() || entry.name.startsWith(".")) {
3073
3173
  continue;
@@ -3115,7 +3215,7 @@ var BranchMetadataFileManager = class _BranchMetadataFileManager {
3115
3215
  static async loadOnly(branchRoot) {
3116
3216
  const filePath = path9.join(path9.resolve(branchRoot), BRANCH_META_DIR, BRANCH_META_FILE);
3117
3217
  try {
3118
- const raw = await fs8.readFile(filePath, "utf8");
3218
+ const raw = await fs9.readFile(filePath, "utf8");
3119
3219
  return JSON.parse(raw);
3120
3220
  } catch (err) {
3121
3221
  if (isNotFoundError(err)) {
@@ -3133,7 +3233,7 @@ var BranchMetadataFileManager = class _BranchMetadataFileManager {
3133
3233
  }
3134
3234
  async load() {
3135
3235
  try {
3136
- const raw = await fs8.readFile(this.filePath, "utf8");
3236
+ const raw = await fs9.readFile(this.filePath, "utf8");
3137
3237
  const parsed = JSON.parse(raw);
3138
3238
  const version = parsed.version ?? 0;
3139
3239
  return { meta: parsed, version };
@@ -3157,31 +3257,31 @@ var BranchMetadataFileManager = class _BranchMetadataFileManager {
3157
3257
  version: newVersion,
3158
3258
  writeId
3159
3259
  };
3160
- await fs8.mkdir(path9.dirname(this.filePath), { recursive: true });
3260
+ await fs9.mkdir(path9.dirname(this.filePath), { recursive: true });
3161
3261
  const content = JSON.stringify(payload, null, 2) + "\n";
3162
3262
  if (expectedVersion === null) {
3163
3263
  const tempPath2 = `${this.filePath}.${Date.now()}.${Math.random().toString(36).slice(2)}.tmp`;
3164
- await fs8.writeFile(tempPath2, content, "utf-8");
3264
+ await fs9.writeFile(tempPath2, content, "utf-8");
3165
3265
  try {
3166
- await fs8.link(tempPath2, this.filePath);
3266
+ await fs9.link(tempPath2, this.filePath);
3167
3267
  } catch (err) {
3168
- await fs8.unlink(tempPath2).catch(() => {
3268
+ await fs9.unlink(tempPath2).catch(() => {
3169
3269
  });
3170
3270
  if (isFileExistsError(err)) {
3171
3271
  throw new BranchMetadataConflictError();
3172
3272
  }
3173
3273
  throw err;
3174
3274
  }
3175
- await fs8.unlink(tempPath2).catch(() => {
3275
+ await fs9.unlink(tempPath2).catch(() => {
3176
3276
  });
3177
3277
  return { version: newVersion, writeId };
3178
3278
  }
3179
3279
  const tempPath = `${this.filePath}.${Date.now()}.${Math.random().toString(36).slice(2)}.tmp`;
3180
- await fs8.writeFile(tempPath, content, "utf-8");
3280
+ await fs9.writeFile(tempPath, content, "utf-8");
3181
3281
  try {
3182
3282
  let currentVersion = null;
3183
3283
  try {
3184
- const current = JSON.parse(await fs8.readFile(this.filePath, "utf-8"));
3284
+ const current = JSON.parse(await fs9.readFile(this.filePath, "utf-8"));
3185
3285
  currentVersion = current.version ?? 0;
3186
3286
  } catch {
3187
3287
  currentVersion = null;
@@ -3189,13 +3289,13 @@ var BranchMetadataFileManager = class _BranchMetadataFileManager {
3189
3289
  if (currentVersion !== expectedVersion) {
3190
3290
  throw new BranchMetadataConflictError();
3191
3291
  }
3192
- await fs8.rename(tempPath, this.filePath);
3193
- const afterWrite = JSON.parse(await fs8.readFile(this.filePath, "utf-8"));
3292
+ await fs9.rename(tempPath, this.filePath);
3293
+ const afterWrite = JSON.parse(await fs9.readFile(this.filePath, "utf-8"));
3194
3294
  if (afterWrite.writeId !== writeId) {
3195
3295
  throw new BranchMetadataConflictError();
3196
3296
  }
3197
3297
  } catch (err) {
3198
- await fs8.unlink(tempPath).catch(() => {
3298
+ await fs9.unlink(tempPath).catch(() => {
3199
3299
  });
3200
3300
  throw err;
3201
3301
  }
@@ -3286,7 +3386,7 @@ var loadBranchContext = async (options) => {
3286
3386
  init_operating_mode();
3287
3387
 
3288
3388
  // dist/git-manager.js
3289
- import fs10 from "node:fs/promises";
3389
+ import fs11 from "node:fs/promises";
3290
3390
  import path11 from "node:path";
3291
3391
  import { simpleGit as simpleGit2 } from "simple-git";
3292
3392
 
@@ -3311,11 +3411,11 @@ async function resolveBaseBranch(options) {
3311
3411
  }
3312
3412
 
3313
3413
  // dist/utils/provisioning-lock.js
3314
- import fs9 from "node:fs/promises";
3414
+ import fs10 from "node:fs/promises";
3315
3415
  import path10 from "node:path";
3316
3416
  import lockfile from "proper-lockfile";
3317
3417
  async function acquireProvisioningLock(lockTargetDir, lockName) {
3318
- await fs9.mkdir(lockTargetDir, { recursive: true });
3418
+ await fs10.mkdir(lockTargetDir, { recursive: true });
3319
3419
  return lockfile.lock(lockTargetDir, {
3320
3420
  lockfilePath: path10.join(lockTargetDir, lockName),
3321
3421
  retries: { retries: 600, factor: 1, minTimeout: 300, maxTimeout: 800, randomize: true },
@@ -3385,7 +3485,7 @@ var GitManager = class _GitManager {
3385
3485
  releaseLock = await acquireProvisioningLock(remoteParent, ".remote-init.lock");
3386
3486
  let remoteExists = false;
3387
3487
  try {
3388
- const stat = await fs10.stat(options.remotePath);
3488
+ const stat = await fs11.stat(options.remotePath);
3389
3489
  remoteExists = stat.isDirectory();
3390
3490
  } catch (err) {
3391
3491
  if (!isNotFoundError(err))
@@ -3548,7 +3648,7 @@ var GitManager = class _GitManager {
3548
3648
  */
3549
3649
  static async validateGitRepoExists(repoPath) {
3550
3650
  try {
3551
- const stat = await fs10.stat(path11.join(repoPath, ".git"));
3651
+ const stat = await fs11.stat(path11.join(repoPath, ".git"));
3552
3652
  if (!stat.isDirectory()) {
3553
3653
  throw new Error(`Expected git repo at ${repoPath}`);
3554
3654
  }
@@ -3586,7 +3686,7 @@ var GitManager = class _GitManager {
3586
3686
  return process.env[config.envVarName];
3587
3687
  if (config.autoDetectRemotePath) {
3588
3688
  try {
3589
- const stat = await fs10.stat(config.autoDetectRemotePath);
3689
+ const stat = await fs11.stat(config.autoDetectRemotePath);
3590
3690
  if (stat.isDirectory()) {
3591
3691
  log2.debug("git", "Auto-detected local remote", {
3592
3692
  path: config.autoDetectRemotePath
@@ -3638,12 +3738,12 @@ var GitManager = class _GitManager {
3638
3738
  } catch {
3639
3739
  const gitPath = path11.join(options.workspacePath, ".git");
3640
3740
  try {
3641
- const stat = await fs10.stat(gitPath);
3741
+ const stat = await fs11.stat(gitPath);
3642
3742
  if (stat.isDirectory()) {
3643
3743
  log2.debug("git", "Removing corrupt .git directory", {
3644
3744
  workspacePath: options.workspacePath
3645
3745
  });
3646
- await fs10.rm(gitPath, { recursive: true });
3746
+ await fs11.rm(gitPath, { recursive: true });
3647
3747
  }
3648
3748
  } catch (cleanupErr) {
3649
3749
  if (!isNotFoundError(cleanupErr))
@@ -3886,10 +3986,10 @@ var GitManager = class _GitManager {
3886
3986
  */
3887
3987
  async ensureGitExclude(pattern) {
3888
3988
  const excludePath = path11.join(this.repoPath, ".git", "info", "exclude");
3889
- await fs10.mkdir(path11.dirname(excludePath), { recursive: true });
3989
+ await fs11.mkdir(path11.dirname(excludePath), { recursive: true });
3890
3990
  let content = "";
3891
3991
  try {
3892
- content = await fs10.readFile(excludePath, "utf-8");
3992
+ content = await fs11.readFile(excludePath, "utf-8");
3893
3993
  } catch (err) {
3894
3994
  if (!isNotFoundError(err))
3895
3995
  throw err;
@@ -3901,7 +4001,7 @@ var GitManager = class _GitManager {
3901
4001
  }
3902
4002
  const needsLeadingNewline = content.length > 0 && !content.endsWith("\n");
3903
4003
  const newContent = content + (needsLeadingNewline ? "\n" : "") + pattern + "\n";
3904
- await fs10.writeFile(excludePath, newContent, "utf-8");
4004
+ await fs11.writeFile(excludePath, newContent, "utf-8");
3905
4005
  log2.debug("git", "Added pattern to .git/info/exclude", { pattern });
3906
4006
  }
3907
4007
  /**
@@ -3930,8 +4030,8 @@ var GitManager = class _GitManager {
3930
4030
  }
3931
4031
  for (const [filePath, content] of Object.entries(initialFiles)) {
3932
4032
  const absolutePath = path11.join(this.repoPath, filePath);
3933
- await fs10.mkdir(path11.dirname(absolutePath), { recursive: true });
3934
- await fs10.writeFile(absolutePath, content, "utf-8");
4033
+ await fs11.mkdir(path11.dirname(absolutePath), { recursive: true });
4034
+ await fs11.writeFile(absolutePath, content, "utf-8");
3935
4035
  await this.git.add(filePath);
3936
4036
  }
3937
4037
  await this.git.commit("Initialize settings branch", ["--allow-empty"]);
@@ -4111,8 +4211,8 @@ async function generateAIContentFiles(options) {
4111
4211
  if (!absolutePath.startsWith(absoluteOutputDir)) {
4112
4212
  throw new Error(`Path traversal detected in AI content output: ${filePath}`);
4113
4213
  }
4114
- await fs11.mkdir(path13.dirname(absolutePath), { recursive: true });
4115
- await fs11.writeFile(absolutePath, content, "utf-8");
4214
+ await fs12.mkdir(path13.dirname(absolutePath), { recursive: true });
4215
+ await fs12.writeFile(absolutePath, content, "utf-8");
4116
4216
  fileCount++;
4117
4217
  }
4118
4218
  return { fileCount, outputDir: absoluteOutputDir };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "//": "@codemirror/language, @lezer/highlight: workaround — @mdxeditor/editor uses cm6-theme-basic-light which peer-requires these but mdxeditor doesn't declare them as dependencies",
3
3
  "name": "canopycms",
4
- "version": "0.0.53",
4
+ "version": "0.0.54",
5
5
  "description": "CanopyCMS core package: schema-driven content, branch-aware editing, and editor UI for Next.js.",
6
6
  "license": "MIT",
7
7
  "repository": {