@happyvertical/smrt-scanner 0.55.1 → 0.55.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +31 -0
- package/dist/chunks/{scanner-ItT4WTxN.js → scanner-CeTWAIar.js} +1013 -18
- package/dist/chunks/scanner-CeTWAIar.js.map +1 -0
- package/dist/cli.js +1 -1
- package/dist/discovery.d.ts +1 -1
- package/dist/enum-values.d.ts +23 -0
- package/dist/enum-values.d.ts.map +1 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/manifest-adapter.d.ts +31 -1
- package/dist/manifest-adapter.d.ts.map +1 -1
- package/dist/oxc-parser.d.ts +14 -1
- package/dist/oxc-parser.d.ts.map +1 -1
- package/dist/recipes.d.ts +105 -0
- package/dist/recipes.d.ts.map +1 -0
- package/dist/scanner.d.ts +15 -0
- package/dist/scanner.d.ts.map +1 -1
- package/dist/types.d.ts +33 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/ui-selectors.d.ts +30 -0
- package/dist/ui-selectors.d.ts.map +1 -0
- package/package.json +2 -2
- package/dist/chunks/scanner-ItT4WTxN.js.map +0 -1
package/dist/cli.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
2
|
+
import { r as ManifestAdapter, t as OxcScanner } from "./chunks/scanner-CeTWAIar.js";
|
|
3
3
|
import { readFileSync, writeFileSync } from "node:fs";
|
|
4
4
|
import { dirname, resolve } from "node:path";
|
|
5
5
|
import { fileURLToPath } from "node:url";
|
package/dist/discovery.d.ts
CHANGED
|
@@ -11,5 +11,5 @@ export interface SourceDiscoveryOptions {
|
|
|
11
11
|
export declare function discoverSourceFiles(options: SourceDiscoveryOptions): Promise<string[]>;
|
|
12
12
|
/** Preserve relative glob escapes; normalize separators only after rewriting. */
|
|
13
13
|
export declare function relativeGlobToCwd(pattern: string, cwd: string): string;
|
|
14
|
-
export declare function normalizeGlobSeparators(pattern: string, pathSeparator?: "
|
|
14
|
+
export declare function normalizeGlobSeparators(pattern: string, pathSeparator?: "/" | "\\"): string;
|
|
15
15
|
//# sourceMappingURL=discovery.d.ts.map
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolve the closed set of allowed values of a field's declared type (#3598).
|
|
3
|
+
*
|
|
4
|
+
* The scanner records annotations as strings and keeps a project-wide
|
|
5
|
+
* `typeAliases` map (`type X = 'a' | 'b'` and `enum X { A = 'a' }` both land
|
|
6
|
+
* there as the union string `'a' | 'b'`). This module walks such a string:
|
|
7
|
+
* splits the top-level union, follows alias identifiers (so a union that
|
|
8
|
+
* *contains* an alias is flattened rather than treated as opaque), drops
|
|
9
|
+
* `null` / `undefined`, and returns the literal values in declaration order.
|
|
10
|
+
*
|
|
11
|
+
* It answers `undefined` unless EVERY non-nullish member resolves to a string
|
|
12
|
+
* or number literal. A union that also admits `string` / `number` / an object
|
|
13
|
+
* type is not a closed set, so no `enum` is emitted for it.
|
|
14
|
+
*/
|
|
15
|
+
/** A value an enum-typed field may hold. */
|
|
16
|
+
export type EnumValue = string | number;
|
|
17
|
+
/**
|
|
18
|
+
* Allowed values for a declared type string, or `undefined` when the type is
|
|
19
|
+
* not a closed literal set. Order is declaration order; duplicates (from a
|
|
20
|
+
* union that re-lists an aliased member) are dropped, keeping the first.
|
|
21
|
+
*/
|
|
22
|
+
export declare function resolveEnumValues(type: string | null | undefined, aliases?: Record<string, string>): EnumValue[] | undefined;
|
|
23
|
+
//# sourceMappingURL=enum-values.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enum-values.d.ts","sourceRoot":"","sources":["../src/enum-values.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,4CAA4C;AAC5C,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAmGxC;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAC/B,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GACnC,SAAS,EAAE,GAAG,SAAS,CAYzB"}
|
package/dist/index.d.ts
CHANGED
|
@@ -19,11 +19,14 @@
|
|
|
19
19
|
*/
|
|
20
20
|
export { type AgentSurfaceToolNameOptions, checkAgentSurfaceToolNames, type ExtractAgentSurfaceOptions, emptyAgentSurface, extractAgentSurface, type GeneratedModelToolName, isAgentSurfaceSourcePath, isPrunedAgentSurfacePath, mergeAgentSurfaces, scanSvelteAgentSurface, sourceMayDeclareAgentSurface, } from './agent-surface.js';
|
|
21
21
|
export { discoverSourceFiles, normalizeGlobSeparators, relativeGlobToCwd, type SourceDiscoveryOptions, } from './discovery.js';
|
|
22
|
+
export { type EnumValue, resolveEnumValues } from './enum-values.js';
|
|
22
23
|
export { InheritanceResolver } from './inheritance-resolver.js';
|
|
23
24
|
export { ManifestAdapter } from './manifest-adapter.js';
|
|
24
25
|
export { classifyNumericFieldName, lintNumericPrecision, type NumericPrecisionFinding, type NumericPrecisionKind, sourceMayContainNumericPrecisionIssue, splitIdentifierWords, } from './numeric-precision-lint.js';
|
|
25
|
-
export { extractSmrtImports, parseAgentSurfaceFile, parseFile, parseSource, } from './oxc-parser.js';
|
|
26
|
+
export { extractSmrtImports, parseAgentSurfaceFile, parseFile, parseRecipeFile, parseSource, } from './oxc-parser.js';
|
|
27
|
+
export { deriveHelpFieldRefs, extractRecipes, type RawRecipe, type RawRecipeModelRef, resolveRecipes, sourceMayDeclareRecipe, } from './recipes.js';
|
|
26
28
|
export { OxcScanner } from './scanner.js';
|
|
27
29
|
export * from './types.js';
|
|
30
|
+
export { parseUiSelectorsFile } from './ui-selectors.js';
|
|
28
31
|
export { type VerifyManifestCompletenessOptions, type VerifyManifestCompletenessResult, type VerifyManifestStatus, verifyManifestCompleteness, } from './verify-completeness.js';
|
|
29
32
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EACL,KAAK,2BAA2B,EAChC,0BAA0B,EAC1B,KAAK,0BAA0B,EAC/B,iBAAiB,EACjB,mBAAmB,EACnB,KAAK,sBAAsB,EAC3B,wBAAwB,EACxB,wBAAwB,EACxB,kBAAkB,EAClB,sBAAsB,EACtB,4BAA4B,GAC7B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,iBAAiB,EACjB,KAAK,sBAAsB,GAC5B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,EACzB,qCAAqC,EACrC,oBAAoB,GACrB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,SAAS,EACT,WAAW,GACZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,cAAc,YAAY,CAAC;AAC3B,OAAO,EACL,KAAK,iCAAiC,EACtC,KAAK,gCAAgC,EACrC,KAAK,oBAAoB,EACzB,0BAA0B,GAC3B,MAAM,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EACL,KAAK,2BAA2B,EAChC,0BAA0B,EAC1B,KAAK,0BAA0B,EAC/B,iBAAiB,EACjB,mBAAmB,EACnB,KAAK,sBAAsB,EAC3B,wBAAwB,EACxB,wBAAwB,EACxB,kBAAkB,EAClB,sBAAsB,EACtB,4BAA4B,GAC7B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,iBAAiB,EACjB,KAAK,sBAAsB,GAC5B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,SAAS,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,EACzB,qCAAqC,EACrC,oBAAoB,GACrB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,SAAS,EACT,eAAe,EACf,WAAW,GACZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,KAAK,SAAS,EACd,KAAK,iBAAiB,EACtB,cAAc,EACd,sBAAsB,GACvB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EACL,KAAK,iCAAiC,EACtC,KAAK,gCAAgC,EACrC,KAAK,oBAAoB,EACzB,0BAA0B,GAC3B,MAAM,0BAA0B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { _ as
|
|
1
|
+
import { C as mergeAgentSurfaces, S as isPrunedAgentSurfacePath, T as sourceMayDeclareAgentSurface, _ as relativeGlobToCwd, a as parseAgentSurfaceFile, b as extractAgentSurface, c as parseSource, d as resolveRecipes, f as sourceMayDeclareRecipe, g as normalizeGlobSeparators, h as discoverSourceFiles, i as extractSmrtImports, l as deriveHelpFieldRefs, m as resolveEnumValues, n as parseUiSelectorsFile, o as parseFile, p as InheritanceResolver, r as ManifestAdapter, s as parseRecipeFile, t as OxcScanner, u as extractRecipes, v as checkAgentSurfaceToolNames, w as scanSvelteAgentSurface, x as isAgentSurfaceSourcePath, y as emptyAgentSurface } from "./chunks/scanner-CeTWAIar.js";
|
|
2
2
|
import "./types.js";
|
|
3
3
|
import { existsSync, readFileSync } from "node:fs";
|
|
4
4
|
import { basename, resolve } from "node:path";
|
|
@@ -273,6 +273,6 @@ async function verifyManifestCompleteness(options) {
|
|
|
273
273
|
};
|
|
274
274
|
}
|
|
275
275
|
//#endregion
|
|
276
|
-
export { InheritanceResolver, ManifestAdapter, OxcScanner, checkAgentSurfaceToolNames, classifyNumericFieldName, discoverSourceFiles, emptyAgentSurface, extractAgentSurface, extractSmrtImports, isAgentSurfaceSourcePath, isPrunedAgentSurfacePath, lintNumericPrecision, mergeAgentSurfaces, normalizeGlobSeparators, parseAgentSurfaceFile, parseFile, parseSource, relativeGlobToCwd, scanSvelteAgentSurface, sourceMayContainNumericPrecisionIssue, sourceMayDeclareAgentSurface, splitIdentifierWords, verifyManifestCompleteness };
|
|
276
|
+
export { InheritanceResolver, ManifestAdapter, OxcScanner, checkAgentSurfaceToolNames, classifyNumericFieldName, deriveHelpFieldRefs, discoverSourceFiles, emptyAgentSurface, extractAgentSurface, extractRecipes, extractSmrtImports, isAgentSurfaceSourcePath, isPrunedAgentSurfacePath, lintNumericPrecision, mergeAgentSurfaces, normalizeGlobSeparators, parseAgentSurfaceFile, parseFile, parseRecipeFile, parseSource, parseUiSelectorsFile, relativeGlobToCwd, resolveEnumValues, resolveRecipes, scanSvelteAgentSurface, sourceMayContainNumericPrecisionIssue, sourceMayDeclareAgentSurface, sourceMayDeclareRecipe, splitIdentifierWords, verifyManifestCompleteness };
|
|
277
277
|
|
|
278
278
|
//# sourceMappingURL=index.js.map
|
|
@@ -4,7 +4,9 @@
|
|
|
4
4
|
* Converts OXC scanner output to smrt-core manifest format.
|
|
5
5
|
* Ensures compatibility with existing manifest consumers.
|
|
6
6
|
*/
|
|
7
|
-
import type {
|
|
7
|
+
import type { RecipeDefinition } from '@happyvertical/smrt-types';
|
|
8
|
+
import { type EnumValue } from './enum-values.js';
|
|
9
|
+
import type { FieldTypeInference, ParameterTypeBranch, RawFieldDefinition, RawMethodDefinition, ResolvedClassDefinition, UiSelectorDeclaration } from './types.js';
|
|
8
10
|
/**
|
|
9
11
|
* Qualified class name format: "@package/name:ClassName"
|
|
10
12
|
* Uniquely identifies classes across packages.
|
|
@@ -18,6 +20,11 @@ interface FieldDefinition {
|
|
|
18
20
|
max?: number;
|
|
19
21
|
maxLength?: number;
|
|
20
22
|
minLength?: number;
|
|
23
|
+
/**
|
|
24
|
+
* Closed set of allowed values for an enum- or literal-union-typed field, in
|
|
25
|
+
* declaration order, values not member names (#3598).
|
|
26
|
+
*/
|
|
27
|
+
enum?: EnumValue[];
|
|
21
28
|
related?: string;
|
|
22
29
|
description?: string;
|
|
23
30
|
_meta?: Record<string, unknown>;
|
|
@@ -104,6 +111,14 @@ interface SmartObjectManifest {
|
|
|
104
111
|
objects: Record<string, SmartObjectDefinition>;
|
|
105
112
|
moduleType?: string;
|
|
106
113
|
smrtDependencies?: string[];
|
|
114
|
+
recipes?: RecipeDefinition[];
|
|
115
|
+
/** Selector slots keyed by slot id (#3599). Mirrors smrt-core's type. */
|
|
116
|
+
uiSelectors?: Record<string, {
|
|
117
|
+
slotId: string;
|
|
118
|
+
selects: `${string}:${string}`;
|
|
119
|
+
label?: string;
|
|
120
|
+
description?: string;
|
|
121
|
+
}>;
|
|
107
122
|
}
|
|
108
123
|
/**
|
|
109
124
|
* Converts OXC scanner output into the smrt-core `SmartObjectManifest` format
|
|
@@ -169,7 +184,16 @@ export declare class ManifestAdapter {
|
|
|
169
184
|
packageName?: string;
|
|
170
185
|
packageVersion?: string;
|
|
171
186
|
typeAliases?: Record<string, string>;
|
|
187
|
+
/**
|
|
188
|
+
* Recipes from `ScanResults.recipes` (#3590). Model names are class
|
|
189
|
+
* names; they are qualified here with `packageName`.
|
|
190
|
+
*/
|
|
191
|
+
recipes?: RecipeDefinition[];
|
|
192
|
+
/** Selector slots from {@link ScanResults.uiSelectors} (#3599). */
|
|
193
|
+
uiSelectors?: Record<string, UiSelectorDeclaration>;
|
|
172
194
|
}): SmartObjectManifest;
|
|
195
|
+
/** Qualify recipe model names (`@scope/pkg:Class`) once the package is known. */
|
|
196
|
+
private qualifyRecipes;
|
|
173
197
|
/**
|
|
174
198
|
* Convert a single resolved class definition to a `SmartObjectDefinition`.
|
|
175
199
|
*
|
|
@@ -265,6 +289,12 @@ export declare class ManifestAdapter {
|
|
|
265
289
|
* Infer type from TypeScript type annotation
|
|
266
290
|
*/
|
|
267
291
|
private inferFromAnnotation;
|
|
292
|
+
/**
|
|
293
|
+
* Allowed values of a field whose declared type is a closed literal set.
|
|
294
|
+
* Only emitted when the final column type agrees with the value kind, so a
|
|
295
|
+
* `@field({ type })` override can never contradict its own `enum`.
|
|
296
|
+
*/
|
|
297
|
+
private resolveFieldEnum;
|
|
268
298
|
/**
|
|
269
299
|
* Parse default value from initializer string
|
|
270
300
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest-adapter.d.ts","sourceRoot":"","sources":["../src/manifest-adapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"manifest-adapter.d.ts","sourceRoot":"","sources":["../src/manifest-adapter.ts"],"names":[],"mappings":"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"}
|
package/dist/oxc-parser.d.ts
CHANGED
|
@@ -6,8 +6,9 @@
|
|
|
6
6
|
*
|
|
7
7
|
* @see https://oxc.rs/docs/guide/usage/parser.html
|
|
8
8
|
*/
|
|
9
|
+
import { type RawRecipe } from './recipes.js';
|
|
9
10
|
import { getLineColumn } from './source-location.js';
|
|
10
|
-
import type { AgentSurface, FileScanResult } from './types.js';
|
|
11
|
+
import type { AgentSurface, FileScanResult, ScanError } from './types.js';
|
|
11
12
|
export { getLineColumn };
|
|
12
13
|
interface Position {
|
|
13
14
|
line: number;
|
|
@@ -351,6 +352,18 @@ export declare function parseFile(filePath: string): FileScanResult;
|
|
|
351
352
|
* cannot be read.
|
|
352
353
|
*/
|
|
353
354
|
export declare function parseAgentSurfaceFile(filePath: string): AgentSurface | undefined;
|
|
355
|
+
/**
|
|
356
|
+
* Read one file for `SmrtRecipe` declarations ONLY (#3590).
|
|
357
|
+
*
|
|
358
|
+
* The class scan's `include` is routinely narrowed to where models live, while
|
|
359
|
+
* a recipe may sit beside them or elsewhere; binding recipe discovery to that
|
|
360
|
+
* glob would drop the declaration with no diagnostic. A read or parse failure is
|
|
361
|
+
* reported as a scan error for the same reason.
|
|
362
|
+
*/
|
|
363
|
+
export declare function parseRecipeFile(filePath: string): {
|
|
364
|
+
recipes: RawRecipe[];
|
|
365
|
+
errors: ScanError[];
|
|
366
|
+
};
|
|
354
367
|
/**
|
|
355
368
|
* Parse TypeScript source text directly and extract SMRT class definitions.
|
|
356
369
|
*
|
package/dist/oxc-parser.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oxc-parser.d.ts","sourceRoot":"","sources":["../src/oxc-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAQH,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EACV,YAAY,EACZ,cAAc,
|
|
1
|
+
{"version":3,"file":"oxc-parser.d.ts","sourceRoot":"","sources":["../src/oxc-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Recipe matcher (#3590).
|
|
3
|
+
*
|
|
4
|
+
* A recipe is a class that extends `SmrtRecipe` and declares static
|
|
5
|
+
* properties. It is not `@smrt()`-decorated and not persisted, so the class
|
|
6
|
+
* scanner (which discovers classes by decorator) never sees it. This module is
|
|
7
|
+
* the second recognizable shape: a **class whose `extends` clause resolves to
|
|
8
|
+
* the `SmrtRecipe` import binding** from smrt-core.
|
|
9
|
+
*
|
|
10
|
+
* It keeps the discipline the agent-surface matcher keeps:
|
|
11
|
+
*
|
|
12
|
+
* - **structural only** — nothing is evaluated and no module is loaded. A
|
|
13
|
+
* value that is not spelled literally cannot be read;
|
|
14
|
+
* - **never a silent drop** — a recipe that is recognized but unreadable
|
|
15
|
+
* produces a scan error, and scan errors fail the build;
|
|
16
|
+
* - **binding-aware** — `extends X` matches only when `X` is the local name of
|
|
17
|
+
* an import of `SmrtRecipe` from `@happyvertical/smrt-core`, so aliased
|
|
18
|
+
* imports (`import { SmrtRecipe as Recipe }`) and namespace imports
|
|
19
|
+
* (`Core.SmrtRecipe`) are recognized and a local class that merely shares the
|
|
20
|
+
* name is not.
|
|
21
|
+
*
|
|
22
|
+
* Model class references (`static models = [Order]`) are resolved to the class
|
|
23
|
+
* they import, through the import binding, never by evaluating anything:
|
|
24
|
+
* a relative specifier selects the scanned class by file, then by name (a
|
|
25
|
+
* barrel re-export keeps the same class name); a bare package specifier is
|
|
26
|
+
* another package's class and is rejected, because a recipe's models belong to
|
|
27
|
+
* its own package.
|
|
28
|
+
*/
|
|
29
|
+
import type { RecipeDefinition } from '@happyvertical/smrt-types';
|
|
30
|
+
import type { ResolvedClassDefinition, ScanError } from './types.js';
|
|
31
|
+
/**
|
|
32
|
+
* A model reference as authored: the local binding, the name it was exported
|
|
33
|
+
* under, and the module it came from (`null` when declared in the same file).
|
|
34
|
+
*/
|
|
35
|
+
export interface RawRecipeModelRef {
|
|
36
|
+
/** Identifier as written (`Order`, or `Models.Order` for a namespace). */
|
|
37
|
+
local: string;
|
|
38
|
+
/** Exported name the binding refers to. */
|
|
39
|
+
imported: string;
|
|
40
|
+
/** Import specifier, or `null` for a same-file declaration. */
|
|
41
|
+
source: string | null;
|
|
42
|
+
line?: number;
|
|
43
|
+
}
|
|
44
|
+
/** One recipe as read from source, before models are resolved. */
|
|
45
|
+
export interface RawRecipe {
|
|
46
|
+
className: string;
|
|
47
|
+
filePath: string;
|
|
48
|
+
line?: number;
|
|
49
|
+
id: string | null;
|
|
50
|
+
label: string | null;
|
|
51
|
+
summary: string | null;
|
|
52
|
+
synonyms: string[];
|
|
53
|
+
models: RawRecipeModelRef[];
|
|
54
|
+
nav: Array<{
|
|
55
|
+
label: string;
|
|
56
|
+
model: RawRecipeModelRef;
|
|
57
|
+
line?: number;
|
|
58
|
+
}>;
|
|
59
|
+
requires: string[];
|
|
60
|
+
/** Options entries in authored order; the key is a model name. */
|
|
61
|
+
options: Array<{
|
|
62
|
+
key: string;
|
|
63
|
+
value: unknown;
|
|
64
|
+
line?: number;
|
|
65
|
+
}>;
|
|
66
|
+
/** `static help`: a path to a Markdown file, relative to the recipe's file. */
|
|
67
|
+
help: {
|
|
68
|
+
path: string;
|
|
69
|
+
line?: number;
|
|
70
|
+
} | null;
|
|
71
|
+
}
|
|
72
|
+
/** Cheap pre-filter: a file that never names the base cannot declare one. */
|
|
73
|
+
export declare function sourceMayDeclareRecipe(sourceText: string): boolean;
|
|
74
|
+
/**
|
|
75
|
+
* Find every `SmrtRecipe` subclass in a parsed module and read its statics.
|
|
76
|
+
* Read errors are returned, never swallowed.
|
|
77
|
+
*/
|
|
78
|
+
export declare function extractRecipes(input: {
|
|
79
|
+
body: unknown[];
|
|
80
|
+
sourceText: string;
|
|
81
|
+
filePath: string;
|
|
82
|
+
}): {
|
|
83
|
+
recipes: RawRecipe[];
|
|
84
|
+
errors: ScanError[];
|
|
85
|
+
};
|
|
86
|
+
/**
|
|
87
|
+
* Distinct `{field:...}` references in help Markdown, as written, sorted.
|
|
88
|
+
* Mirrors core's `extractFieldRefs` (`recipe-help.ts`): a reference inside an
|
|
89
|
+
* inline code span is code, not a reference. The scanner cannot import core, so
|
|
90
|
+
* core re-derives the list from the same Markdown at manifest generation and
|
|
91
|
+
* fails the build if the two ever disagree.
|
|
92
|
+
*/
|
|
93
|
+
export declare function deriveHelpFieldRefs(markdown: string): string[];
|
|
94
|
+
/**
|
|
95
|
+
* Resolve every raw recipe against the scanned classes and validate the set.
|
|
96
|
+
*
|
|
97
|
+
* Model names in the result are class names; qualification with the package
|
|
98
|
+
* name belongs to the manifest adapter, which knows it. Errors carry the
|
|
99
|
+
* recipe's file and line and fail the build like any other scan error.
|
|
100
|
+
*/
|
|
101
|
+
export declare function resolveRecipes(raws: RawRecipe[], classes: ResolvedClassDefinition[]): {
|
|
102
|
+
recipes: RecipeDefinition[];
|
|
103
|
+
errors: ScanError[];
|
|
104
|
+
};
|
|
105
|
+
//# sourceMappingURL=recipes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recipes.d.ts","sourceRoot":"","sources":["../src/recipes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAIH,OAAO,KAAK,EACV,gBAAgB,EAKjB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,KAAK,EAAE,uBAAuB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AA2BrE;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,kEAAkE;AAClE,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B,GAAG,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,iBAAiB,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvE,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,kEAAkE;IAClE,OAAO,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/D,+EAA+E;IAC/E,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CAC9C;AAED,6EAA6E;AAC7E,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAElE;AAgRD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE;IACpC,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG;IAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IAAC,MAAM,EAAE,SAAS,EAAE,CAAA;CAAE,CAqNhD;AAMD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAU9D;AAsRD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,SAAS,EAAE,EACjB,OAAO,EAAE,uBAAuB,EAAE,GACjC;IAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAAC,MAAM,EAAE,SAAS,EAAE,CAAA;CAAE,CA8KtD"}
|
package/dist/scanner.d.ts
CHANGED
|
@@ -52,6 +52,8 @@ export declare class OxcScanner {
|
|
|
52
52
|
private options;
|
|
53
53
|
private resolver;
|
|
54
54
|
private scanResults;
|
|
55
|
+
private recipeErrors;
|
|
56
|
+
private outsideRecipes;
|
|
55
57
|
/**
|
|
56
58
|
* Create a new `OxcScanner` with the given options.
|
|
57
59
|
*
|
|
@@ -213,6 +215,19 @@ export declare class OxcScanner {
|
|
|
213
215
|
* @param alreadyScanned - Absolute paths the class scan already parsed.
|
|
214
216
|
*/
|
|
215
217
|
private scanDeclarationsOutsideClassGlob;
|
|
218
|
+
/**
|
|
219
|
+
* Find `SmrtRecipe` declarations in files the CLASS scan did not cover.
|
|
220
|
+
*
|
|
221
|
+
* Same rule as {@link scanDeclarationsOutsideClassGlob}: the model glob is
|
|
222
|
+
* narrowed to where models live, a recipe need not live there, and a recipe
|
|
223
|
+
* that vanished with no diagnostic is the failure to prevent.
|
|
224
|
+
*/
|
|
225
|
+
private scanRecipesOutsideClassGlob;
|
|
226
|
+
/**
|
|
227
|
+
* Read selector-slot declarations (`selects`, #3599) from the package's
|
|
228
|
+
* `ui.ts` files, independently of the class-scan glob.
|
|
229
|
+
*/
|
|
230
|
+
private scanUiSelectors;
|
|
216
231
|
/**
|
|
217
232
|
* Search `.svelte` files for declarations the scanner can never read.
|
|
218
233
|
*
|
package/dist/scanner.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../src/scanner.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../src/scanner.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAkBH,OAAO,KAAK,EAEV,gBAAgB,EAEhB,iBAAiB,EACjB,uBAAuB,EAEvB,WAAW,EACZ,MAAM,YAAY,CAAC;AA+DpB;;;;;;;;;;;;;GAaG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,YAAY,CAAmB;IACvC,OAAO,CAAC,cAAc,CAAmB;IAEzC;;;;;;;;OAQG;gBACS,OAAO,GAAE,iBAAsB;IA0B3C;;;;;;;;;;;;;;;;;;OAkBG;IACG,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC;IA2ElC;;;;;;;;;;;;;;OAcG;IACH,OAAO,IAAI,uBAAuB,EAAE;IAyBpC;;;;;;;;;;;;;;;;;;;OAmBG;IACG,cAAc,IAAI,OAAO,CAAC;QAC9B,OAAO,EAAE,WAAW,CAAC;QACrB,QAAQ,EAAE,uBAAuB,EAAE,CAAC;KACrC,CAAC;IAOF;;;;;;;;;;;;OAYG;IACH,mBAAmB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAIrD;;;;;;;;;;;;;;;;OAgBG;IACH,eAAe,IAAI,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAwB3C;;;;;;;;;;;;;OAaG;IACH,QAAQ,IAAI;QACV,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;KACrB;IAUD;;;;;;;;;;;;;;;;;;;;;;OAsBG;YACW,aAAa;IAS3B;;;;;;;;;;;OAWG;YACW,gCAAgC;IAmC9C;;;;;;OAMG;YACW,2BAA2B;IA0BzC;;;OAGG;YACW,eAAe;IAwB7B;;;;;;;OAOG;YACW,sBAAsB;IAoCpC;;;;;;;OAOG;IACH,OAAO,CAAC,oBAAoB;IAM5B;;OAEG;YACW,mBAAmB;CAIlC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAM,GAC3C,OAAO,CAAC;IACT,OAAO,EAAE,WAAW,CAAC;IACrB,QAAQ,EAAE,uBAAuB,EAAE,CAAC;CACrC,CAAC,CAOD"}
|
package/dist/types.d.ts
CHANGED
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
* 2. Resolved types - After inheritance resolution (Phase 2)
|
|
7
7
|
* 3. Re-exports of smrt-core types for compatibility
|
|
8
8
|
*/
|
|
9
|
+
import type { RecipeDefinition } from '@happyvertical/smrt-types';
|
|
10
|
+
import type { RawRecipe } from './recipes.js';
|
|
9
11
|
/**
|
|
10
12
|
* Raw class definition extracted from OXC AST
|
|
11
13
|
* Contains only syntactic information, no semantic resolution
|
|
@@ -330,6 +332,11 @@ export interface FileScanResult {
|
|
|
330
332
|
* Omitted when the file declares none.
|
|
331
333
|
*/
|
|
332
334
|
agentSurface?: AgentSurface;
|
|
335
|
+
/**
|
|
336
|
+
* `SmrtRecipe` subclasses read from the file, models not yet resolved
|
|
337
|
+
* (#3590). Omitted when the file declares none.
|
|
338
|
+
*/
|
|
339
|
+
recipes?: RawRecipe[];
|
|
333
340
|
}
|
|
334
341
|
/**
|
|
335
342
|
* Scan error
|
|
@@ -369,6 +376,27 @@ export interface ScanResults {
|
|
|
369
376
|
* deterministic identity so emission never depends on file order (#2591).
|
|
370
377
|
*/
|
|
371
378
|
agentSurface: AgentSurface;
|
|
379
|
+
/**
|
|
380
|
+
* Declared recipes (#3590), sorted by id. Populated by `resolve()` once the
|
|
381
|
+
* models they reference can be resolved; model names are class names, which
|
|
382
|
+
* the manifest adapter qualifies. Empty after `scan()` alone.
|
|
383
|
+
*/
|
|
384
|
+
recipes: RecipeDefinition[];
|
|
385
|
+
/**
|
|
386
|
+
* UI slots that declare `selects: '<qualified model>'` (#3599), keyed by
|
|
387
|
+
* slot id, read statically from the package's `ui.ts` declarations.
|
|
388
|
+
*/
|
|
389
|
+
uiSelectors?: Record<string, UiSelectorDeclaration>;
|
|
390
|
+
}
|
|
391
|
+
/** A UI slot marked as the selector component for a model (#3599). */
|
|
392
|
+
export interface UiSelectorDeclaration {
|
|
393
|
+
slotId: string;
|
|
394
|
+
/** Qualified name of the model this component selects. */
|
|
395
|
+
selects: `${string}:${string}`;
|
|
396
|
+
label?: string;
|
|
397
|
+
description?: string;
|
|
398
|
+
/** Source file declaring the slot (project-relative once merged). */
|
|
399
|
+
filePath: string;
|
|
372
400
|
}
|
|
373
401
|
/**
|
|
374
402
|
* Configuration options for {@link OxcScanner}.
|
|
@@ -427,6 +455,11 @@ export interface OxcScannerOptions {
|
|
|
427
455
|
* {@link OxcScannerOptions.agentSurface} is enabled.
|
|
428
456
|
*/
|
|
429
457
|
agentSurfaceInclude?: string[];
|
|
458
|
+
/**
|
|
459
|
+
* Globs searched for selector-slot declarations (#3599), independent of the
|
|
460
|
+
* class `include`. Defaults to `src/**\/ui.ts`.
|
|
461
|
+
*/
|
|
462
|
+
uiSelectorInclude?: string[];
|
|
430
463
|
}
|
|
431
464
|
/**
|
|
432
465
|
* Describes a pre-loaded manifest from an installed SMRT package, used by
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Selector-slot discovery (#3599).
|
|
3
|
+
*
|
|
4
|
+
* A package declares its UI slots in a module-scope `Record<string,
|
|
5
|
+
* ModuleUISlot>` constant (conventionally `src/ui.ts`). A slot carrying
|
|
6
|
+
* `selects: '@scope/pkg:Model'` marks that component as the selector for the
|
|
7
|
+
* model. This reads those declarations statically, with no package code
|
|
8
|
+
* loaded, so they can ride the manifest for hosts that render generic forms.
|
|
9
|
+
*
|
|
10
|
+
* Only slots that declare `selects` are collected: the manifest records
|
|
11
|
+
* selector bindings, not the package's whole UI inventory.
|
|
12
|
+
*/
|
|
13
|
+
import type { ScanError, UiSelectorDeclaration } from './types.js';
|
|
14
|
+
/** Result of reading one file for selector slots. */
|
|
15
|
+
export interface UiSelectorFileResult {
|
|
16
|
+
selectors: UiSelectorDeclaration[];
|
|
17
|
+
errors: ScanError[];
|
|
18
|
+
}
|
|
19
|
+
/** Read one file for selector slots. Unreadable or unparsable files yield nothing. */
|
|
20
|
+
export declare function parseUiSelectorsFile(filePath: string): UiSelectorFileResult;
|
|
21
|
+
/**
|
|
22
|
+
* Merge per-file declarations into one deterministic, id-keyed record.
|
|
23
|
+
* A slot id declared twice, or one model claimed by two slots, is an error:
|
|
24
|
+
* a host must be able to resolve exactly one selector per model.
|
|
25
|
+
*/
|
|
26
|
+
export declare function mergeUiSelectors(files: UiSelectorFileResult[], relativize?: (filePath: string) => string): {
|
|
27
|
+
selectors: Record<string, UiSelectorDeclaration>;
|
|
28
|
+
errors: ScanError[];
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=ui-selectors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui-selectors.d.ts","sourceRoot":"","sources":["../src/ui-selectors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,OAAO,KAAK,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AASnE,qDAAqD;AACrD,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,qBAAqB,EAAE,CAAC;IACnC,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB;AA+DD,sFAAsF;AACtF,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,oBAAoB,CA+B3E;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,oBAAoB,EAAE,EAC7B,UAAU,GAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAiB,GAClD;IACD,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IACjD,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB,CA+BA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@happyvertical/smrt-scanner",
|
|
3
|
-
"version": "0.55.
|
|
3
|
+
"version": "0.55.3",
|
|
4
4
|
"description": "High-performance TypeScript scanner using OXC for SMRT manifest generation",
|
|
5
5
|
"author": "HappyVertical",
|
|
6
6
|
"type": "module",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
}
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@happyvertical/smrt-types": "0.55.
|
|
37
|
+
"@happyvertical/smrt-types": "0.55.3",
|
|
38
38
|
"fast-glob": "3.3.3",
|
|
39
39
|
"minimatch": "10.2.6",
|
|
40
40
|
"oxc-parser": "^0.150.0",
|