@happyvertical/smrt-core 0.55.22 → 0.55.24

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 (40) hide show
  1. package/agents/build-knowledge.md +11 -0
  2. package/agents/run-once.md +7 -0
  3. package/agents/schema-paths.md +10 -0
  4. package/dist/browser.js +2 -2
  5. package/dist/class.d.ts +1 -0
  6. package/dist/class.d.ts.map +1 -1
  7. package/dist/class.js +20 -8
  8. package/dist/class.js.map +1 -1
  9. package/dist/decorators/index.d.ts +7 -0
  10. package/dist/decorators/index.d.ts.map +1 -1
  11. package/dist/decorators/index.js.map +1 -1
  12. package/dist/index.js +2 -2
  13. package/dist/manifest/static-manifest.js +1 -1
  14. package/dist/manifest/static-manifest.js.map +1 -1
  15. package/dist/manifest/store.js +1 -1
  16. package/dist/manifest.json +1 -1
  17. package/dist/prebuild/index.d.ts.map +1 -1
  18. package/dist/prebuild/index.js +2 -0
  19. package/dist/prebuild/index.js.map +1 -1
  20. package/dist/run-once.js +2 -2
  21. package/dist/run-once.js.map +1 -1
  22. package/dist/scanner/manifest-generator.d.ts.map +1 -1
  23. package/dist/scanner/manifest-generator.js +12 -2
  24. package/dist/scanner/manifest-generator.js.map +1 -1
  25. package/dist/scanner/types.d.ts +13 -0
  26. package/dist/scanner/types.d.ts.map +1 -1
  27. package/dist/scanner/types.js.map +1 -1
  28. package/dist/smrt-knowledge.json +9 -9
  29. package/dist/ui-metadata.d.ts +13 -0
  30. package/dist/ui-metadata.d.ts.map +1 -1
  31. package/dist/ui-metadata.js +26 -1
  32. package/dist/ui-metadata.js.map +1 -1
  33. package/dist/vite-plugin/index.d.ts.map +1 -1
  34. package/dist/vite-plugin/index.js +2 -0
  35. package/dist/vite-plugin/index.js.map +1 -1
  36. package/dist/vite-plugin/web-collections.d.ts +6 -0
  37. package/dist/vite-plugin/web-collections.d.ts.map +1 -1
  38. package/dist/vite-plugin/web-collections.js +6 -3
  39. package/dist/vite-plugin/web-collections.js.map +1 -1
  40. package/package.json +10 -10
