@happyvertical/smrt-types 0.55.6 → 0.55.12
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 +1 -0
- package/dist/cookbook.d.ts +120 -0
- package/dist/cookbook.d.ts.map +1 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/knowledge.d.ts +12 -1
- package/dist/knowledge.d.ts.map +1 -1
- package/dist/recipe-widget.d.ts +82 -0
- package/dist/recipe-widget.d.ts.map +1 -0
- package/dist/recipe.d.ts +167 -0
- package/dist/recipe.d.ts.map +1 -1
- package/package.json +1 -1
package/AGENTS.md
CHANGED
|
@@ -12,6 +12,7 @@ Shared TypeScript type definitions. Prevents circular dependencies between packa
|
|
|
12
12
|
| `identity.ts` | `User`, `Tenant`, `Role`, `Membership`, `SmrtEntityFields` — cross-package identity data contracts (runtime classes live in smrt-users, which `implements` these) |
|
|
13
13
|
| `knowledge.ts` | Additive schema-version-1 domain knowledge contracts shared by core generation and development tooling |
|
|
14
14
|
| `data-query.ts` | Serializable bounded query request/result envelope, allowlisted schema, filters, paging, totals, freshness, and facets |
|
|
15
|
+
| `cookbook.ts` | `Cookbook` and parts — cookbook v1 document contract, type-only (parser in smrt-core `./cookbook`, see core `agents/cookbook.md`) |
|
|
15
16
|
| `capability.ts` | `CapabilityEffect`, `CapabilityClassification`, `CapabilityDeclaration` — the one classification contract (effect/idempotent/openWorld + fail-closed default) shared by generated model tools, view intents, and playbook steps (#2587) |
|
|
16
17
|
|
|
17
18
|
## Rules
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cookbook v1: the portable document that says what an app is made of
|
|
3
|
+
* (recipes, features, field policies, surface exposure, shell layout, theme,
|
|
4
|
+
* overview pages). Type-only; the parser/validator is
|
|
5
|
+
* `@happyvertical/smrt-core/cookbook` and the JSON Schema ships as
|
|
6
|
+
* `@happyvertical/smrt-core/cookbook/v1.schema.json`. The `$schema`
|
|
7
|
+
* URL constants live there too (this package holds no runtime code).
|
|
8
|
+
*
|
|
9
|
+
* Layout, theme and overview values are typed structurally so this package
|
|
10
|
+
* never depends on smrt-svelte or smrt-ui. smrt-svelte's `ShellLayout` and
|
|
11
|
+
* `OverviewOverride` are identical to {@link CookbookLayout} and
|
|
12
|
+
* {@link CookbookOverviewOverride} (a type test in smrt-svelte enforces it);
|
|
13
|
+
* those packages own deep validation.
|
|
14
|
+
*
|
|
15
|
+
* Versioning: new optional fields are added within `version: 1`; readers
|
|
16
|
+
* ignore keys they do not know. A breaking change means `version: 2`.
|
|
17
|
+
*/
|
|
18
|
+
import type { RecipeShellSlot } from './recipe.js';
|
|
19
|
+
export type CookbookExposureSurface = 'api' | 'mcp' | 'cli';
|
|
20
|
+
export type CookbookFieldVisibility = 'basic' | 'advanced' | 'hidden';
|
|
21
|
+
/** One app-scope smrt-fields policy row. Only changed keys are present. */
|
|
22
|
+
export interface CookbookPolicyRow {
|
|
23
|
+
/** Qualified class name, `@scope/pkg:Class`. */
|
|
24
|
+
objectRef: string;
|
|
25
|
+
fieldName: string;
|
|
26
|
+
scopeType: 'app';
|
|
27
|
+
/** Encoded channel: JSON text as the column stores it (`'"Net 30"'`). */
|
|
28
|
+
defaultValue?: string | null;
|
|
29
|
+
visibility?: CookbookFieldVisibility | null;
|
|
30
|
+
help?: string | null;
|
|
31
|
+
label?: string | null;
|
|
32
|
+
displayOrder?: number | null;
|
|
33
|
+
locked?: boolean | null;
|
|
34
|
+
}
|
|
35
|
+
/** Structural copy of smrt-svelte's `ShellLayoutSection`. */
|
|
36
|
+
export interface CookbookLayoutSection {
|
|
37
|
+
label?: string;
|
|
38
|
+
showTitle?: boolean;
|
|
39
|
+
icon?: string;
|
|
40
|
+
}
|
|
41
|
+
/** Structural copy of smrt-svelte's `ShellLayoutItem`. */
|
|
42
|
+
export interface CookbookLayoutItem {
|
|
43
|
+
label?: string;
|
|
44
|
+
description?: string;
|
|
45
|
+
}
|
|
46
|
+
/** Structural copy of smrt-svelte's `ShellLayoutPanel`. */
|
|
47
|
+
export interface CookbookLayoutPanel {
|
|
48
|
+
visible?: boolean;
|
|
49
|
+
initial?: 'collapsed' | 'expanded';
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Structural copy of smrt-svelte's `ShellLayout` (version 1). A type-level test
|
|
53
|
+
* in smrt-svelte (`cookbook/__tests__/contract-types.test.ts`) requires the two
|
|
54
|
+
* to be identical, so a field added on either side fails typecheck.
|
|
55
|
+
*/
|
|
56
|
+
export interface CookbookLayout {
|
|
57
|
+
version: 1;
|
|
58
|
+
sectionOrder?: string[];
|
|
59
|
+
itemOrder?: Record<string, string[]>;
|
|
60
|
+
hidden?: string[];
|
|
61
|
+
moved?: Record<string, string>;
|
|
62
|
+
sections?: Record<string, CookbookLayoutSection>;
|
|
63
|
+
items?: Record<string, CookbookLayoutItem>;
|
|
64
|
+
customSections?: Array<{
|
|
65
|
+
id: string;
|
|
66
|
+
label: string;
|
|
67
|
+
}>;
|
|
68
|
+
panels?: Partial<Record<'top' | 'left' | 'right' | 'bottom', CookbookLayoutPanel>>;
|
|
69
|
+
/** Shell item id to the slot it was moved to. */
|
|
70
|
+
placements?: Record<string, RecipeShellSlot>;
|
|
71
|
+
}
|
|
72
|
+
/** A widget on an overview page (structural copy of smrt-svelte's `OverviewWidget`). */
|
|
73
|
+
export interface CookbookOverviewWidget {
|
|
74
|
+
id: string;
|
|
75
|
+
type: string;
|
|
76
|
+
span: number;
|
|
77
|
+
options: Record<string, string | number | boolean | null>;
|
|
78
|
+
version?: number;
|
|
79
|
+
}
|
|
80
|
+
/** Structural copy of smrt-svelte's `OverviewOverride` (version 1), checked the same way. */
|
|
81
|
+
export interface CookbookOverviewOverride {
|
|
82
|
+
version: 1;
|
|
83
|
+
order?: string[];
|
|
84
|
+
removed?: string[];
|
|
85
|
+
added?: CookbookOverviewWidget[];
|
|
86
|
+
changed?: Record<string, {
|
|
87
|
+
span?: number;
|
|
88
|
+
options?: Record<string, string | number | boolean | null>;
|
|
89
|
+
version?: number;
|
|
90
|
+
}>;
|
|
91
|
+
}
|
|
92
|
+
export interface CookbookTheme {
|
|
93
|
+
/** A built-in smrt-ui preset name. */
|
|
94
|
+
preset?: string;
|
|
95
|
+
colorScheme?: 'light' | 'dark' | 'system';
|
|
96
|
+
/** A brand colour theme; wins over `preset` while present. */
|
|
97
|
+
custom?: {
|
|
98
|
+
primary: string;
|
|
99
|
+
fontFamily?: string;
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
export interface Cookbook {
|
|
103
|
+
$schema: string;
|
|
104
|
+
version: 1;
|
|
105
|
+
/** Optional human name (e.g. for the project `apply` creates). */
|
|
106
|
+
name?: string;
|
|
107
|
+
description?: string;
|
|
108
|
+
/** Recipe ids; requirements already included, sorted. */
|
|
109
|
+
recipes: string[];
|
|
110
|
+
/** Extra models (qualified names) no recipe covers. Absent reads as `[]`. */
|
|
111
|
+
features: string[];
|
|
112
|
+
policies: CookbookPolicyRow[];
|
|
113
|
+
/** Surfaces switched off per qualified model name. */
|
|
114
|
+
exposure?: Record<string, CookbookExposureSurface[]>;
|
|
115
|
+
layout?: CookbookLayout;
|
|
116
|
+
theme?: CookbookTheme;
|
|
117
|
+
/** Customised overview pages keyed by overview id. */
|
|
118
|
+
overviews?: Record<string, CookbookOverviewOverride>;
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=cookbook.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cookbook.d.ts","sourceRoot":"","sources":["../src/cookbook.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -6,12 +6,14 @@
|
|
|
6
6
|
*/
|
|
7
7
|
export type { AiTokenUsage, AiUsageGroupBy, AiUsageHandler, AiUsageListOptions, AiUsageSnapshot, AiUsageStats, AiUsageSummaryOptions, SmrtAiUsageEvent, SmrtAiUsageRecord, } from './ai-usage.js';
|
|
8
8
|
export type { CapabilityClassification, CapabilityDeclaration, CapabilityEffect, } from './capability.js';
|
|
9
|
+
export type { Cookbook, CookbookExposureSurface, CookbookFieldVisibility, CookbookLayout, CookbookLayoutItem, CookbookLayoutPanel, CookbookLayoutSection, CookbookOverviewOverride, CookbookOverviewWidget, CookbookPolicyRow, CookbookTheme, } from './cookbook.js';
|
|
9
10
|
export type { DataQueryCondition, DataQueryConsistency, DataQueryConsistencyMode, DataQueryCursorPage, DataQueryFacetRequest, DataQueryFacetResult, DataQueryFacetValue, DataQueryFieldDescriptor, DataQueryFieldId, DataQueryFilter, DataQueryFilterOperator, DataQueryFreshness, DataQueryOffsetPage, DataQueryPage, DataQueryRequest, DataQueryResult, DataQueryRow, DataQueryScalar, DataQuerySchema, DataQuerySort, DataQuerySortDirection, DataQueryTotal, } from './data-query.js';
|
|
10
11
|
export type { DataSurfaceActionDescriptor, DataSurfaceActionRequest, DataSurfaceActionResult, DataSurfaceActionRowOutcome, DataSurfaceActionWireRequest, DataSurfaceColumnCapability, DataSurfaceColumnDescriptor, DataSurfaceColumnOperators, DataSurfaceColumnRole, DataSurfaceColumnVisibility, DataSurfaceCommandExecution, DataSurfaceCommandFailureReason, DataSurfaceCommandResult, DataSurfaceDescriptor, DataSurfaceIdentity, DataSurfaceJsonObject, DataSurfaceJsonPrimitive, DataSurfaceJsonValue, DataSurfaceKind, DataSurfaceLimits, DataSurfaceQueryCapabilities, DataSurfaceQueryMode, DataSurfaceQueryRequest, DataSurfaceQueryResult, DataSurfaceRegistration, DataSurfaceRegistry, DataSurfaceRegistryEvent, DataSurfaceRowId, DataSurfaceSelectionReference, DataSurfaceSelectionScope, DataSurfaceSensitivity, DataSurfaceSnapshot, DataSurfaceSnapshotState, DataSurfaceSubject, DataSurfaceValidationReason, DataSurfaceValidationResult, DataSurfaceVisibleCommand, DataSurfaceVisibleControl, } from './data-surface.js';
|
|
11
12
|
export type { Membership, Role, SmrtEntityFields, Tenant, User, } from './identity.js';
|
|
12
13
|
export type { DomainKnowledgeAgentSurface, DomainKnowledgeAgentSurfaceDiagnostic, DomainKnowledgeConfig, DomainKnowledgeField, DomainKnowledgeFieldConstraints, DomainKnowledgeFreshnessResult, DomainKnowledgeManifest, DomainKnowledgeMethodSignature, DomainKnowledgeModuleDoc, DomainKnowledgeObject, DomainKnowledgePlaybook, DomainKnowledgePlaybookStep, DomainKnowledgeSurface, DomainKnowledgeSurfaceKind, DomainKnowledgeTenant, DomainKnowledgeViewIntent, DomainKnowledgeWithheldSurface, } from './knowledge.js';
|
|
13
14
|
export type { ModuleComponentType, ModuleUIBaseProps, ModuleUIRegistryInterface, ModuleUISlot, SmrtModuleMeta, } from './module.js';
|
|
14
|
-
export type { RecipeDefinition, RecipeExposureNarrowing, RecipeFieldOptions, RecipeFieldVisibility, RecipeHelp, RecipeModelOptions, RecipeNavEntry, } from './recipe.js';
|
|
15
|
+
export type { PackageBrowserCapability, RecipeDefinition, RecipeDemo, RecipeDemoMode, RecipeDemoSeed, RecipeExportRef, RecipeExposureNarrowing, RecipeFieldOptions, RecipeFieldVisibility, RecipeGroup, RecipeHelp, RecipeModelOptions, RecipeNavEntry, RecipeProvider, RecipeRuntime, RecipeSection, RecipeShellSlot, RecipeSurface, } from './recipe.js';
|
|
16
|
+
export type { RecipeWidgetData, RecipeWidgetOption, RecipeWidgetOptionChoice, RecipeWidgetOptionType, RecipeWidgetSurface, } from './recipe-widget.js';
|
|
15
17
|
export type { SmrtRouteDefinition, SmrtRouteLoadKind, SmrtRouteModule, SmrtRouteNavigationItem, SmrtRouteNavigationMeta, } from './routes.js';
|
|
16
18
|
export type { Signal, SignalAdapter, SignalType } from './signals.js';
|
|
17
19
|
export { AccessRequestStatus, MembershipStatus, OverrideEffect, SessionStatus, TenantPermissionEffect, TenantStatus, UserStatus, } from './user.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,YAAY,EACV,YAAY,EACZ,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,qBAAqB,EACrB,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,eAAe,CAAC;AAGvB,YAAY,EACV,wBAAwB,EACxB,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/knowledge.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { CapabilityClassification } from './capability.js';
|
|
2
|
-
import type { RecipeDefinition } from './recipe.js';
|
|
2
|
+
import type { PackageBrowserCapability, RecipeDefinition } from './recipe.js';
|
|
3
3
|
/** Kind of generated surface a knowledge entry describes (REST/CLI/MCP/AI). */
|
|
4
4
|
export type DomainKnowledgeSurfaceKind = 'api' | 'cli' | 'mcp' | 'ai';
|
|
5
5
|
/** A single generated surface (one api/cli/mcp/ai operation) exposed by an object. */
|
|
@@ -102,6 +102,11 @@ export interface DomainKnowledgeTenant {
|
|
|
102
102
|
export interface DomainKnowledgeObject {
|
|
103
103
|
name: string;
|
|
104
104
|
qualifiedName?: string;
|
|
105
|
+
/**
|
|
106
|
+
* User-facing model description: `@smrt({ description })`, else the class
|
|
107
|
+
* JSDoc summary (<= 200 chars). Omitted when the model has neither.
|
|
108
|
+
*/
|
|
109
|
+
description?: string;
|
|
105
110
|
/**
|
|
106
111
|
* Deprecated qualified names this object still resolves from, declared via
|
|
107
112
|
* `@smrt({ previousQualifiedNames })` after a package move or rename
|
|
@@ -282,6 +287,12 @@ export interface DomainKnowledgeManifest {
|
|
|
282
287
|
* the package declares none, so the field is additive to schema version 1.
|
|
283
288
|
*/
|
|
284
289
|
recipes?: RecipeDefinition[];
|
|
290
|
+
/**
|
|
291
|
+
* Whether the package's root entry builds for a browser (#3709), derived
|
|
292
|
+
* from the bundle-gate ratchet. Omitted for packages the gate does not
|
|
293
|
+
* measure, so the field is additive to schema version 1.
|
|
294
|
+
*/
|
|
295
|
+
browser?: PackageBrowserCapability;
|
|
285
296
|
}
|
|
286
297
|
/** Result of a domain-knowledge freshness check (stale references, error/warning counts). */
|
|
287
298
|
export interface DomainKnowledgeFreshnessResult {
|
package/dist/knowledge.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knowledge.d.ts","sourceRoot":"","sources":["../src/knowledge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"knowledge.d.ts","sourceRoot":"","sources":["../src/knowledge.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Recipe `widget` surface types (#3727, phase 2).
|
|
3
|
+
*
|
|
4
|
+
* A package contributes an overview widget by declaring a `widget` surface on a
|
|
5
|
+
* recipe. The shapes are JSON so they travel in `manifest.json` and
|
|
6
|
+
* `smrt-knowledge.json`; smrt-svelte's `registerRecipeWidgets` turns them into
|
|
7
|
+
* widget-registry registrations, resolving the export references itself. The
|
|
8
|
+
* option vocabulary is a literal copy of smrt-svelte's overview option schema
|
|
9
|
+
* (types cannot depend on it); a smrt-svelte test keeps the two in step.
|
|
10
|
+
*/
|
|
11
|
+
import type { RecipeExportRef } from './recipe.js';
|
|
12
|
+
/** The option field types an overview widget supports. No free-form query type exists. */
|
|
13
|
+
export type RecipeWidgetOptionType = 'text' | 'markdown' | 'identifier' | 'model' | 'integer' | 'number' | 'boolean' | 'enum';
|
|
14
|
+
/** One choice of a closed `enum` option. */
|
|
15
|
+
export interface RecipeWidgetOptionChoice {
|
|
16
|
+
value: string;
|
|
17
|
+
/** Label text or an i18n key. */
|
|
18
|
+
label: string;
|
|
19
|
+
}
|
|
20
|
+
/** One option of a widget: plain JSON, mirrors smrt-svelte's `WidgetOptionField`. */
|
|
21
|
+
export interface RecipeWidgetOption {
|
|
22
|
+
/** Camel-case key, `[A-Za-z][A-Za-z0-9]{0,31}`, unique within the widget. */
|
|
23
|
+
key: string;
|
|
24
|
+
type: RecipeWidgetOptionType;
|
|
25
|
+
/** Label text or an i18n key. */
|
|
26
|
+
label: string;
|
|
27
|
+
/** Help text or an i18n key. */
|
|
28
|
+
help?: string;
|
|
29
|
+
required?: boolean;
|
|
30
|
+
/** A JSON primitive that passes the field's own type. */
|
|
31
|
+
default?: string | number | boolean;
|
|
32
|
+
/** `integer` and `number` bounds. */
|
|
33
|
+
min?: number;
|
|
34
|
+
max?: number;
|
|
35
|
+
/** `text`, `markdown`: maximum length. */
|
|
36
|
+
maxLength?: number;
|
|
37
|
+
/** `enum`: the closed set of values (required, non-empty, distinct). */
|
|
38
|
+
choices?: readonly RecipeWidgetOptionChoice[];
|
|
39
|
+
}
|
|
40
|
+
/** What a widget reads: its server loader and the models it queries. */
|
|
41
|
+
export interface RecipeWidgetData {
|
|
42
|
+
/**
|
|
43
|
+
* Export of the widget's server `load(options, ctx)` function. The host runs
|
|
44
|
+
* it inside the page load with the user's permissions; absent for a widget
|
|
45
|
+
* that renders from its options alone.
|
|
46
|
+
*/
|
|
47
|
+
load?: RecipeExportRef;
|
|
48
|
+
/** Qualified class names (`@scope/pkg:Class`) the widget reads. */
|
|
49
|
+
models?: readonly string[];
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* A widget the recipe contributes to customizable overviews. `export` names the
|
|
53
|
+
* Svelte component (`'<module specifier>#<ExportName>'`), never imported at scan
|
|
54
|
+
* time.
|
|
55
|
+
*/
|
|
56
|
+
export interface RecipeWidgetSurface {
|
|
57
|
+
kind: 'widget';
|
|
58
|
+
/** Widget type id, unique per recipe: lowercase kebab, `[a-z][a-z0-9-]{0,31}`. */
|
|
59
|
+
type: string;
|
|
60
|
+
export: RecipeExportRef;
|
|
61
|
+
/** Title text or an i18n key. */
|
|
62
|
+
label: string;
|
|
63
|
+
/** Short description or an i18n key, shown in the add list. */
|
|
64
|
+
description?: string;
|
|
65
|
+
/** A shell icon name drawn in the add list. */
|
|
66
|
+
icon?: string;
|
|
67
|
+
/** Option-schema version, a positive integer; omitted means 1. */
|
|
68
|
+
version?: number;
|
|
69
|
+
/** Export of the `migrate(options, fromVersion)` function; needs `version` above 1. */
|
|
70
|
+
migrate?: RecipeExportRef;
|
|
71
|
+
/** The widget's options; omitted means none. */
|
|
72
|
+
options?: readonly RecipeWidgetOption[];
|
|
73
|
+
/** Data needs; omitted for a widget that renders from its options alone. */
|
|
74
|
+
data?: RecipeWidgetData;
|
|
75
|
+
/** Overview ids the widget may appear in; omitted means any. */
|
|
76
|
+
allowedIn?: readonly string[];
|
|
77
|
+
/** Column spans, 1 to 4 (`minSpan <= defaultSpan <= maxSpan`). */
|
|
78
|
+
defaultSpan?: number;
|
|
79
|
+
minSpan?: number;
|
|
80
|
+
maxSpan?: number;
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=recipe-widget.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recipe-widget.d.ts","sourceRoot":"","sources":["../src/recipe-widget.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,0FAA0F;AAC1F,MAAM,MAAM,sBAAsB,GAC9B,MAAM,GACN,UAAU,GACV,YAAY,GACZ,OAAO,GACP,SAAS,GACT,QAAQ,GACR,SAAS,GACT,MAAM,CAAC;AAEX,4CAA4C;AAC5C,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,iCAAiC;IACjC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qFAAqF;AACrF,MAAM,WAAW,kBAAkB;IACjC,6EAA6E;IAC7E,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,sBAAsB,CAAC;IAC7B,iCAAiC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,gCAAgC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,yDAAyD;IACzD,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IACpC,qCAAqC;IACrC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wEAAwE;IACxE,OAAO,CAAC,EAAE,SAAS,wBAAwB,EAAE,CAAC;CAC/C;AAED,wEAAwE;AACxE,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,mEAAmE;IACnE,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5B;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,QAAQ,CAAC;IACf,kFAAkF;IAClF,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,eAAe,CAAC;IACxB,iCAAiC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+CAA+C;IAC/C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kEAAkE;IAClE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uFAAuF;IACvF,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,gDAAgD;IAChD,OAAO,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACxC,4EAA4E;IAC5E,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,gEAAgE;IAChE,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,kEAAkE;IAClE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB"}
|
package/dist/recipe.d.ts
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
* under the top-level `recipes` key of `manifest.json` and
|
|
7
7
|
* `smrt-knowledge.json`; `SmrtRecipe` in smrt-core is the authoring base class.
|
|
8
8
|
*/
|
|
9
|
+
import type { RecipeWidgetSurface } from './recipe-widget.js';
|
|
9
10
|
/** Same visibility vocabulary as the smrt-fields policy rail. */
|
|
10
11
|
export type RecipeFieldVisibility = 'basic' | 'advanced' | 'hidden';
|
|
11
12
|
/**
|
|
@@ -24,6 +25,8 @@ export interface RecipeFieldOptions {
|
|
|
24
25
|
order?: number;
|
|
25
26
|
visibility?: RecipeFieldVisibility;
|
|
26
27
|
locked?: boolean;
|
|
28
|
+
/** The form refuses to save without a value, whatever the model says. */
|
|
29
|
+
required?: boolean;
|
|
27
30
|
}
|
|
28
31
|
/**
|
|
29
32
|
* Exposure narrowing for one transport. Narrow only: `false` withdraws the
|
|
@@ -46,6 +49,54 @@ export interface RecipeModelOptions {
|
|
|
46
49
|
export interface RecipeNavEntry {
|
|
47
50
|
label: string;
|
|
48
51
|
model: string;
|
|
52
|
+
/** A shell icon name (`users`, `calendar`...) drawn on the entry's row. */
|
|
53
|
+
icon?: string;
|
|
54
|
+
/** One friendly line for a business owner, shown on the section card. */
|
|
55
|
+
description?: string;
|
|
56
|
+
/**
|
|
57
|
+
* Fixed key making the entry's layout id `item:<pkg>:<Model>:<key>`. Needed
|
|
58
|
+
* for a second entry over the same model, and for a `filter`. Never derived
|
|
59
|
+
* from the label.
|
|
60
|
+
*/
|
|
61
|
+
key?: string;
|
|
62
|
+
/**
|
|
63
|
+
* What "New" creates when the label is not a countable noun ("Stock levels"
|
|
64
|
+
* -> "stock entry"). Without it a host singularises the label.
|
|
65
|
+
*/
|
|
66
|
+
noun?: string;
|
|
67
|
+
/**
|
|
68
|
+
* Narrows the entry to rows whose `field` equals `value` (an Ingredients
|
|
69
|
+
* entry over Products: `productType` = `material`). Needs a `key`. New rows
|
|
70
|
+
* made from the view carry the value.
|
|
71
|
+
*/
|
|
72
|
+
filter?: {
|
|
73
|
+
field: string;
|
|
74
|
+
value: string;
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Recipes with the same `group.id` share one card in a host such as an app
|
|
79
|
+
* shell: the card is on while any of its recipes is, each recipe being a
|
|
80
|
+
* sub-switch in declaration order. `label` and `summary` are the card's, and
|
|
81
|
+
* the first declaration of an id supplies them.
|
|
82
|
+
*/
|
|
83
|
+
export interface RecipeGroup {
|
|
84
|
+
id: string;
|
|
85
|
+
label: string;
|
|
86
|
+
summary?: string;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* The navigation section a recipe suggests its `nav` entries sit under. The
|
|
90
|
+
* host owns sections and the user may rename or reorder them, so `id` must be
|
|
91
|
+
* stable. Recipes naming the same `id` share a section.
|
|
92
|
+
*/
|
|
93
|
+
export interface RecipeSection {
|
|
94
|
+
id: string;
|
|
95
|
+
label: string;
|
|
96
|
+
/** A shell icon name (`shoppingBag`, `receipt`...). */
|
|
97
|
+
icon?: string;
|
|
98
|
+
/** One line for the section's page, under its title. */
|
|
99
|
+
description?: string;
|
|
49
100
|
}
|
|
50
101
|
/**
|
|
51
102
|
* User-facing help for a recipe (#3591), embedded so a static host needs no
|
|
@@ -58,6 +109,98 @@ export interface RecipeHelp {
|
|
|
58
109
|
markdown: string;
|
|
59
110
|
fieldRefs: string[];
|
|
60
111
|
}
|
|
112
|
+
/**
|
|
113
|
+
* Shell slots a `shell-widget` surface may name. A literal copy of smrt-svelte's
|
|
114
|
+
* `ShellSlot` (types cannot depend on it); smrt-svelte asserts the two unions
|
|
115
|
+
* are identical at type level, and the scanner owns the runtime list and checks
|
|
116
|
+
* it against the smrt-svelte source.
|
|
117
|
+
*/
|
|
118
|
+
export type RecipeShellSlot = 'header.start' | 'header.center' | 'header.end' | 'footer.start' | 'footer.center' | 'footer.end' | 'leftSidebar.header' | 'leftSidebar.footer' | 'rightSidebar.header' | 'rightSidebar.footer';
|
|
119
|
+
/**
|
|
120
|
+
* A component or fixture export as `'<module specifier>#<ExportName>'`, e.g.
|
|
121
|
+
* `@happyvertical/smrt-chat/svelte#AssistantDockToggle`. Never imported at
|
|
122
|
+
* scan time; the host resolves it.
|
|
123
|
+
*/
|
|
124
|
+
export type RecipeExportRef = `${string}#${string}`;
|
|
125
|
+
/** A non-model piece of UI a recipe contributes (#3708). */
|
|
126
|
+
export type RecipeSurface = {
|
|
127
|
+
kind: 'shell-widget';
|
|
128
|
+
slot: RecipeShellSlot;
|
|
129
|
+
export: RecipeExportRef;
|
|
130
|
+
label: string;
|
|
131
|
+
icon?: string;
|
|
132
|
+
} | {
|
|
133
|
+
kind: 'route';
|
|
134
|
+
path: string;
|
|
135
|
+
export: RecipeExportRef;
|
|
136
|
+
label: string;
|
|
137
|
+
} | {
|
|
138
|
+
kind: 'settings-panel';
|
|
139
|
+
export: RecipeExportRef;
|
|
140
|
+
label: string;
|
|
141
|
+
} | {
|
|
142
|
+
kind: 'playground';
|
|
143
|
+
export: RecipeExportRef;
|
|
144
|
+
label?: string;
|
|
145
|
+
} | RecipeWidgetSurface;
|
|
146
|
+
/** A provider the recipe needs or can use (email, oauth, storage, llm...). */
|
|
147
|
+
export interface RecipeProvider {
|
|
148
|
+
/** Slug, unique within the recipe. */
|
|
149
|
+
id: string;
|
|
150
|
+
/** Open slug: `email`, `oauth`, `storage`, `llm`... */
|
|
151
|
+
kind: string;
|
|
152
|
+
/** Supported implementations (`imap`, `smtp`; `google`, `github`). */
|
|
153
|
+
options: readonly string[];
|
|
154
|
+
required: boolean;
|
|
155
|
+
/** Names (never values) of the secrets the provider needs, `UPPER_SNAKE`. */
|
|
156
|
+
secrets?: readonly string[];
|
|
157
|
+
/**
|
|
158
|
+
* The `options` that run inside a browser with no server and none of the
|
|
159
|
+
* `secrets` (an in-browser model, local storage). A provider with one is
|
|
160
|
+
* satisfied in a browser demo (#3709). Entries of `options`, non-empty and
|
|
161
|
+
* distinct; omitted when no option runs in a browser.
|
|
162
|
+
*/
|
|
163
|
+
browserOptions?: readonly string[];
|
|
164
|
+
}
|
|
165
|
+
/** Where a recipe's runtime pieces can run. Omitted means `both`. */
|
|
166
|
+
export type RecipeRuntime = 'browser' | 'server' | 'both';
|
|
167
|
+
/** Demo fixture data: a fixture export, or small inline JSON. */
|
|
168
|
+
export type RecipeDemoSeed = {
|
|
169
|
+
export: RecipeExportRef;
|
|
170
|
+
} | {
|
|
171
|
+
data: unknown;
|
|
172
|
+
};
|
|
173
|
+
/**
|
|
174
|
+
* How far a feature runs in a browser-only demo (#3709):
|
|
175
|
+
* - `live`: the real browser data layer (PGlite), nothing faked.
|
|
176
|
+
* - `mock`: runs in the browser, but a provider (sending mail, OAuth) is faked.
|
|
177
|
+
* - `sample`: runs in the browser on fixture data (`demoSeed`) only, because
|
|
178
|
+
* what it needs from outside cannot be reached from a browser.
|
|
179
|
+
* - `server`: needs a server; a browser-only host cannot offer it.
|
|
180
|
+
*/
|
|
181
|
+
export type RecipeDemoMode = 'live' | 'mock' | 'sample' | 'server';
|
|
182
|
+
/** Derived demo classification of one recipe (#3709). Never authored. */
|
|
183
|
+
export interface RecipeDemo {
|
|
184
|
+
mode: RecipeDemoMode;
|
|
185
|
+
/** Why, one plain sentence each, in the order the rules fired. */
|
|
186
|
+
reasons: string[];
|
|
187
|
+
/** Ids of the recipe's providers a demo fakes; omitted when none. */
|
|
188
|
+
mocked?: string[];
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Whether a package's root entry builds for a browser, derived from the
|
|
192
|
+
* bundle-gate ratchet (#3621) and emitted into the manifest and knowledge
|
|
193
|
+
* artifact (#3709).
|
|
194
|
+
*/
|
|
195
|
+
export interface PackageBrowserCapability {
|
|
196
|
+
status: 'browser-safe' | 'server-only';
|
|
197
|
+
/** Tracking issues (`#3624`) that make it server-only; omitted when safe. */
|
|
198
|
+
issues?: string[];
|
|
199
|
+
/** What in the package itself blocks the browser; omitted when it is only inherited. */
|
|
200
|
+
reason?: string;
|
|
201
|
+
/** Workspace packages this one inherits `server-only` from; omitted when none. */
|
|
202
|
+
via?: string[];
|
|
203
|
+
}
|
|
61
204
|
/** A recipe as emitted into the manifest and the knowledge artifact. */
|
|
62
205
|
export interface RecipeDefinition {
|
|
63
206
|
/** Stable, dotted, lowercase id, e.g. `commerce.sales`. */
|
|
@@ -72,9 +215,33 @@ export interface RecipeDefinition {
|
|
|
72
215
|
nav: RecipeNavEntry[];
|
|
73
216
|
/** Ids of recipes this one needs; they may live in other packages. */
|
|
74
217
|
requires: string[];
|
|
218
|
+
/**
|
|
219
|
+
* Alternatives: at least one id of each inner list must be on. Adding the
|
|
220
|
+
* recipe with none on adds the first. Omitted when none.
|
|
221
|
+
*/
|
|
222
|
+
requiresAny?: string[][];
|
|
223
|
+
/** Shared card in a host; omitted when the recipe stands alone. */
|
|
224
|
+
group?: RecipeGroup;
|
|
225
|
+
/** Suggested navigation section; omitted when the host chooses. */
|
|
226
|
+
section?: RecipeSection;
|
|
75
227
|
/** Curation hints keyed by qualified model name; omitted when none. */
|
|
76
228
|
options?: Record<string, RecipeModelOptions>;
|
|
77
229
|
/** User-facing help read from the recipe's `static help` file; omitted when none. */
|
|
78
230
|
help?: RecipeHelp;
|
|
231
|
+
/** Non-model surfaces (#3708); omitted when none. */
|
|
232
|
+
surfaces?: RecipeSurface[];
|
|
233
|
+
/** Providers and secrets (#3708); omitted when none. */
|
|
234
|
+
providers?: RecipeProvider[];
|
|
235
|
+
/** Omitted means `both`. */
|
|
236
|
+
runtime?: RecipeRuntime;
|
|
237
|
+
/** Demo fixture reference or inline data; omitted when none. */
|
|
238
|
+
demoSeed?: RecipeDemoSeed;
|
|
239
|
+
/**
|
|
240
|
+
* Derived browser-demo classification (#3709), from the package's
|
|
241
|
+
* bundle-gate capability and the recipe's own `runtime`, `providers` and
|
|
242
|
+
* `demoSeed`. Omitted when nothing is known about the package and the recipe
|
|
243
|
+
* declares none of those.
|
|
244
|
+
*/
|
|
245
|
+
demo?: RecipeDemo;
|
|
79
246
|
}
|
|
80
247
|
//# sourceMappingURL=recipe.d.ts.map
|
package/dist/recipe.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recipe.d.ts","sourceRoot":"","sources":["../src/recipe.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,iEAAiE;AACjE,MAAM,MAAM,qBAAqB,GAAG,OAAO,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEpE;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAkB;IACjC,gDAAgD;IAChD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,qBAAqB,CAAC;IACnC,MAAM,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"recipe.d.ts","sourceRoot":"","sources":["../src/recipe.ts"],"names":[],"mappings":"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"}
|