@dereekb/dbx-cli 13.11.18 → 13.12.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.
Files changed (156) hide show
  1. package/firebase-api-manifest/main.js +70 -9
  2. package/firebase-api-manifest/package.json +1 -1
  3. package/firestore-indexes/src/firestore-indexes-generate.d.ts +125 -0
  4. package/firestore-indexes/src/firestore-model-identity-resolver.d.ts +93 -0
  5. package/firestore-indexes/src/firestore-query-helpers.d.ts +108 -0
  6. package/firestore-indexes/src/generate-firestore-indexes-cli.d.ts +94 -0
  7. package/firestore-indexes/src/index.d.ts +7 -0
  8. package/firestore-indexes/src/model-firebase-index-analyze.d.ts +68 -0
  9. package/firestore-indexes/src/model-firebase-index-build-manifest.d.ts +123 -0
  10. package/firestore-indexes/src/model-firebase-index-extract.d.ts +246 -0
  11. package/firestore-indexes/src/model-firebase-index-runtime.d.ts +126 -0
  12. package/firestore-indexes/src/model-firebase-index-scan-config-schema.d.ts +58 -0
  13. package/firestore-indexes/src/model-firebase-index-schema.d.ts +366 -0
  14. package/generate-firestore-indexes/main.js +1 -1
  15. package/generate-firestore-indexes/package.json +1 -1
  16. package/generate-mcp-manifest/src/generate-mcp-manifest/main.d.ts +26 -0
  17. package/generate-mcp-manifest/src/generate-mcp-manifest/render.d.ts +38 -0
  18. package/generated/firebase-models.generated.d.ts +3 -0
  19. package/index.cjs.js +45234 -640
  20. package/index.esm.js +44941 -643
  21. package/lint-cache/main.js +19 -19
  22. package/lint-cache/package.json +2 -2
  23. package/manifest-extract/index.cjs.js +169 -4
  24. package/manifest-extract/index.esm.js +169 -4
  25. package/manifest-extract/package.json +1 -1
  26. package/manifest-extract/src/lib/types.d.ts +26 -1
  27. package/package.json +14 -10
  28. package/src/lib/index.d.ts +3 -0
  29. package/src/lib/manifest/types.d.ts +155 -0
  30. package/src/lib/mcp-scan/config/config-schema.d.ts +226 -0
  31. package/src/lib/mcp-scan/config/load-config.d.ts +63 -0
  32. package/src/lib/mcp-scan/index.d.ts +16 -0
  33. package/src/lib/mcp-scan/manifest/actions-loader.d.ts +49 -0
  34. package/src/lib/mcp-scan/manifest/actions-schema.d.ts +328 -0
  35. package/src/lib/mcp-scan/manifest/core-topics.d.ts +38 -0
  36. package/src/lib/mcp-scan/manifest/css-utilities-loader.d.ts +55 -0
  37. package/src/lib/mcp-scan/manifest/css-utilities-schema.d.ts +168 -0
  38. package/src/lib/mcp-scan/manifest/dbx-docs-ui-examples-loader.d.ts +33 -0
  39. package/src/lib/mcp-scan/manifest/dbx-docs-ui-examples-schema.d.ts +133 -0
  40. package/src/lib/mcp-scan/manifest/filters-loader.d.ts +61 -0
  41. package/src/lib/mcp-scan/manifest/filters-schema.d.ts +190 -0
  42. package/src/lib/mcp-scan/manifest/forge-fields-loader.d.ts +53 -0
  43. package/src/lib/mcp-scan/manifest/forge-fields-schema.d.ts +170 -0
  44. package/src/lib/mcp-scan/manifest/index.d.ts +43 -0
  45. package/src/lib/mcp-scan/manifest/load-actions-registry.d.ts +38 -0
  46. package/src/lib/mcp-scan/manifest/load-auth-registry.d.ts +82 -0
  47. package/src/lib/mcp-scan/manifest/load-css-utilities-registry.d.ts +67 -0
  48. package/src/lib/mcp-scan/manifest/load-dbx-docs-ui-examples-registry.d.ts +45 -0
  49. package/src/lib/mcp-scan/manifest/load-filters-registry.d.ts +69 -0
  50. package/src/lib/mcp-scan/manifest/load-forge-fields-registry.d.ts +70 -0
  51. package/src/lib/mcp-scan/manifest/load-model-firebase-index-registry.d.ts +61 -0
  52. package/src/lib/mcp-scan/manifest/load-model-snapshot-fields-registry.d.ts +74 -0
  53. package/src/lib/mcp-scan/manifest/load-pipes-registry.d.ts +69 -0
  54. package/src/lib/mcp-scan/manifest/load-registry.d.ts +76 -0
  55. package/src/lib/mcp-scan/manifest/load-tokens-registry.d.ts +69 -0
  56. package/src/lib/mcp-scan/manifest/load-ui-components-registry.d.ts +70 -0
  57. package/src/lib/mcp-scan/manifest/load-utils-registry.d.ts +73 -0
  58. package/src/lib/mcp-scan/manifest/loader.d.ts +120 -0
  59. package/src/lib/mcp-scan/manifest/manifest-loader-base.d.ts +130 -0
  60. package/src/lib/mcp-scan/manifest/model-firebase-index-loader.d.ts +53 -0
  61. package/src/lib/mcp-scan/manifest/model-snapshot-fields-loader.d.ts +54 -0
  62. package/src/lib/mcp-scan/manifest/model-snapshot-fields-schema.d.ts +127 -0
  63. package/src/lib/mcp-scan/manifest/pipes-loader.d.ts +54 -0
  64. package/src/lib/mcp-scan/manifest/pipes-schema.d.ts +125 -0
  65. package/src/lib/mcp-scan/manifest/semantic-types-schema.d.ts +108 -0
  66. package/src/lib/mcp-scan/manifest/tokens-loader.d.ts +55 -0
  67. package/src/lib/mcp-scan/manifest/tokens-schema.d.ts +116 -0
  68. package/src/lib/mcp-scan/manifest/ui-components-loader.d.ts +54 -0
  69. package/src/lib/mcp-scan/manifest/ui-components-schema.d.ts +149 -0
  70. package/src/lib/mcp-scan/manifest/utils-loader.d.ts +54 -0
  71. package/src/lib/mcp-scan/manifest/utils-schema.d.ts +120 -0
  72. package/src/lib/mcp-scan/registry/actions-runtime.d.ts +173 -0
  73. package/src/lib/mcp-scan/registry/archetypes.d.ts +235 -0
  74. package/src/lib/mcp-scan/registry/auth-builtin.d.ts +59 -0
  75. package/src/lib/mcp-scan/registry/auth-runtime.d.ts +343 -0
  76. package/src/lib/mcp-scan/registry/css-utilities-runtime.d.ts +133 -0
  77. package/src/lib/mcp-scan/registry/dbx-docs-ui-examples-runtime.d.ts +58 -0
  78. package/src/lib/mcp-scan/registry/downstream-models-runtime.d.ts +93 -0
  79. package/src/lib/mcp-scan/registry/filters-runtime.d.ts +128 -0
  80. package/src/lib/mcp-scan/registry/firebase-models.d.ts +387 -0
  81. package/src/lib/mcp-scan/registry/forge-fields.d.ts +101 -0
  82. package/src/lib/mcp-scan/registry/form-fields.d.ts +203 -0
  83. package/src/lib/mcp-scan/registry/index.d.ts +165 -0
  84. package/src/lib/mcp-scan/registry/model-snapshot-fields-runtime.d.ts +138 -0
  85. package/src/lib/mcp-scan/registry/pipes-runtime.d.ts +136 -0
  86. package/src/lib/mcp-scan/registry/reserved-model-folders.d.ts +29 -0
  87. package/src/lib/mcp-scan/registry/semantic-types.d.ts +81 -0
  88. package/src/lib/mcp-scan/registry/tokens-runtime.d.ts +96 -0
  89. package/src/lib/mcp-scan/registry/ui-components-runtime.d.ts +90 -0
  90. package/src/lib/mcp-scan/registry/utils-runtime.d.ts +136 -0
  91. package/src/lib/mcp-scan/scan/_jsdoc-tagged-export/extract-base.d.ts +245 -0
  92. package/src/lib/mcp-scan/scan/actions-build-manifest.d.ts +58 -0
  93. package/src/lib/mcp-scan/scan/actions-cli.d.ts +38 -0
  94. package/src/lib/mcp-scan/scan/actions-extract.d.ts +99 -0
  95. package/src/lib/mcp-scan/scan/actions-scan-config-schema.d.ts +42 -0
  96. package/src/lib/mcp-scan/scan/auth-extract.d.ts +120 -0
  97. package/src/lib/mcp-scan/scan/build-manifest.d.ts +76 -0
  98. package/src/lib/mcp-scan/scan/cli.d.ts +60 -0
  99. package/src/lib/mcp-scan/scan/css-utilities-build-manifest.d.ts +76 -0
  100. package/src/lib/mcp-scan/scan/css-utilities-cli.d.ts +36 -0
  101. package/src/lib/mcp-scan/scan/css-utilities-extract.d.ts +187 -0
  102. package/src/lib/mcp-scan/scan/css-utilities-scan-config-schema.d.ts +57 -0
  103. package/src/lib/mcp-scan/scan/dbx-docs-ui-examples-build-manifest.d.ts +68 -0
  104. package/src/lib/mcp-scan/scan/dbx-docs-ui-examples-cli.d.ts +20 -0
  105. package/src/lib/mcp-scan/scan/dbx-docs-ui-examples-extract.d.ts +160 -0
  106. package/src/lib/mcp-scan/scan/dbx-docs-ui-examples-scan-config-schema.d.ts +56 -0
  107. package/src/lib/mcp-scan/scan/discover-downstream-packages.d.ts +76 -0
  108. package/src/lib/mcp-scan/scan/discover-firebase-packages.d.ts +58 -0
  109. package/src/lib/mcp-scan/scan/extract-models/assemble.d.ts +105 -0
  110. package/src/lib/mcp-scan/scan/extract-models/collect-inherited.d.ts +22 -0
  111. package/src/lib/mcp-scan/scan/extract-models/find-converters.d.ts +19 -0
  112. package/src/lib/mcp-scan/scan/extract-models/find-enums.d.ts +19 -0
  113. package/src/lib/mcp-scan/scan/extract-models/find-identities.d.ts +25 -0
  114. package/src/lib/mcp-scan/scan/extract-models/find-interfaces.d.ts +31 -0
  115. package/src/lib/mcp-scan/scan/extract-models/find-model-groups.d.ts +21 -0
  116. package/src/lib/mcp-scan/scan/extract-models/find-service-factories.d.ts +19 -0
  117. package/src/lib/mcp-scan/scan/extract-models/find-sub-object-consts.d.ts +20 -0
  118. package/src/lib/mcp-scan/scan/extract-models/index.d.ts +74 -0
  119. package/src/lib/mcp-scan/scan/extract-models/infer-collection-kind.d.ts +22 -0
  120. package/src/lib/mcp-scan/scan/extract-models/service-factory-constants.d.ts +6 -0
  121. package/src/lib/mcp-scan/scan/extract-models/types.d.ts +171 -0
  122. package/src/lib/mcp-scan/scan/extract.d.ts +82 -0
  123. package/src/lib/mcp-scan/scan/filters-build-manifest.d.ts +78 -0
  124. package/src/lib/mcp-scan/scan/filters-cli.d.ts +37 -0
  125. package/src/lib/mcp-scan/scan/filters-extract.d.ts +101 -0
  126. package/src/lib/mcp-scan/scan/filters-scan-config-schema.d.ts +56 -0
  127. package/src/lib/mcp-scan/scan/forge-fields-build-manifest.d.ts +78 -0
  128. package/src/lib/mcp-scan/scan/forge-fields-cli.d.ts +37 -0
  129. package/src/lib/mcp-scan/scan/forge-fields-extract.d.ts +165 -0
  130. package/src/lib/mcp-scan/scan/forge-fields-scan-config-schema.d.ts +61 -0
  131. package/src/lib/mcp-scan/scan/index.d.ts +60 -0
  132. package/src/lib/mcp-scan/scan/model-firebase-index-cli.d.ts +22 -0
  133. package/src/lib/mcp-scan/scan/model-firebase-index-dispatcher-credit.d.ts +47 -0
  134. package/src/lib/mcp-scan/scan/model-firebase-index-reference-scan.d.ts +100 -0
  135. package/src/lib/mcp-scan/scan/model-snapshot-fields-build-manifest.d.ts +79 -0
  136. package/src/lib/mcp-scan/scan/model-snapshot-fields-cli.d.ts +37 -0
  137. package/src/lib/mcp-scan/scan/model-snapshot-fields-extract.d.ts +115 -0
  138. package/src/lib/mcp-scan/scan/model-snapshot-fields-scan-config-schema.d.ts +59 -0
  139. package/src/lib/mcp-scan/scan/pipes-build-manifest.d.ts +78 -0
  140. package/src/lib/mcp-scan/scan/pipes-cli.d.ts +37 -0
  141. package/src/lib/mcp-scan/scan/pipes-extract.d.ts +90 -0
  142. package/src/lib/mcp-scan/scan/pipes-scan-config-schema.d.ts +56 -0
  143. package/src/lib/mcp-scan/scan/scan-angular-io.d.ts +89 -0
  144. package/src/lib/mcp-scan/scan/scan-cli-base.d.ts +162 -0
  145. package/src/lib/mcp-scan/scan/scan-config-schema.d.ts +44 -0
  146. package/src/lib/mcp-scan/scan/ui-components-build-manifest.d.ts +78 -0
  147. package/src/lib/mcp-scan/scan/ui-components-cli.d.ts +37 -0
  148. package/src/lib/mcp-scan/scan/ui-components-extract.d.ts +124 -0
  149. package/src/lib/mcp-scan/scan/ui-components-scan-config-schema.d.ts +62 -0
  150. package/src/lib/mcp-scan/scan/utils-build-manifest.d.ts +78 -0
  151. package/src/lib/mcp-scan/scan/utils-cli.d.ts +37 -0
  152. package/src/lib/mcp-scan/scan/utils-extract.d.ts +103 -0
  153. package/src/lib/mcp-scan/scan/utils-scan-config-schema.d.ts +57 -0
  154. package/test/package.json +9 -9
  155. package/index.cjs.default.js +0 -1
  156. package/index.cjs.mjs +0 -2
