@soederpop/luca 0.0.25 → 0.0.28

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,7 +1,7 @@
1
1
  import { setBuildTimeData, setContainerBuildTimeData } from './index.js';
2
2
 
3
3
  // Auto-generated introspection registry data
4
- // Generated at: 2026-03-22T06:53:17.219Z
4
+ // Generated at: 2026-03-23T07:45:56.989Z
5
5
 
6
6
  setBuildTimeData('features.containerLink', {
7
7
  "id": "features.containerLink",
@@ -982,6 +982,10 @@ setContainerBuildTimeData('Container', {
982
982
  "description": "Returns a map of enabled feature shortcut IDs to their instances.",
983
983
  "returns": "Partial<AvailableInstanceTypes<Features>>"
984
984
  },
985
+ "describer": {
986
+ "description": "Lazy-initialized ContainerDescriber for introspecting registries, helpers, and members.",
987
+ "returns": "ContainerDescriber"
988
+ },
985
989
  "context": {
986
990
  "description": "The Container's context is an object that contains the enabled features, the container itself, and any additional context that has been added to the container. All helper instances that are created by the container will have access to the shared context.",
987
991
  "returns": "ContainerContext<Features> & Partial<AvailableInstanceTypes<AvailableFeatures>>"
@@ -2029,6 +2033,10 @@ export const containerIntrospectionData = [
2029
2033
  "description": "Returns a map of enabled feature shortcut IDs to their instances.",
2030
2034
  "returns": "Partial<AvailableInstanceTypes<Features>>"
2031
2035
  },
2036
+ "describer": {
2037
+ "description": "Lazy-initialized ContainerDescriber for introspecting registries, helpers, and members.",
2038
+ "returns": "ContainerDescriber"
2039
+ },
2032
2040
  "context": {
2033
2041
  "description": "The Container's context is an object that contains the enabled features, the container itself, and any additional context that has been added to the container. All helper instances that are created by the container will have access to the shared context.",
2034
2042
  "returns": "ContainerContext<Features> & Partial<AvailableInstanceTypes<AvailableFeatures>>"
@@ -428,6 +428,23 @@ export class ContentDb extends Feature<ContentDbState, ContentDbOptions> {
428
428
  async generateModelSummary(options: any) {
429
429
  return this.collection.generateModelSummary(options)
430
430
  }
431
+
432
+ get modelDefinitionTable() {
433
+ return Object.fromEntries(this.collection.modelDefinitions.map(d => {
434
+
435
+ const prefixPattern = this.container.paths.relative(this.collection.resolve(d.prefix))
436
+
437
+ return [d.name, {
438
+ description: d.name === 'Base' ? 'Any markdown document not matched to a model' : d.description,
439
+ glob: `${prefixPattern}/**/*.md`,
440
+ routePatterns: Array(d.pattern).flatMap(p => p).filter(Boolean).map(p => `${prefixPattern}/${p}`)
441
+ }]
442
+ }))
443
+ }
444
+
445
+ get fileTree() {
446
+ return this.collection.renderFileTree()
447
+ }
431
448
 
432
449
  // ── Search Integration ─────────────────────────────────────────────
433
450
 
@@ -88,6 +88,16 @@ export class FS extends Feature {
88
88
  return readFileSync(filePath, encoding ?? 'utf-8')
89
89
  }
90
90
 
91
+ /**
92
+ * Synchronously reads a file and returns its contents as a string.
93
+ * added this method because AI Assistants are understandly confused by this deviation from 2000's era node style
94
+ * @alias readFile
95
+ */
96
+ readFileSync(path: string, encoding?: BufferEncoding | null): string | Buffer {
97
+ return this.readFile(path,encoding)
98
+ }
99
+
100
+
91
101
  /**
92
102
  * Asynchronously reads a file and returns its contents as a string.
93
103
  *
@@ -126,6 +136,14 @@ export class FS extends Feature {
126
136
  readJson(path: string) {
127
137
  return JSON.parse(this.readFile(path) as string)
128
138
  }
139
+
140
+ /**
141
+ * Read and parse a JSON file synchronously
142
+ * @alias readJson
143
+ */
144
+ readJsonSync(path: string) {
145
+ return this.readJson(path)
146
+ }
129
147
 
130
148
  /**
131
149
  * Asynchronously reads and parses a JSON file.