@@ -1 +1 @@
1
- {"version":3,"file":"ui-metadata.js","names":[],"sources":["../src/ui-metadata.ts"],"sourcesContent":["/**\n * Presentation metadata helpers (#3599): `@field({ ui: { widget } })` hints,\n * the own-field display label, and selector-slot lookup.\n *\n * Pure and dependency-free so it is safe in browser bundles\n * (`@happyvertical/smrt-core/ui-metadata`). The manifest generator, the MCP /\n * WebMCP tool descriptors, the knowledge projection and host UIs all read the\n * same rules from here.\n */\n\nimport type {\n ManifestUISelector,\n QualifiedClassName,\n SmartObjectManifest,\n} from './scanner/types.js';\n\n/** Widget hints a field may declare via `@field({ ui: { widget } })`. */\nexport const FIELD_UI_WIDGETS = [\n 'textarea',\n 'currency',\n 'email',\n 'url',\n 'phone',\n] as const;\n\nexport type FieldUIWidget = (typeof FIELD_UI_WIDGETS)[number];\n\n/** Manifest field types each widget may be applied to. */\nexport const FIELD_UI_WIDGET_TYPES: Readonly<\n Record<FieldUIWidget, readonly string[]>\n> = {\n textarea: ['text'],\n email: ['text'],\n url: ['text'],\n phone: ['text'],\n // A currency CODE (ISO 4217, e.g. `currency: string = 'USD'`) picker, not an\n // amount: amounts are integer minor units and need no widget hint.\n currency: ['text'],\n};\n\nexport function isFieldUIWidget(value: unknown): value is FieldUIWidget {\n return (\n typeof value === 'string' &&\n (FIELD_UI_WIDGETS as readonly string[]).includes(value)\n );\n}\n\n/**\n * Fields tried, in order, when a model declares no\n * `@smrt({ display: { label } })`.\n */\nexport const DEFAULT_DISPLAY_LABEL_FIELDS = [\n 'name',\n 'title',\n 'label',\n 'code',\n] as const;\n\n/** Field kinds that can never be a record's label (they are not its own value). */\nconst NON_LABEL_FIELD_TYPES = new Set([\n 'foreignKey',\n 'crossPackageRef',\n 'oneToMany',\n 'manyToMany',\n 'json',\n 'meta',\n]);\n\ninterface LabelCandidate {\n type?: string;\n sensitive?: boolean;\n transient?: boolean;\n _meta?: { sensitive?: unknown; transient?: unknown } | undefined;\n}\n\n/**\n * Why `fieldName` cannot label a record of this model, or `null` when it can.\n * Used both to validate an explicit declaration and to filter the default\n * candidates.\n */\nexport function displayLabelFieldProblem(\n fields: Record<string, LabelCandidate>,\n fieldName: string,\n): string | null {\n const field = fields[fieldName];\n if (!field) return `it is not a field of this model`;\n if (field.sensitive === true || field._meta?.sensitive === true) {\n return `it is a sensitive field`;\n }\n if (field.transient === true || field._meta?.transient === true) {\n return `it is a transient field`;\n }\n if (field.type && NON_LABEL_FIELD_TYPES.has(field.type)) {\n return `a ${field.type} field is not the record's own value`;\n }\n return null;\n}\n\n/**\n * The own field generic pickers and assistants use to label a record: the\n * declared `display.label` when present, otherwise the first of\n * {@link DEFAULT_DISPLAY_LABEL_FIELDS} that is a usable own field. `undefined`\n * when the model has none (it should then ship a selector).\n */\nexport function resolveDisplayLabelField(\n fields: Record<string, LabelCandidate>,\n declared?: string,\n): string | undefined {\n if (declared !== undefined) {\n return displayLabelFieldProblem(fields, declared) === null\n ? declared\n : undefined;\n }\n return DEFAULT_DISPLAY_LABEL_FIELDS.find(\n (name) => displayLabelFieldProblem(fields, name) === null,\n );\n}\n\n/**\n * Sentence appended to generated tool descriptions (#3599), including its\n * leading separator; empty when the model has no label field.\n */\nexport function describeDisplayLabel(labelField: string | undefined): string {\n return labelField\n ? `. Records are identified by their \\`${labelField}\\` field.`\n : '';\n}\n\ntype SelectorHost = Pick<SmartObjectManifest, 'uiSelectors'>;\n\n/**\n * The selector slot registered for a model, or `undefined`. Hosts render the\n * package-owned component registered under `slot.slotId` for any\n * `@foreignKey` / `@crossPackageRef` field whose target is `qualifiedName`, and\n * fall back to a generic picker labelled by the model's display label field.\n *\n * Pass every manifest in scope; the first selector found wins.\n */\nexport function findSelectorFor(\n manifests: SelectorHost | readonly SelectorHost[],\n qualifiedName: QualifiedClassName | string,\n): ManifestUISelector | undefined {\n const list = Array.isArray(manifests)\n ? (manifests as readonly SelectorHost[])\n : [manifests as SelectorHost];\n for (const manifest of list) {\n for (const selector of Object.values(manifest.uiSelectors ?? {})) {\n if (selector.selects === qualifiedName) return selector;\n }\n }\n return undefined;\n}\n"],"mappings":";;AAiBA,IAAa,mBAAmB;CAC9B;CACA;CACA;CACA;CACA;AACF;;AAKA,IAAa,wBAET;CACF,UAAU,CAAC,MAAM;CACjB,OAAO,CAAC,MAAM;CACd,KAAK,CAAC,MAAM;CACZ,OAAO,CAAC,MAAM;CAGd,UAAU,CAAC,MAAM;AACnB;AAEA,SAAgB,gBAAgB,OAAwC;CACtE,OACE,OAAO,UAAU,YAChB,iBAAuC,SAAS,KAAK;AAE1D;;;;;AAMA,IAAa,+BAA+B;CAC1C;CACA;CACA;CACA;AACF;;AAGA,IAAM,wCAAwB,IAAI,IAAI;CACpC;CACA;CACA;CACA;CACA;CACA;AACF,CAAC;;;;;;AAcD,SAAgB,yBACd,QACA,WACe;CACf,MAAM,QAAQ,OAAO;CACrB,IAAI,CAAC,OAAO,OAAO;CACnB,IAAI,MAAM,cAAc,QAAQ,MAAM,OAAO,cAAc,MACzD,OAAO;CAET,IAAI,MAAM,cAAc,QAAQ,MAAM,OAAO,cAAc,MACzD,OAAO;CAET,IAAI,MAAM,QAAQ,sBAAsB,IAAI,MAAM,IAAI,GACpD,OAAO,KAAK,MAAM,KAAK;CAEzB,OAAO;AACT;;;;;;;AAQA,SAAgB,yBACd,QACA,UACoB;CACpB,IAAI,aAAa,KAAA,GACf,OAAO,yBAAyB,QAAQ,QAAQ,MAAM,OAClD,WACA,KAAA;CAEN,OAAO,6BAA6B,MACjC,SAAS,yBAAyB,QAAQ,IAAI,MAAM,IACvD;AACF;;;;;AAMA,SAAgB,qBAAqB,YAAwC;CAC3E,OAAO,aACH,uCAAuC,WAAW,aAClD;AACN;;;;;;;;;AAYA,SAAgB,gBACd,WACA,eACgC;CAChC,MAAM,OAAO,MAAM,QAAQ,SAAS,IAC/B,YACD,CAAC,SAAyB;CAC9B,KAAK,MAAM,YAAY,MACrB,KAAK,MAAM,YAAY,OAAO,OAAO,SAAS,eAAe,CAAC,CAAC,GAC7D,IAAI,SAAS,YAAY,eAAe,OAAO;AAIrD"}
1
+ {"version":3,"file":"ui-metadata.js","names":[],"sources":["../src/ui-metadata.ts"],"sourcesContent":["/**\n * Presentation metadata helpers (#3599): `@field({ ui: { widget } })` hints,\n * the own-field display label, and selector-slot lookup.\n *\n * Pure and dependency-free so it is safe in browser bundles\n * (`@happyvertical/smrt-core/ui-metadata`). The manifest generator, the MCP /\n * WebMCP tool descriptors, the knowledge projection and host UIs all read the\n * same rules from here.\n */\n\nimport type {\n ManifestUISelector,\n QualifiedClassName,\n SmartObjectManifest,\n} from './scanner/types.js';\n\n/** Widget hints a field may declare via `@field({ ui: { widget } })`. */\nexport const FIELD_UI_WIDGETS = [\n 'textarea',\n 'currency',\n 'email',\n 'url',\n 'phone',\n] as const;\n\nexport type FieldUIWidget = (typeof FIELD_UI_WIDGETS)[number];\n\n/** Manifest field types each widget may be applied to. */\nexport const FIELD_UI_WIDGET_TYPES: Readonly<\n Record<FieldUIWidget, readonly string[]>\n> = {\n textarea: ['text'],\n email: ['text'],\n url: ['text'],\n phone: ['text'],\n // A currency CODE (ISO 4217, e.g. `currency: string = 'USD'`) picker, not an\n // amount: amounts are integer minor units and need no widget hint.\n currency: ['text'],\n};\n\nexport function isFieldUIWidget(value: unknown): value is FieldUIWidget {\n return (\n typeof value === 'string' &&\n (FIELD_UI_WIDGETS as readonly string[]).includes(value)\n );\n}\n\n/** Presentation formats a field may declare via `@field({ ui: { format } })`. */\nexport const FIELD_UI_FORMATS = [\n 'money',\n 'date',\n 'datetime',\n 'percent',\n] as const;\n\nexport type FieldUIFormat = (typeof FIELD_UI_FORMATS)[number];\n\n/**\n * Manifest field types each format may be applied to. Money is integer\n * minor units only (rates and confidences are the only decimals).\n */\nexport const FIELD_UI_FORMAT_TYPES: Readonly<\n Record<FieldUIFormat, readonly string[]>\n> = {\n money: ['integer'],\n date: ['datetime'],\n datetime: ['datetime'],\n percent: ['decimal', 'integer'],\n};\n\nexport function isFieldUIFormat(value: unknown): value is FieldUIFormat {\n return (\n typeof value === 'string' &&\n (FIELD_UI_FORMATS as readonly string[]).includes(value)\n );\n}\n\n/** Relationship roles a `foreignKey` / `crossPackageRef` may declare. */\nexport const RELATIONSHIP_ROLES = ['items'] as const;\n\nexport type RelationshipRole = (typeof RELATIONSHIP_ROLES)[number];\n\nexport function isRelationshipRole(value: unknown): value is RelationshipRole {\n return (\n typeof value === 'string' &&\n (RELATIONSHIP_ROLES as readonly string[]).includes(value)\n );\n}\n\n/**\n * Fields tried, in order, when a model declares no\n * `@smrt({ display: { label } })`.\n */\nexport const DEFAULT_DISPLAY_LABEL_FIELDS = [\n 'name',\n 'title',\n 'label',\n 'code',\n] as const;\n\n/** Field kinds that can never be a record's label (they are not its own value). */\nconst NON_LABEL_FIELD_TYPES = new Set([\n 'foreignKey',\n 'crossPackageRef',\n 'oneToMany',\n 'manyToMany',\n 'json',\n 'meta',\n]);\n\ninterface LabelCandidate {\n type?: string;\n sensitive?: boolean;\n transient?: boolean;\n _meta?: { sensitive?: unknown; transient?: unknown } | undefined;\n}\n\n/**\n * Why `fieldName` cannot label a record of this model, or `null` when it can.\n * Used both to validate an explicit declaration and to filter the default\n * candidates.\n */\nexport function displayLabelFieldProblem(\n fields: Record<string, LabelCandidate>,\n fieldName: string,\n): string | null {\n const field = fields[fieldName];\n if (!field) return `it is not a field of this model`;\n if (field.sensitive === true || field._meta?.sensitive === true) {\n return `it is a sensitive field`;\n }\n if (field.transient === true || field._meta?.transient === true) {\n return `it is a transient field`;\n }\n if (field.type && NON_LABEL_FIELD_TYPES.has(field.type)) {\n return `a ${field.type} field is not the record's own value`;\n }\n return null;\n}\n\n/**\n * The own field generic pickers and assistants use to label a record: the\n * declared `display.label` when present, otherwise the first of\n * {@link DEFAULT_DISPLAY_LABEL_FIELDS} that is a usable own field. `undefined`\n * when the model has none (it should then ship a selector).\n */\nexport function resolveDisplayLabelField(\n fields: Record<string, LabelCandidate>,\n declared?: string,\n): string | undefined {\n if (declared !== undefined) {\n return displayLabelFieldProblem(fields, declared) === null\n ? declared\n : undefined;\n }\n return DEFAULT_DISPLAY_LABEL_FIELDS.find(\n (name) => displayLabelFieldProblem(fields, name) === null,\n );\n}\n\n/**\n * Sentence appended to generated tool descriptions (#3599), including its\n * leading separator; empty when the model has no label field.\n */\nexport function describeDisplayLabel(labelField: string | undefined): string {\n return labelField\n ? `. Records are identified by their \\`${labelField}\\` field.`\n : '';\n}\n\ntype SelectorHost = Pick<SmartObjectManifest, 'uiSelectors'>;\n\n/**\n * The selector slot registered for a model, or `undefined`. Hosts render the\n * package-owned component registered under `slot.slotId` for any\n * `@foreignKey` / `@crossPackageRef` field whose target is `qualifiedName`, and\n * fall back to a generic picker labelled by the model's display label field.\n *\n * Pass every manifest in scope; the first selector found wins.\n */\nexport function findSelectorFor(\n manifests: SelectorHost | readonly SelectorHost[],\n qualifiedName: QualifiedClassName | string,\n): ManifestUISelector | undefined {\n const list = Array.isArray(manifests)\n ? (manifests as readonly SelectorHost[])\n : [manifests as SelectorHost];\n for (const manifest of list) {\n for (const selector of Object.values(manifest.uiSelectors ?? {})) {\n if (selector.selects === qualifiedName) return selector;\n }\n }\n return undefined;\n}\n"],"mappings":";;AAiBA,IAAa,mBAAmB;CAC9B;CACA;CACA;CACA;CACA;AACF;;AAKA,IAAa,wBAET;CACF,UAAU,CAAC,MAAM;CACjB,OAAO,CAAC,MAAM;CACd,KAAK,CAAC,MAAM;CACZ,OAAO,CAAC,MAAM;CAGd,UAAU,CAAC,MAAM;AACnB;AAEA,SAAgB,gBAAgB,OAAwC;CACtE,OACE,OAAO,UAAU,YAChB,iBAAuC,SAAS,KAAK;AAE1D;;AAGA,IAAa,mBAAmB;CAC9B;CACA;CACA;CACA;AACF;;;;;AAQA,IAAa,wBAET;CACF,OAAO,CAAC,SAAS;CACjB,MAAM,CAAC,UAAU;CACjB,UAAU,CAAC,UAAU;CACrB,SAAS,CAAC,WAAW,SAAS;AAChC;AAEA,SAAgB,gBAAgB,OAAwC;CACtE,OACE,OAAO,UAAU,YAChB,iBAAuC,SAAS,KAAK;AAE1D;;AAGA,IAAa,qBAAqB,CAAC,OAAO;AAI1C,SAAgB,mBAAmB,OAA2C;CAC5E,OACE,OAAO,UAAU,YAChB,mBAAyC,SAAS,KAAK;AAE5D;;;;;AAMA,IAAa,+BAA+B;CAC1C;CACA;CACA;CACA;AACF;;AAGA,IAAM,wCAAwB,IAAI,IAAI;CACpC;CACA;CACA;CACA;CACA;CACA;AACF,CAAC;;;;;;AAcD,SAAgB,yBACd,QACA,WACe;CACf,MAAM,QAAQ,OAAO;CACrB,IAAI,CAAC,OAAO,OAAO;CACnB,IAAI,MAAM,cAAc,QAAQ,MAAM,OAAO,cAAc,MACzD,OAAO;CAET,IAAI,MAAM,cAAc,QAAQ,MAAM,OAAO,cAAc,MACzD,OAAO;CAET,IAAI,MAAM,QAAQ,sBAAsB,IAAI,MAAM,IAAI,GACpD,OAAO,KAAK,MAAM,KAAK;CAEzB,OAAO;AACT;;;;;;;AAQA,SAAgB,yBACd,QACA,UACoB;CACpB,IAAI,aAAa,KAAA,GACf,OAAO,yBAAyB,QAAQ,QAAQ,MAAM,OAClD,WACA,KAAA;CAEN,OAAO,6BAA6B,MACjC,SAAS,yBAAyB,QAAQ,IAAI,MAAM,IACvD;AACF;;;;;AAMA,SAAgB,qBAAqB,YAAwC;CAC3E,OAAO,aACH,uCAAuC,WAAW,aAClD;AACN;;;;;;;;;AAYA,SAAgB,gBACd,WACA,eACgC;CAChC,MAAM,OAAO,MAAM,QAAQ,SAAS,IAC/B,YACD,CAAC,SAAyB;CAC9B,KAAK,MAAM,YAAY,MACrB,KAAK,MAAM,YAAY,OAAO,OAAO,SAAS,eAAe,CAAC,CAAC,GAC7D,IAAI,SAAS,YAAY,eAAe,OAAO;AAIrD"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vite-plugin/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vite-plugin/index.ts"],"names":[],"mappings":"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"}
@@ -1287,6 +1287,7 @@ declare module '@happyvertical/smrt-virt-web' {
1287
1287
  order?: number;
1288
1288
  locked?: boolean;
1289
1289
  widget?: 'textarea' | 'currency' | 'email' | 'url' | 'phone';
1290
+ format?: 'money' | 'date' | 'datetime' | 'percent';
1290
1291
  }
1291
1292
 
1292
1293
  export interface SmrtWebFieldDefinition {
@@ -1315,6 +1316,7 @@ declare module '@happyvertical/smrt-virt-web' {
1315
1316
  field: string;
1316
1317
  kind: SmrtWebRelationshipKind;
1317
1318
  relatedCollection: string;
1319
+ role?: 'items';
1318
1320
  }
1319
1321
 
1320
1322
  export interface WebToolRouteDescriptor {