@@ -0,0 +1,203 @@
1
+ /**
2
+ * Form Field Registry.
3
+ *
4
+ * Canonical metadata for @dereekb/dbx-form helpers — field factories
5
+ * (e.g. `dbxForgeTextField`), composite builders (e.g. `dbxForgeDateRangeRow`),
6
+ * and layout primitives (e.g. `dbxForgeRow`). The three-tier taxonomy is
7
+ * documented in the `dbx__ref__dbx-forge-field` skill.
8
+ *
9
+ * The PRIMARY search index is `produces` — the output primitive each entry
10
+ * yields. "I need a Date", "I need a RowField" is the most common AI query
11
+ * shape, and the registry is small enough (<40 entries) that filtering further
12
+ * by tier or inspecting config properties is cheap after the primitive match.
13
+ *
14
+ * Entries are slug-keyed (`'text'`, `'date-range-row'`, `'row'`). Slugs are
15
+ * kebab-case and unique across all three tiers.
16
+ */
17
+ import type { PropertyInfo } from './index.js';
18
+ /**
19
+ * Builder tier from the form-field skill.
20
+ *
21
+ * - `field-factory` dbxForgeFieldFunction / dbxForgeMaterialFormFieldWrappedFieldFunction — registers a type
22
+ * - `field-derivative` pre-configured wrapper around a single field-factory — returns one field of the same shape with presets baked in; does NOT register a type
23
+ * - `composite-builder` plain function composing other form entries into ONE field/group — does NOT register a type
24
+ * - `template-builder` returns multiple related fields as an array/tuple — distinct from composite-builders, which compose into a single container
25
+ * - `primitive` core layout helper (row, group, array, section)
26
+ */
27
+ export type FormTier = 'field-factory' | 'field-derivative' | 'composite-builder' | 'template-builder' | 'primitive';
28
+ /**
29
+ * Which form factory helper a field-factory entry is built with.
30
+ *
31
+ * - `unwrapped` `dbxForgeFieldFunction` (field renders its own chrome)
32
+ * - `material-form-field-wrapped` `dbxForgeMaterialFormFieldWrappedFieldFunction` (wrapped in mat-form-field)
33
+ */
34
+ export type FormFieldWrapperPattern = 'unwrapped' | 'material-form-field-wrapped';
35
+ /**
36
+ * What a composite builder's naming suffix advertises it returns.
37
+ *
38
+ * - `Row` `dbxForgeXRow` → `RowField`
39
+ * - `Group` `dbxForgeXGroup` → `GroupField`
40
+ * - `Fields` `dbxForgeXFields` → `FieldDef[]`
41
+ * - `Field` `dbxForgeXField` → single field (composite array fields keep `Field`)
42
+ * - `Wrapper` `dbxForgeXWrapper` → WrapperConfig or composed layout wrapped in a toggle/expand
43
+ * - `Layout` `dbxForgeXLayout` → GroupField with responsive flex configuration
44
+ */
45
+ export type FormCompositeSuffix = 'Row' | 'Group' | 'Fields' | 'Field' | 'Wrapper' | 'Layout';
46
+ /**
47
+ * Documentation of the common output primitives. `produces` on an entry is a
48
+ * raw `string` (entries can produce arbitrary form-model types like `'string'`,
49
+ * `'number'`, `'Date'`, `'T'`, `'T[]'`, `'AddressValue'`, ...). These are the
50
+ * canonical layout outputs that commonly show up in the catalog.
51
+ */
52
+ export type FormLayoutPrimitive = 'RowField' | 'GroupField' | 'ArrayField' | 'SectionField' | 'FieldDef[]' | 'WrapperConfig';
53
+ /**
54
+ * Whether an entry's output is an array / collection.
55
+ *
56
+ * - `yes` entry always produces a collection (field's form value is an
57
+ * array, OR composite returns `FieldDef[]`).
58
+ * - `no` entry produces a single value / single field.
59
+ * - `optional` entry can be configured either way (e.g. searchable-chip in
60
+ * single-select vs multi-select mode).
61
+ */
62
+ export type FormArrayOutput = 'yes' | 'no' | 'optional';
63
+ interface FormEntryBase {
64
+ /**
65
+ * Unique registry slug (kebab-case). Used for lookup.
66
+ */
67
+ readonly slug: string;
68
+ /**
69
+ * Exported factory/builder function name (e.g. `'dbxForgeTextField'`).
70
+ */
71
+ readonly factoryName: string;
72
+ /**
73
+ * PRIMARY INDEX. The output primitive this entry produces.
74
+ *
75
+ * Field factories: the form-model value type (e.g. `'string'`, `'number'`,
76
+ * `'boolean'`, `'Date'`, `'T'`, `'T[]'`).
77
+ * Composite builders: the composed return type (e.g. `'RowField'`,
78
+ * `'GroupField'`, `'FieldDef[]'`, `'ArrayField'`).
79
+ * Primitives: the layout field / wrapper type returned (`'RowField'`,
80
+ * `'GroupField'`, `'ArrayField'`, `'WrapperConfig'`, ...).
81
+ */
82
+ readonly produces: string;
83
+ /**
84
+ * Whether this entry's output is an array. Complements `produces` — lets
85
+ * callers ask "I need a single X" vs "I need a list of X" without parsing
86
+ * the type string.
87
+ */
88
+ readonly arrayOutput: FormArrayOutput;
89
+ /**
90
+ * Prose description of what the entry builds and when to reach for it.
91
+ */
92
+ readonly description: string;
93
+ /**
94
+ * Full copy-paste-ready usage example.
95
+ */
96
+ readonly example: string;
97
+ /**
98
+ * Smallest valid invocation.
99
+ */
100
+ readonly minimalExample: string;
101
+ /**
102
+ * Noteworthy config properties beyond `key` / `label` / `required` (which are assumed).
103
+ */
104
+ readonly config: Record<string, PropertyInfo>;
105
+ }
106
+ /**
107
+ * A field factory: registers an ng-forge field type via
108
+ * `dbxForgeFieldFunction` or `dbxForgeMaterialFormFieldWrappedFieldFunction`.
109
+ */
110
+ export interface FormFieldFactoryInfo extends FormEntryBase {
111
+ readonly tier: 'field-factory';
112
+ readonly wrapperPattern: FormFieldWrapperPattern;
113
+ /**
114
+ * Underlying ng-forge dynamic-forms type string (e.g. `'input'`, `'textarea'`, `'datepicker'`, `'toggle'`, `'slider'`).
115
+ */
116
+ readonly ngFormType: string;
117
+ /**
118
+ * TypeScript config interface name (e.g. `'DbxForgeTextFieldConfig'`).
119
+ */
120
+ readonly configInterface: string;
121
+ /**
122
+ * Generic signature if the factory accepts type parameters (e.g. `'<T = unknown>'`).
123
+ */
124
+ readonly generic?: string;
125
+ }
126
+ /**
127
+ * A field-derivative: pre-configured wrapper around a single field-factory.
128
+ * Returns one field of the same shape as its base factory, with presets baked in.
129
+ * Does not register a new ng-forge type.
130
+ */
131
+ export interface FormFieldDerivativeInfo extends FormEntryBase {
132
+ readonly tier: 'field-derivative';
133
+ /**
134
+ * TypeScript config interface name (e.g. `'DbxForgeEmailFieldConfig'`).
135
+ */
136
+ readonly configInterface: string;
137
+ /**
138
+ * Generic signature if the derivative accepts type parameters.
139
+ */
140
+ readonly generic?: string;
141
+ /**
142
+ * Slug of the base field-factory (or other registered entry) this derivative wraps.
143
+ */
144
+ readonly derivedFromSlug: string;
145
+ }
146
+ /**
147
+ * A composite builder: composes other form entries into a layout. Does not
148
+ * register a new ng-forge type.
149
+ */
150
+ export interface FormCompositeBuilderInfo extends FormEntryBase {
151
+ readonly tier: 'composite-builder';
152
+ /**
153
+ * Which suffix the builder uses — mirrors its return shape.
154
+ */
155
+ readonly suffix: FormCompositeSuffix;
156
+ /**
157
+ * TypeScript config interface name (descriptive, not `DbxForgeFieldFunctionDef`-based).
158
+ */
159
+ readonly configInterface: string;
160
+ /**
161
+ * Slugs of other form entries this composite composes from.
162
+ */
163
+ readonly composesFromSlugs: readonly string[];
164
+ }
165
+ /**
166
+ * A template-builder: returns multiple related fields as an array or tuple.
167
+ * Distinct from composite-builders, which return one composed field/group.
168
+ */
169
+ export interface FormFieldTemplateInfo extends FormEntryBase {
170
+ readonly tier: 'template-builder';
171
+ /**
172
+ * TypeScript config interface name.
173
+ */
174
+ readonly configInterface: string;
175
+ /**
176
+ * Slugs of the fields this template returns, in declaration order.
177
+ */
178
+ readonly returnsSlugs: readonly string[];
179
+ }
180
+ /**
181
+ * A layout primitive: core library helper that composites wrap (e.g. `dbxForgeRow`).
182
+ */
183
+ export interface FormPrimitiveInfo extends FormEntryBase {
184
+ readonly tier: 'primitive';
185
+ /**
186
+ * Layout field type this primitive returns. Accepts any string for flexibility; common values enumerated in {@link FormLayoutPrimitive}.
187
+ */
188
+ readonly returns: string;
189
+ /**
190
+ * TypeScript config interface name if the primitive accepts a config object.
191
+ */
192
+ readonly configInterface?: string;
193
+ }
194
+ /**
195
+ * Any entry in the form registry.
196
+ */
197
+ export type FormFieldInfo = FormFieldFactoryInfo | FormFieldDerivativeInfo | FormCompositeBuilderInfo | FormFieldTemplateInfo | FormPrimitiveInfo;
198
+ /**
199
+ * Presentation order for tiers in listings.
200
+ */
201
+ export declare const FORM_TIER_ORDER: readonly FormTier[];
202
+ export declare const FORM_FIELDS: readonly FormFieldInfo[];
203
+ export {};
@@ -0,0 +1,165 @@
1
+ /**
2
+ * Registry barrel for dbx-components domains.
3
+ *
4
+ * Each domain exports typed metadata constants (plain TypeScript, no state)
5
+ * plus pure getter functions. Domains are populated incrementally — see the
6
+ * implementation plan in the feat/dbx-components-mcp branch.
7
+ *
8
+ * Planned domains:
9
+ * - form-fields field factories, composite builders, and layout primitives
10
+ * - firebase-models model identity, data interfaces, converters, collection patterns
11
+ * - semantic-types domain-meaningful type aliases tagged with @semanticType (loaded at runtime)
12
+ * - model-pointers lightweight source-file pointers used by the decode tool
13
+ * - server-actions callable / on-call / scheduled / event pipeline patterns
14
+ * - component-patterns action, list, and store patterns
15
+ * - conventions TypeScript coding standards and semantic type catalog
16
+ */
17
+ export { createSemanticTypeRegistry, createSemanticTypeRegistryFromEntries, EMPTY_SEMANTIC_TYPE_REGISTRY } from './semantic-types.js';
18
+ export type { SemanticTypeRegistry } from './semantic-types.js';
19
+ export interface PropertyInfo {
20
+ readonly name: string;
21
+ readonly type: string;
22
+ readonly description: string;
23
+ readonly required: boolean;
24
+ readonly default?: unknown;
25
+ }
26
+ export { FORM_FIELDS, FORM_TIER_ORDER } from './form-fields.js';
27
+ export type { FormFieldInfo, FormFieldFactoryInfo, FormFieldDerivativeInfo, FormCompositeBuilderInfo, FormFieldTemplateInfo, FormPrimitiveInfo, FormTier, FormFieldWrapperPattern, FormCompositeSuffix, FormLayoutPrimitive, FormArrayOutput } from './form-fields.js';
28
+ export { ACTION_ROLE_ORDER, createActionRegistry, createActionRegistryFromEntries, EMPTY_ACTION_REGISTRY, toActionEntryInfo } from './actions-runtime.js';
29
+ export type { ActionRegistry, ActionEntryInfo, ActionDirectiveInfo, ActionStoreInfo, ActionStateInfo, ActionEntryRole, ActionInputInfo, ActionOutputInfo, ActionMethodInfo, ActionObservableInfo } from './actions-runtime.js';
30
+ export { createUiComponentRegistry, createUiComponentRegistryFromEntries, EMPTY_UI_COMPONENT_REGISTRY } from './ui-components-runtime.js';
31
+ export type { UiComponentRegistry } from './ui-components-runtime.js';
32
+ export { createCssUtilityRegistry, createCssUtilityRegistryFromEntries, EMPTY_CSS_UTILITY_REGISTRY, parseDeclarations } from './css-utilities-runtime.js';
33
+ export type { CssUtilityRegistry, ScoredCssUtilityMatch, SearchByDeclarationsOptions, FindByIntentOptions } from './css-utilities-runtime.js';
34
+ export { createForgeFieldRegistry, createForgeFieldRegistryFromEntries, EMPTY_FORGE_FIELD_REGISTRY, toFormFieldInfo } from './forge-fields.js';
35
+ export type { ForgeFieldRegistry } from './forge-fields.js';
36
+ export { createPipeRegistry, createPipeRegistryFromEntries, EMPTY_PIPE_REGISTRY, PIPE_CATEGORY_ORDER } from './pipes-runtime.js';
37
+ export type { PipeRegistry, PipeEntryInfo, PipeCategory } from './pipes-runtime.js';
38
+ export { createUtilRegistry, createUtilRegistryFromEntries, EMPTY_UTIL_REGISTRY } from './utils-runtime.js';
39
+ export type { UtilRegistry, UtilEntryInfo } from './utils-runtime.js';
40
+ export { createTokenRegistry, createTokenRegistryFromEntries, EMPTY_TOKEN_REGISTRY } from './tokens-runtime.js';
41
+ export type { TokenRegistry } from './tokens-runtime.js';
42
+ export { createModelSnapshotFieldRegistry, createModelSnapshotFieldRegistryFromEntries, EMPTY_MODEL_SNAPSHOT_FIELD_REGISTRY } from './model-snapshot-fields-runtime.js';
43
+ export type { ModelSnapshotFieldRegistry, ModelSnapshotFieldEntryInfo } from './model-snapshot-fields-runtime.js';
44
+ export { createDbxDocsUiExamplesRegistry, createDbxDocsUiExamplesRegistryFromEntries, EMPTY_DBX_DOCS_UI_EXAMPLES_REGISTRY } from './dbx-docs-ui-examples-runtime.js';
45
+ export type { DbxDocsUiExamplesRegistry } from './dbx-docs-ui-examples-runtime.js';
46
+ export { FILTER_KIND_ORDER, createFilterRegistry, createFilterRegistryFromEntries, EMPTY_FILTER_REGISTRY, toFilterEntryInfo } from './filters-runtime.js';
47
+ export type { FilterRegistry, FilterEntryInfo, FilterEntryInputInfo, FilterKind } from './filters-runtime.js';
48
+ export { createAuthRegistryFromEntries, EMPTY_AUTH_REGISTRY } from './auth-runtime.js';
49
+ export type { AuthRegistry, AuthRoleInfo, AuthClaimInfo, AuthClaimRoleMappingInfo, AuthScopeInfo, AuthScopeEnforcementInfo, AuthAppInfo, AuthEntrySource, CreateAuthRegistryFromEntriesInput } from './auth-runtime.js';
50
+ export { BUILTIN_AUTH_ROLES, BUILTIN_AUTH_CLAIMS, BUILTIN_AUTH_SCOPES, WORKSPACE_AUTH_CLAIMS, WORKSPACE_AUTH_APPS } from './auth-builtin.js';
51
+ import { type FirebaseModel, type FirebaseModelGroup } from './firebase-models.js';
52
+ export { FIREBASE_MODELS, FIREBASE_MODEL_GROUPS } from './firebase-models.js';
53
+ export type { FirebaseModel, FirebaseModelGroup, FirebaseEnum, FirebaseEnumValue, FirebaseField, FirebaseSubObject, FirestoreCollectionKind } from './firebase-models.js';
54
+ export { RESERVED_MODEL_FOLDERS } from './reserved-model-folders.js';
55
+ export type { ReservedModelFolder } from './reserved-model-folders.js';
56
+ export { MODEL_ARCHETYPES, MODEL_ARCHETYPE_SYNC_MODES, MODEL_ARCHETYPE_ADDON_SLUGS, getModelArchetypeBySlug, resolveModelArchetype, getModelArchetypesBySyncMode, getModelArchetypesByCollectionKind, getModelArchetypesByAxisValue } from './archetypes.js';
57
+ export type { ModelArchetypeInfo, ModelArchetypeSlug, ModelArchetypeSyncMode, ModelArchetypeDocIdSource, ModelArchetypeParentRelation, ModelArchetypeUserRelation, ModelArchetypeMutability, ModelArchetypeSingleItemSubPurpose, ModelArchetypeDenormalisedAggregateKeying, ModelArchetypeExpectedAnswers } from './archetypes.js';
58
+ export { getDownstreamCatalog, clearDownstreamCatalogCache } from './downstream-models-runtime.js';
59
+ export type { DownstreamCatalog, DownstreamCatalogError, GetDownstreamCatalogInput } from './downstream-models-runtime.js';
60
+ /**
61
+ * Returns every registered Firebase model entry.
62
+ *
63
+ * @returns The full Firebase model registry list in declaration order.
64
+ */
65
+ export declare function getFirebaseModels(): readonly FirebaseModel[];
66
+ /**
67
+ * Looks up a model by its interface name (`'StorageFile'`) or identity const
68
+ * (`'storageFileIdentity'`). Case-insensitive.
69
+ *
70
+ * @param key - The interface name, identity const, or model type to resolve.
71
+ * @returns The matching model entry, or `undefined` when no candidate matches.
72
+ */
73
+ export declare function getFirebaseModel(key: string): FirebaseModel | undefined;
74
+ /**
75
+ * PRIMARY INDEX. Returns the model with the given collection prefix
76
+ * (`'sf'` → StorageFile). Case-insensitive exact match.
77
+ *
78
+ * @param prefix - The short collection prefix used by the model.
79
+ * @returns The matching model entry, or `undefined` when no model uses the prefix.
80
+ */
81
+ export declare function getFirebaseModelByPrefix(prefix: string): FirebaseModel | undefined;
82
+ /**
83
+ * Returns every subcollection model whose parent identity matches
84
+ * `parentIdentityConst` (e.g. `'notificationBoxIdentity'`).
85
+ *
86
+ * @param parentIdentityConst - Identity const of the parent collection to scan beneath.
87
+ * @returns Each subcollection model nested under the given parent, in registry order.
88
+ */
89
+ export declare function getFirebaseSubcollectionsOf(parentIdentityConst: string): readonly FirebaseModel[];
90
+ /**
91
+ * Returns every model whose Firestore document id IS a Firebase Auth user uid
92
+ * — i.e. the interface (or one of its same-file ancestors) extends
93
+ * `UserRelatedById`. Useful for enumerating the per-user document set when
94
+ * reasoning about ownership and permissions.
95
+ *
96
+ * @returns Each user-keyed model in registry order.
97
+ */
98
+ export declare function getFirebaseUserKeyedByIdModels(): readonly FirebaseModel[];
99
+ /**
100
+ * Returns every model that carries an explicit `uid` field referencing a
101
+ * Firebase Auth user — i.e. the interface (or one of its same-file
102
+ * ancestors) extends `UserRelated`. Independent of
103
+ * {@link getFirebaseUserKeyedByIdModels}: a model can appear in either,
104
+ * both, or neither list.
105
+ *
106
+ * @returns Each user-related model in registry order.
107
+ */
108
+ export declare function getFirebaseUserRelatedModels(): readonly FirebaseModel[];
109
+ /**
110
+ * Returns every model whose Firestore document id IS a region key (interface
111
+ * extends `RegionRelatedById`).
112
+ *
113
+ * @returns Each region-keyed model in registry order.
114
+ */
115
+ export declare function getFirebaseRegionKeyedByIdModels(): readonly FirebaseModel[];
116
+ /**
117
+ * Returns every model whose Firestore document id IS a district key (interface
118
+ * extends `DistrictRelatedById`).
119
+ *
120
+ * @returns Each district-keyed model in registry order.
121
+ */
122
+ export declare function getFirebaseDistrictKeyedByIdModels(): readonly FirebaseModel[];
123
+ /**
124
+ * Returns every model whose Firestore document id IS an external vendor id
125
+ * (interface extends `ExternalRelatedById`).
126
+ *
127
+ * @returns Each external-id-keyed model in registry order.
128
+ */
129
+ export declare function getFirebaseExternalIdKeyedByIdModels(): readonly FirebaseModel[];
130
+ /**
131
+ * Returns every model whose Firestore document id IS a temporal bucket code
132
+ * (year-week / year-month / …).
133
+ *
134
+ * @returns Each bucket-keyed model in registry order.
135
+ */
136
+ export declare function getFirebaseBucketKeyedByIdModels(): readonly FirebaseModel[];
137
+ /**
138
+ * Returns every model whose `archetype` matches the given slug. Used by
139
+ * `dbx_model_archetype_search` peer search.
140
+ *
141
+ * @param archetype - The archetype slug to filter by.
142
+ * @returns Each matching model in registry order.
143
+ */
144
+ export declare function getFirebaseModelsByArchetype(archetype: string): readonly FirebaseModel[];
145
+ /**
146
+ * Returns the catalog of distinct collection prefixes in the registry.
147
+ *
148
+ * @returns The unique set of collection prefixes, sorted alphabetically.
149
+ */
150
+ export declare function getFirebasePrefixCatalog(): readonly string[];
151
+ /**
152
+ * Returns every registered Firebase model-group container (e.g.
153
+ * `NotificationFirestoreCollections`).
154
+ *
155
+ * @returns The full model-group registry list in declaration order.
156
+ */
157
+ export declare function getFirebaseModelGroups(): readonly FirebaseModelGroup[];
158
+ /**
159
+ * Looks up a model group by its `<Name>FirestoreCollections` class/interface
160
+ * name (e.g. `'NotificationFirestoreCollections'`). Case-insensitive.
161
+ *
162
+ * @param name - The group container name to resolve.
163
+ * @returns The matching group entry, or `undefined` when no group matches.
164
+ */
165
+ export declare function getFirebaseModelGroup(name: string): FirebaseModelGroup | undefined;
@@ -0,0 +1,138 @@
1
+ /**
2
+ * Model-snapshot-fields runtime registry wrapper.
3
+ *
4
+ * Wraps the raw {@link LoadModelSnapshotFieldManifestsResult} produced by
5
+ * the loader with domain-friendly accessors so the lookup/search tools and
6
+ * the registry resource don't have to walk Maps directly.
7
+ *
8
+ * The registry is loaded once at server startup and passed into the tool
9
+ * factories. Tests can construct a registry from any entry array via
10
+ * {@link createModelSnapshotFieldRegistryFromEntries} to drive the tools
11
+ * without touching disk.
12
+ */
13
+ import type { LoadModelSnapshotFieldManifestsResult } from '../manifest/model-snapshot-fields-loader.js';
14
+ import type { ModelSnapshotFieldEntry } from '../manifest/model-snapshot-fields-schema.js';
15
+ /**
16
+ * Closed kind vocabulary describing the shape of one snapshot-field entry.
17
+ */
18
+ export type ModelSnapshotFieldKind = 'factory' | 'const';
19
+ /**
20
+ * One documented parameter of a factory snapshot field.
21
+ */
22
+ export interface ModelSnapshotFieldParamInfo {
23
+ readonly name: string;
24
+ readonly type: string;
25
+ readonly description: string;
26
+ readonly optional: boolean;
27
+ }
28
+ /**
29
+ * One curated snapshot-field entry surfaced through the
30
+ * `dbx_model_snapshot_field_*` tools.
31
+ *
32
+ * Mirrors {@link ModelSnapshotFieldEntry} but normalises optional manifest
33
+ * fields to empty arrays / safe defaults so callers (lookup, search,
34
+ * resources) don't have to defensively branch.
35
+ */
36
+ export interface ModelSnapshotFieldEntryInfo {
37
+ readonly slug: string;
38
+ readonly name: string;
39
+ readonly kind: ModelSnapshotFieldKind;
40
+ readonly category: string;
41
+ readonly module: string;
42
+ readonly subpath: string;
43
+ readonly signature: string;
44
+ readonly description: string;
45
+ readonly optional: boolean;
46
+ readonly params: readonly ModelSnapshotFieldParamInfo[];
47
+ readonly returns: string;
48
+ readonly tags: readonly string[];
49
+ readonly example: string;
50
+ readonly relatedSlugs: readonly string[];
51
+ readonly skillRefs: readonly string[];
52
+ readonly deprecated: boolean | string;
53
+ readonly since: string;
54
+ }
55
+ /**
56
+ * Domain-friendly read API over a merged model-snapshot-fields manifest set.
57
+ * All accessors return readonly arrays preserving the order the manifests
58
+ * declared their entries (manifests are walked in source order).
59
+ */
60
+ export interface ModelSnapshotFieldRegistry {
61
+ readonly all: readonly ModelSnapshotFieldEntryInfo[];
62
+ readonly loadedSources: readonly string[];
63
+ readonly categories: readonly string[];
64
+ readonly modules: readonly string[];
65
+ /**
66
+ * Returns the entry whose slug matches `slug` exactly. Slugs are unique
67
+ * across manifests (collisions emit a loader warning and the
68
+ * second-loaded entry wins).
69
+ */
70
+ findBySlug(slug: string): ModelSnapshotFieldEntryInfo | undefined;
71
+ /**
72
+ * Returns the entry whose exported identifier matches `name`. Lookup is
73
+ * case-sensitive — most snapshot-field names are camelCase.
74
+ */
75
+ findByName(name: string): ModelSnapshotFieldEntryInfo | undefined;
76
+ /**
77
+ * Returns the entry whose exported identifier matches `name`
78
+ * case-insensitively. Falls back to the case-sensitive path first to
79
+ * keep camelCase hits prioritised.
80
+ */
81
+ findByNameInsensitive(name: string): ModelSnapshotFieldEntryInfo | undefined;
82
+ /**
83
+ * Returns every entry whose `category` field matches `category` exactly,
84
+ * in registry order.
85
+ */
86
+ findByCategory(category: string): readonly ModelSnapshotFieldEntryInfo[];
87
+ /**
88
+ * Returns every entry whose `module` field matches `module` exactly, in
89
+ * registry order.
90
+ */
91
+ findByModule(module: string): readonly ModelSnapshotFieldEntryInfo[];
92
+ /**
93
+ * Returns every entry whose `tags` array includes `tag` (case-sensitive,
94
+ * tags are stored lowercased), in registry order.
95
+ */
96
+ findByTag(tag: string): readonly ModelSnapshotFieldEntryInfo[];
97
+ }
98
+ /**
99
+ * Builds a {@link ModelSnapshotFieldRegistry} from a loader result.
100
+ *
101
+ * @param loaded - The merged registry returned by `loadModelSnapshotFieldManifests`
102
+ * @returns A domain-friendly read API over the merged entries.
103
+ *
104
+ * @__NO_SIDE_EFFECTS__
105
+ */
106
+ export declare function createModelSnapshotFieldRegistry(loaded: LoadModelSnapshotFieldManifestsResult): ModelSnapshotFieldRegistry;
107
+ /**
108
+ * Builds a {@link ModelSnapshotFieldRegistry} from a raw
109
+ * {@link ModelSnapshotFieldEntryInfo} array. Used by tests that need to
110
+ * drive the tools without going through the loader pipeline.
111
+ *
112
+ * @param input - The entries plus the source labels to advertise.
113
+ * @param input.entries - The full entry list.
114
+ * @param input.loadedSources - Source labels reported via `registry.loadedSources`
115
+ * @returns A domain-friendly read API over the supplied entries.
116
+ *
117
+ * @__NO_SIDE_EFFECTS__
118
+ */
119
+ export declare function createModelSnapshotFieldRegistryFromEntries(input: {
120
+ readonly entries: readonly ModelSnapshotFieldEntryInfo[];
121
+ readonly loadedSources: readonly string[];
122
+ }): ModelSnapshotFieldRegistry;
123
+ /**
124
+ * Empty registry suitable as a default when the server has no
125
+ * model-snapshot-fields manifest sources to load. Tools wired against this
126
+ * registry behave like a registry that loaded successfully with zero
127
+ * entries.
128
+ */
129
+ export declare const EMPTY_MODEL_SNAPSHOT_FIELD_REGISTRY: ModelSnapshotFieldRegistry;
130
+ /**
131
+ * Converts a manifest entry into the {@link ModelSnapshotFieldEntryInfo}
132
+ * shape the lookup/search tools consume. Optional manifest fields fall
133
+ * back to safe defaults so a partially-populated entry still renders cleanly.
134
+ *
135
+ * @param entry - The manifest entry to convert.
136
+ * @returns The matching ModelSnapshotFieldEntryInfo.
137
+ */
138
+ export declare function toModelSnapshotFieldEntryInfo(entry: ModelSnapshotFieldEntry): ModelSnapshotFieldEntryInfo;
@@ -0,0 +1,136 @@
1
+ /**
2
+ * Pipes runtime registry wrapper.
3
+ *
4
+ * Wraps the raw {@link LoadPipeManifestsResult} produced by the loader with
5
+ * domain-friendly accessors so the lookup tool and the registry resource
6
+ * don't have to walk Maps directly.
7
+ *
8
+ * The registry is loaded once at server startup and passed into the tool
9
+ * factories. Tests can construct a registry from any entry array via
10
+ * {@link createPipeRegistryFromEntries} to drive the tool without touching
11
+ * disk.
12
+ *
13
+ * Manifest entries (flat, JSON-friendly shape) are converted into the
14
+ * `PipeEntryInfo` shape historically exposed by `tools/data/pipe-entries.ts`.
15
+ * The lookup tool keeps consuming that shape so this module is the only seam
16
+ * that changed when the hand-written entries were deleted.
17
+ */
18
+ import type { LoadPipeManifestsResult } from '../manifest/pipes-loader.js';
19
+ import type { PipeEntry } from '../manifest/pipes-schema.js';
20
+ /**
21
+ * Browse-friendly category grouping. Mirrors the on-disk folder layout of
22
+ * `packages/dbx-core/src/lib/pipe/` and the `category` field on every
23
+ * manifest entry.
24
+ */
25
+ export type PipeCategory = 'value' | 'date' | 'async' | 'misc';
26
+ /**
27
+ * Whether the pipe is `pure: true` (default — runs only when the reference
28
+ * to its inputs change) or `pure: false` (runs on every change detection).
29
+ */
30
+ export type PipePurity = 'pure' | 'impure';
31
+ /**
32
+ * One documented argument supplied to the pipe `transform()` method on top
33
+ * of the piped value (e.g. `{{ value | dollarAmount:'N/A' }}` — `'N/A'` is
34
+ * the `defaultIfNull` argument).
35
+ */
36
+ export interface PipeEntryArgInfo {
37
+ readonly name: string;
38
+ readonly type: string;
39
+ readonly description: string;
40
+ readonly required: boolean;
41
+ }
42
+ /**
43
+ * One curated pipe entry surfaced through `dbx_pipe_lookup`. Mirrors the
44
+ * legacy hand-written shape so the lookup tool didn't have to be rewritten
45
+ * when the manifest pipeline replaced the inline data table.
46
+ */
47
+ export interface PipeEntryInfo {
48
+ readonly slug: string;
49
+ readonly category: PipeCategory;
50
+ readonly pipeName: string;
51
+ readonly className: string;
52
+ readonly module: string;
53
+ readonly inputType: string;
54
+ readonly outputType: string;
55
+ readonly purity: PipePurity;
56
+ readonly description: string;
57
+ readonly args: readonly PipeEntryArgInfo[];
58
+ readonly relatedSlugs: readonly string[];
59
+ readonly skillRefs: readonly string[];
60
+ readonly example: string;
61
+ }
62
+ /**
63
+ * Domain-friendly read API over a merged pipes manifest set. All accessors
64
+ * return readonly arrays preserving the order the manifests declared their
65
+ * entries (manifests are walked in source order).
66
+ */
67
+ export interface PipeRegistry {
68
+ readonly all: readonly PipeEntryInfo[];
69
+ readonly loadedSources: readonly string[];
70
+ readonly categories: readonly PipeCategory[];
71
+ /**
72
+ * Returns the entry whose slug matches `slug` exactly. Slugs are unique
73
+ * across manifests (collisions emit a loader warning and the second-loaded
74
+ * entry wins).
75
+ */
76
+ findBySlug(slug: string): PipeEntryInfo | undefined;
77
+ /**
78
+ * Returns the entry whose Angular pipe name matches `pipeName` (case
79
+ * sensitive — Angular pipe names are camelCase).
80
+ */
81
+ findByPipeName(pipeName: string): PipeEntryInfo | undefined;
82
+ /**
83
+ * Returns the entry whose TypeScript class name matches `className`
84
+ * (case-insensitive).
85
+ */
86
+ findByClassName(className: string): PipeEntryInfo | undefined;
87
+ /**
88
+ * Returns every entry whose `category` field matches `category` exactly,
89
+ * in registry order.
90
+ */
91
+ findByCategory(category: PipeCategory): readonly PipeEntryInfo[];
92
+ }
93
+ /**
94
+ * Stable rendering order for category buckets in the catalog view.
95
+ */
96
+ export declare const PIPE_CATEGORY_ORDER: readonly PipeCategory[];
97
+ /**
98
+ * Builds a {@link PipeRegistry} from a loader result.
99
+ *
100
+ * @param loaded - The merged registry returned by `loadPipeManifests`
101
+ * @returns A domain-friendly read API over the merged entries.
102
+ *
103
+ * @__NO_SIDE_EFFECTS__
104
+ */
105
+ export declare function createPipeRegistry(loaded: LoadPipeManifestsResult): PipeRegistry;
106
+ /**
107
+ * Builds a {@link PipeRegistry} from a raw {@link PipeEntryInfo} array. Used
108
+ * by tests that need to drive the tool without going through the loader
109
+ * pipeline.
110
+ *
111
+ * @param input - The entries plus the source labels to advertise.
112
+ * @param input.entries - The full entry list.
113
+ * @param input.loadedSources - Source labels reported via `registry.loadedSources`
114
+ * @returns A domain-friendly read API over the supplied entries.
115
+ *
116
+ * @__NO_SIDE_EFFECTS__
117
+ */
118
+ export declare function createPipeRegistryFromEntries(input: {
119
+ readonly entries: readonly PipeEntryInfo[];
120
+ readonly loadedSources: readonly string[];
121
+ }): PipeRegistry;
122
+ /**
123
+ * Empty registry suitable as a default when the server has no pipes manifest
124
+ * sources to load. Tools wired against this registry behave like a registry
125
+ * that loaded successfully with zero entries.
126
+ */
127
+ export declare const EMPTY_PIPE_REGISTRY: PipeRegistry;
128
+ /**
129
+ * Converts a manifest entry into the {@link PipeEntryInfo} shape the lookup
130
+ * tool consumes. Optional manifest fields fall back to safe defaults so a
131
+ * partially-populated entry still renders cleanly.
132
+ *
133
+ * @param entry - The manifest entry to convert.
134
+ * @returns The matching PipeEntryInfo.
135
+ */
136
+ export declare function toPipeEntryInfo(entry: PipeEntry): PipeEntryInfo;
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Reserved model-folder names used by both scanners (skip these folders
3
+ * during canonical extraction) and the `dbx_validate_model_folder` validator
4
+ * (emit a warning naming the dedicated validator instead of running the
5
+ * 5-file structural rules).
6
+ *
7
+ * Canonical home so the scan side does not need to reach back into the
8
+ * dbx-components-mcp `tools/` tree.
9
+ */
10
+ /**
11
+ * Descriptor for a reserved model-folder name — one that the validator
12
+ * recognizes but deliberately skips because the folder either follows a
13
+ * distinct layout (e.g. `system/`) or is an extension of an upstream
14
+ * group imported from `@dereekb/firebase` (e.g. `notification/`,
15
+ * `storagefile/`). The emitted warning points the caller at the
16
+ * dedicated validator for that group.
17
+ */
18
+ export interface ReservedModelFolder {
19
+ readonly name: string;
20
+ readonly reason: string;
21
+ readonly recommendedTool: string;
22
+ }
23
+ /**
24
+ * Folder names reserved from the canonical 5-file check. The validator
25
+ * emits a `RESERVED_MODEL_FOLDER` warning naming the
26
+ * {@link ReservedModelFolder.recommendedTool} instead of running
27
+ * structural rules.
28
+ */
29
+ export declare const RESERVED_MODEL_FOLDERS: readonly ReservedModelFolder[];