@happyvertical/smrt-core 0.55.24 → 0.56.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 (66) hide show
  1. package/agents/collection-reads.md +6 -3
  2. package/agents/generators.md +16 -0
  3. package/agents/object-runtime.md +3 -0
  4. package/agents/recipes.md +7 -4
  5. package/dist/browser.d.ts +1 -0
  6. package/dist/browser.d.ts.map +1 -1
  7. package/dist/browser.js +2 -1
  8. package/dist/collection.d.ts +4 -0
  9. package/dist/collection.d.ts.map +1 -1
  10. package/dist/collection.js +19 -9
  11. package/dist/collection.js.map +1 -1
  12. package/dist/consumer-plugin/hosted-sti-collections.d.ts.map +1 -1
  13. package/dist/consumer-plugin/hosted-sti-collections.js +4 -2
  14. package/dist/consumer-plugin/hosted-sti-collections.js.map +1 -1
  15. package/dist/decorators/index.d.ts +2 -0
  16. package/dist/decorators/index.d.ts.map +1 -1
  17. package/dist/decorators/index.js.map +1 -1
  18. package/dist/generators/mcp.d.ts.map +1 -1
  19. package/dist/generators/mcp.js +4 -2
  20. package/dist/generators/mcp.js.map +1 -1
  21. package/dist/generators/preflight-route.d.ts.map +1 -1
  22. package/dist/generators/preflight-route.js +3 -1
  23. package/dist/generators/preflight-route.js.map +1 -1
  24. package/dist/generators/rest.d.ts.map +1 -1
  25. package/dist/generators/rest.js +5 -0
  26. package/dist/generators/rest.js.map +1 -1
  27. package/dist/generators/swagger.d.ts.map +1 -1
  28. package/dist/generators/swagger.js +3 -1
  29. package/dist/generators/swagger.js.map +1 -1
  30. package/dist/index.d.ts +1 -0
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +2 -1
  33. package/dist/manifest/static-manifest.d.ts.map +1 -1
  34. package/dist/manifest/static-manifest.js +9 -1
  35. package/dist/manifest/static-manifest.js.map +1 -1
  36. package/dist/manifest/store.js +1 -1
  37. package/dist/manifest/store.js.map +1 -1
  38. package/dist/manifest.json +9 -1
  39. package/dist/object.d.ts +2 -0
  40. package/dist/object.d.ts.map +1 -1
  41. package/dist/object.js +51 -0
  42. package/dist/object.js.map +1 -1
  43. package/dist/operation-permission.d.ts +10 -0
  44. package/dist/operation-permission.d.ts.map +1 -0
  45. package/dist/operation-permission.js +36 -0
  46. package/dist/operation-permission.js.map +1 -0
  47. package/dist/registry/class-registration.d.ts.map +1 -1
  48. package/dist/registry/class-registration.js +12 -0
  49. package/dist/registry/class-registration.js.map +1 -1
  50. package/dist/registry/types.d.ts +5 -3
  51. package/dist/registry/types.d.ts.map +1 -1
  52. package/dist/scanner/manifest-generator.d.ts.map +1 -1
  53. package/dist/scanner/manifest-generator.js +47 -0
  54. package/dist/scanner/manifest-generator.js.map +1 -1
  55. package/dist/scanner/types.d.ts +5 -0
  56. package/dist/scanner/types.d.ts.map +1 -1
  57. package/dist/scanner/types.js.map +1 -1
  58. package/dist/smrt-knowledge.json +16 -11
  59. package/dist/vite-plugin/api-client-entries.d.ts.map +1 -1
  60. package/dist/vite-plugin/api-client-entries.js +1 -0
  61. package/dist/vite-plugin/api-client-entries.js.map +1 -1
  62. package/dist/vite-plugin/sveltekit-generator.d.ts +0 -4
  63. package/dist/vite-plugin/sveltekit-generator.d.ts.map +1 -1
  64. package/dist/vite-plugin/sveltekit-generator.js +36 -24
  65. package/dist/vite-plugin/sveltekit-generator.js.map +1 -1
  66. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"swagger.js","names":[],"sources":["../../src/generators/swagger.ts"],"sourcesContent":["/**\n * OpenAPI documentation generation for smrt APIs\n *\n * Lightweight implementation with optional Swagger UI\n */\n\nimport { ObjectRegistry } from '../registry';\nimport { readFieldEnum } from '../registry/manifest-field-merge.js';\nimport type { FieldDefinition } from '../scanner/types';\n\nexport interface OpenAPIConfig {\n title?: string;\n version?: string;\n description?: string;\n basePath?: string;\n serverUrl?: string;\n}\n\n/**\n * Loose structural types for the generated OpenAPI 3.0 document. The generator\n * builds these objects by progressively assigning heterogeneous spec fields, so\n * the value surface is intentionally open (`unknown`) rather than a fully-typed\n * OpenAPI model (no shared OpenAPI types are available in this package).\n */\ntype OpenAPISchemaObject = Record<string, unknown>;\ntype OpenAPIPathItem = Record<string, unknown>;\ntype OpenAPISpec = Record<string, unknown>;\n\n/**\n * Minimal Express-like surface consumed by {@link setupSwaggerUI}. Avoids a hard\n * dependency on Express types for what is an optional integration helper.\n */\ninterface SwaggerApp {\n use(path: string, ...handlers: unknown[]): unknown;\n get(path: string, ...handlers: unknown[]): unknown;\n}\n\n/**\n * Generate OpenAPI specification (tree-shakeable)\n */\nexport function generateOpenAPISpec(config: OpenAPIConfig = {}): OpenAPISpec {\n const {\n title = 'smrt API',\n version = '1.0.0',\n description = 'Auto-generated API from smrt objects',\n basePath = '/api/v1',\n serverUrl = 'http://localhost:3000',\n } = config;\n\n const spec = {\n openapi: '3.0.3',\n info: { title, version, description },\n servers: [{ url: serverUrl }],\n security: [{ bearerAuth: [] }],\n components: {\n securitySchemes: {\n bearerAuth: {\n type: 'http',\n scheme: 'bearer',\n bearerFormat: 'JWT',\n },\n },\n schemas: generateSchemas(),\n responses: {\n ValidationError: {\n description: 'Validation error',\n content: {\n 'application/json': {\n schema: {\n type: 'object',\n properties: {\n error: { type: 'string' },\n details: { type: 'string' },\n },\n },\n },\n },\n },\n NotFound: {\n description: 'Resource not found',\n content: {\n 'application/json': {\n schema: {\n type: 'object',\n properties: { error: { type: 'string' } },\n },\n },\n },\n },\n },\n },\n paths: generatePaths(basePath),\n };\n\n return spec;\n}\n\n/**\n * Generate schemas for all registered objects\n */\nfunction generateSchemas(): Record<string, OpenAPISchemaObject> {\n const schemas: Record<string, OpenAPISchemaObject> = {};\n const registeredClasses = ObjectRegistry.getAllClasses();\n\n for (const [key, classInfo] of registeredClasses) {\n // Issue #951: Use simple name for schema keys, not the qualified map key\n const name = classInfo.name || key;\n // `api: false` disables REST generation (see rest.ts) and is already\n // skipped in generatePaths(); mirror that here so component schemas don't\n // leak the field shape of a surface with no working handlers. Skip ONLY\n // when api is explicitly false — default (undefined) and\n // `{ include: [...] }` configs still publish their schema (#1540).\n if (ObjectRegistry.getConfig(name).api === false) {\n continue;\n }\n schemas[name] = generateObjectSchema(name);\n schemas[`${name}List`] = {\n type: 'object',\n properties: {\n data: {\n type: 'array',\n items: { $ref: `#/components/schemas/${name}` },\n },\n meta: {\n type: 'object',\n properties: {\n total: { type: 'integer' },\n limit: { type: 'integer' },\n offset: { type: 'integer' },\n count: { type: 'integer' },\n },\n },\n },\n };\n }\n\n return schemas;\n}\n\n/**\n * Generate schema for a specific object\n */\nfunction generateObjectSchema(objectName: string): OpenAPISchemaObject {\n const fields = ObjectRegistry.getFields(objectName);\n const properties: Record<string, OpenAPISchemaObject> = {\n id: { type: 'string', format: 'uuid' },\n slug: { type: 'string' },\n created_at: { type: 'string', format: 'date-time' },\n updated_at: { type: 'string', format: 'date-time' },\n };\n\n const required = ['id'];\n\n for (const [fieldName, field] of fields) {\n properties[fieldName] = fieldToOpenAPISchema(field);\n if (field._meta?.required) {\n required.push(fieldName);\n }\n }\n\n return { type: 'object', properties, required };\n}\n\n/**\n * Convert field to OpenAPI schema\n */\nfunction fieldToOpenAPISchema(field: FieldDefinition): OpenAPISchemaObject {\n const schema: OpenAPISchemaObject = {\n description: field._meta?.description || '',\n };\n\n switch (field.type) {\n case 'text':\n schema.type = 'string';\n if (field._meta?.maxLength) schema.maxLength = field._meta.maxLength;\n if (field._meta?.minLength) schema.minLength = field._meta.minLength;\n break;\n case 'integer':\n schema.type = 'integer';\n if (field._meta?.min !== undefined) schema.minimum = field._meta.min;\n if (field._meta?.max !== undefined) schema.maximum = field._meta.max;\n break;\n case 'decimal':\n schema.type = 'number';\n schema.format = 'float';\n if (field._meta?.min !== undefined) schema.minimum = field._meta.min;\n if (field._meta?.max !== undefined) schema.maximum = field._meta.max;\n break;\n case 'boolean':\n schema.type = 'boolean';\n break;\n case 'datetime':\n schema.type = 'string';\n schema.format = 'date-time';\n break;\n case 'json':\n schema.type = 'object';\n schema.additionalProperties = true;\n break;\n case 'foreignKey':\n schema.type = 'string';\n schema.format = 'uuid';\n break;\n default:\n schema.type = 'string';\n }\n\n if (field._meta?.default !== undefined) {\n schema.default = field._meta.default;\n }\n\n const allowed = readFieldEnum(field);\n if (\n allowed &&\n (field.type === 'text' ||\n field.type === 'integer' ||\n field.type === 'decimal')\n ) {\n schema.enum = [...allowed];\n }\n\n return schema;\n}\n\n/**\n * Generate API paths\n */\nfunction generatePaths(basePath: string): Record<string, OpenAPIPathItem> {\n const paths: Record<string, OpenAPIPathItem> = {};\n const registeredClasses = ObjectRegistry.getAllClasses();\n\n for (const [key, classInfo] of registeredClasses) {\n // Issue #951: Use simple name, not the qualified map key\n const name = classInfo.name || key;\n const pluralName = pluralize(name.toLowerCase());\n const objectPath = `${basePath}/${pluralName}`;\n\n const config = ObjectRegistry.getConfig(name);\n const apiConfig = config.api;\n // `api: false` disables REST generation (see rest.ts); don't advertise its\n // paths in the OpenAPI spec either, or the spec leaks the shape of a\n // surface that has no working handlers (#1540).\n if (apiConfig === false) {\n continue;\n }\n const excluded: string[] =\n typeof apiConfig === 'object' && apiConfig?.exclude\n ? apiConfig.exclude\n : [];\n const included: string[] | undefined =\n typeof apiConfig === 'object' ? apiConfig?.include : undefined;\n\n const shouldInclude = (\n endpoint: 'list' | 'get' | 'create' | 'update' | 'delete',\n ) => {\n if (included && !included.includes(endpoint)) return false;\n if (excluded.includes(endpoint)) return false;\n return true;\n };\n\n // Collection endpoints\n paths[objectPath] = {};\n\n if (shouldInclude('list')) {\n paths[objectPath].get = {\n summary: `List ${name} objects`,\n tags: [name],\n parameters: [\n {\n name: 'limit',\n in: 'query',\n schema: { type: 'integer', default: 50 },\n },\n {\n name: 'offset',\n in: 'query',\n schema: { type: 'integer', default: 0 },\n },\n ],\n responses: {\n '200': {\n description: 'Success',\n content: {\n 'application/json': {\n schema: { $ref: `#/components/schemas/${name}List` },\n },\n },\n },\n },\n };\n }\n\n if (shouldInclude('create')) {\n paths[objectPath].post = {\n summary: `Create ${name}`,\n tags: [name],\n requestBody: {\n required: true,\n content: {\n 'application/json': {\n schema: { $ref: `#/components/schemas/${name}` },\n },\n },\n },\n responses: {\n '201': { description: 'Created' },\n '400': { $ref: '#/components/responses/ValidationError' },\n },\n };\n }\n\n // Item endpoints\n paths[`${objectPath}/{id}`] = {};\n\n if (shouldInclude('get')) {\n paths[`${objectPath}/{id}`].get = {\n summary: `Get ${name} by ID`,\n tags: [name],\n parameters: [\n {\n name: 'id',\n in: 'path',\n required: true,\n schema: { type: 'string' },\n },\n ],\n responses: {\n '200': { description: 'Success' },\n '404': { $ref: '#/components/responses/NotFound' },\n },\n };\n }\n\n if (shouldInclude('update')) {\n paths[`${objectPath}/{id}`].put = {\n summary: `Update ${name}`,\n tags: [name],\n parameters: [\n {\n name: 'id',\n in: 'path',\n required: true,\n schema: { type: 'string' },\n },\n ],\n requestBody: {\n required: true,\n content: {\n 'application/json': {\n schema: { $ref: `#/components/schemas/${name}` },\n },\n },\n },\n responses: {\n '200': { description: 'Updated' },\n '404': { $ref: '#/components/responses/NotFound' },\n },\n };\n }\n\n if (shouldInclude('delete')) {\n paths[`${objectPath}/{id}`].delete = {\n summary: `Delete ${name}`,\n tags: [name],\n parameters: [\n {\n name: 'id',\n in: 'path',\n required: true,\n schema: { type: 'string' },\n },\n ],\n responses: {\n '204': { description: 'Deleted' },\n '404': { $ref: '#/components/responses/NotFound' },\n },\n };\n }\n }\n\n return paths;\n}\n\n/**\n * Setup Swagger UI (optional peer dependency)\n */\nexport function setupSwaggerUI(\n app: SwaggerApp,\n spec: OpenAPISpec,\n path = '/docs',\n) {\n try {\n const swaggerUi = require('swagger-ui-express');\n\n app.use(path, swaggerUi.serve);\n app.get(\n path,\n swaggerUi.setup(spec, {\n customCss: '.swagger-ui .topbar { display: none }',\n }),\n );\n\n app.get(\n `${path}/openapi.json`,\n (_req: unknown, res: { json(body: unknown): void }) => {\n res.json(spec);\n },\n );\n\n console.log(`📚 Swagger UI available at ${path}`);\n } catch (_error) {\n console.warn('Swagger UI not available (install swagger-ui-express)');\n }\n}\n\nfunction pluralize(word: string): string {\n if (word.endsWith('y')) return `${word.slice(0, -1)}ies`;\n if (\n word.endsWith('s') ||\n word.endsWith('x') ||\n word.endsWith('z') ||\n word.endsWith('ch') ||\n word.endsWith('sh')\n )\n return `${word}es`;\n return `${word}s`;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"swagger.js","names":[],"sources":["../../src/generators/swagger.ts"],"sourcesContent":["/**\n * OpenAPI documentation generation for smrt APIs\n *\n * Lightweight implementation with optional Swagger UI\n */\n\nimport { ObjectRegistry } from '../registry';\nimport { readFieldEnum } from '../registry/manifest-field-merge.js';\nimport type { FieldDefinition } from '../scanner/types';\n\nexport interface OpenAPIConfig {\n title?: string;\n version?: string;\n description?: string;\n basePath?: string;\n serverUrl?: string;\n}\n\n/**\n * Loose structural types for the generated OpenAPI 3.0 document. The generator\n * builds these objects by progressively assigning heterogeneous spec fields, so\n * the value surface is intentionally open (`unknown`) rather than a fully-typed\n * OpenAPI model (no shared OpenAPI types are available in this package).\n */\ntype OpenAPISchemaObject = Record<string, unknown>;\ntype OpenAPIPathItem = Record<string, unknown>;\ntype OpenAPISpec = Record<string, unknown>;\n\n/**\n * Minimal Express-like surface consumed by {@link setupSwaggerUI}. Avoids a hard\n * dependency on Express types for what is an optional integration helper.\n */\ninterface SwaggerApp {\n use(path: string, ...handlers: unknown[]): unknown;\n get(path: string, ...handlers: unknown[]): unknown;\n}\n\n/**\n * Generate OpenAPI specification (tree-shakeable)\n */\nexport function generateOpenAPISpec(config: OpenAPIConfig = {}): OpenAPISpec {\n const {\n title = 'smrt API',\n version = '1.0.0',\n description = 'Auto-generated API from smrt objects',\n basePath = '/api/v1',\n serverUrl = 'http://localhost:3000',\n } = config;\n\n const spec = {\n openapi: '3.0.3',\n info: { title, version, description },\n servers: [{ url: serverUrl }],\n security: [{ bearerAuth: [] }],\n components: {\n securitySchemes: {\n bearerAuth: {\n type: 'http',\n scheme: 'bearer',\n bearerFormat: 'JWT',\n },\n },\n schemas: generateSchemas(),\n responses: {\n ValidationError: {\n description: 'Validation error',\n content: {\n 'application/json': {\n schema: {\n type: 'object',\n properties: {\n error: { type: 'string' },\n details: { type: 'string' },\n },\n },\n },\n },\n },\n NotFound: {\n description: 'Resource not found',\n content: {\n 'application/json': {\n schema: {\n type: 'object',\n properties: { error: { type: 'string' } },\n },\n },\n },\n },\n },\n },\n paths: generatePaths(basePath),\n };\n\n return spec;\n}\n\n/**\n * Generate schemas for all registered objects\n */\nfunction generateSchemas(): Record<string, OpenAPISchemaObject> {\n const schemas: Record<string, OpenAPISchemaObject> = {};\n const registeredClasses = ObjectRegistry.getAllClasses();\n\n for (const [key, classInfo] of registeredClasses) {\n // Issue #951: Use simple name for schema keys, not the qualified map key\n const name = classInfo.name || key;\n // `api: false` disables REST generation (see rest.ts) and is already\n // skipped in generatePaths(); mirror that here so component schemas don't\n // leak the field shape of a surface with no working handlers. Skip ONLY\n // when api is explicitly false — default (undefined) and\n // `{ include: [...] }` configs still publish their schema (#1540).\n if (ObjectRegistry.getConfig(name).api === false) {\n continue;\n }\n schemas[name] = generateObjectSchema(name);\n schemas[`${name}List`] = {\n type: 'object',\n properties: {\n data: {\n type: 'array',\n items: { $ref: `#/components/schemas/${name}` },\n },\n meta: {\n type: 'object',\n properties: {\n total: { type: 'integer' },\n limit: { type: 'integer' },\n offset: { type: 'integer' },\n count: { type: 'integer' },\n },\n },\n },\n };\n }\n\n return schemas;\n}\n\n/**\n * Generate schema for a specific object\n */\nfunction generateObjectSchema(objectName: string): OpenAPISchemaObject {\n const fields = ObjectRegistry.getFields(objectName);\n const properties: Record<string, OpenAPISchemaObject> = {\n id: { type: 'string', format: 'uuid' },\n slug: { type: 'string' },\n created_at: { type: 'string', format: 'date-time' },\n updated_at: { type: 'string', format: 'date-time' },\n };\n\n const required = ['id'];\n\n for (const [fieldName, field] of fields) {\n properties[fieldName] = fieldToOpenAPISchema(field);\n if (field._meta?.required) {\n required.push(fieldName);\n }\n }\n\n return { type: 'object', properties, required };\n}\n\n/**\n * Convert field to OpenAPI schema\n */\nfunction fieldToOpenAPISchema(field: FieldDefinition): OpenAPISchemaObject {\n const schema: OpenAPISchemaObject = {\n description: field._meta?.description || '',\n };\n\n switch (field.type) {\n case 'text':\n schema.type = 'string';\n if (field._meta?.maxLength) schema.maxLength = field._meta.maxLength;\n if (field._meta?.minLength) schema.minLength = field._meta.minLength;\n break;\n case 'integer':\n schema.type = 'integer';\n if (field._meta?.min !== undefined) schema.minimum = field._meta.min;\n if (field._meta?.max !== undefined) schema.maximum = field._meta.max;\n break;\n case 'decimal':\n schema.type = 'number';\n schema.format = 'float';\n if (field._meta?.min !== undefined) schema.minimum = field._meta.min;\n if (field._meta?.max !== undefined) schema.maximum = field._meta.max;\n break;\n case 'boolean':\n schema.type = 'boolean';\n break;\n case 'datetime':\n schema.type = 'string';\n schema.format = 'date-time';\n break;\n case 'json':\n schema.type = 'object';\n schema.additionalProperties = true;\n break;\n case 'foreignKey':\n schema.type = 'string';\n schema.format = 'uuid';\n break;\n default:\n schema.type = 'string';\n }\n\n if (field._meta?.default !== undefined) {\n schema.default = field._meta.default;\n }\n\n const allowed = readFieldEnum(field);\n if (\n allowed &&\n (field.type === 'text' ||\n field.type === 'integer' ||\n field.type === 'decimal')\n ) {\n schema.enum = [...allowed];\n }\n\n return schema;\n}\n\n/**\n * Generate API paths\n */\nfunction generatePaths(basePath: string): Record<string, OpenAPIPathItem> {\n const paths: Record<string, OpenAPIPathItem> = {};\n const registeredClasses = ObjectRegistry.getAllClasses();\n\n for (const [key, classInfo] of registeredClasses) {\n // Issue #951: Use simple name, not the qualified map key\n const name = classInfo.name || key;\n const pluralName = pluralize(name.toLowerCase());\n const objectPath = `${basePath}/${pluralName}`;\n\n const config = ObjectRegistry.getConfig(name);\n const apiConfig = config.api;\n // `api: false` disables REST generation (see rest.ts); don't advertise its\n // paths in the OpenAPI spec either, or the spec leaks the shape of a\n // surface that has no working handlers (#1540).\n if (apiConfig === false) {\n continue;\n }\n const excluded: string[] =\n typeof apiConfig === 'object' && apiConfig?.exclude\n ? apiConfig.exclude\n : [];\n const included: string[] | undefined =\n typeof apiConfig === 'object' ? apiConfig?.include : undefined;\n\n const shouldInclude = (\n endpoint: 'list' | 'get' | 'create' | 'update' | 'delete',\n ) => {\n if (config.abstract && endpoint !== 'list' && endpoint !== 'get') {\n return false;\n }\n if (included && !included.includes(endpoint)) return false;\n if (excluded.includes(endpoint)) return false;\n return true;\n };\n\n // Collection endpoints\n paths[objectPath] = {};\n\n if (shouldInclude('list')) {\n paths[objectPath].get = {\n summary: `List ${name} objects`,\n tags: [name],\n parameters: [\n {\n name: 'limit',\n in: 'query',\n schema: { type: 'integer', default: 50 },\n },\n {\n name: 'offset',\n in: 'query',\n schema: { type: 'integer', default: 0 },\n },\n ],\n responses: {\n '200': {\n description: 'Success',\n content: {\n 'application/json': {\n schema: { $ref: `#/components/schemas/${name}List` },\n },\n },\n },\n },\n };\n }\n\n if (shouldInclude('create')) {\n paths[objectPath].post = {\n summary: `Create ${name}`,\n tags: [name],\n requestBody: {\n required: true,\n content: {\n 'application/json': {\n schema: { $ref: `#/components/schemas/${name}` },\n },\n },\n },\n responses: {\n '201': { description: 'Created' },\n '400': { $ref: '#/components/responses/ValidationError' },\n },\n };\n }\n\n // Item endpoints\n paths[`${objectPath}/{id}`] = {};\n\n if (shouldInclude('get')) {\n paths[`${objectPath}/{id}`].get = {\n summary: `Get ${name} by ID`,\n tags: [name],\n parameters: [\n {\n name: 'id',\n in: 'path',\n required: true,\n schema: { type: 'string' },\n },\n ],\n responses: {\n '200': { description: 'Success' },\n '404': { $ref: '#/components/responses/NotFound' },\n },\n };\n }\n\n if (shouldInclude('update')) {\n paths[`${objectPath}/{id}`].put = {\n summary: `Update ${name}`,\n tags: [name],\n parameters: [\n {\n name: 'id',\n in: 'path',\n required: true,\n schema: { type: 'string' },\n },\n ],\n requestBody: {\n required: true,\n content: {\n 'application/json': {\n schema: { $ref: `#/components/schemas/${name}` },\n },\n },\n },\n responses: {\n '200': { description: 'Updated' },\n '404': { $ref: '#/components/responses/NotFound' },\n },\n };\n }\n\n if (shouldInclude('delete')) {\n paths[`${objectPath}/{id}`].delete = {\n summary: `Delete ${name}`,\n tags: [name],\n parameters: [\n {\n name: 'id',\n in: 'path',\n required: true,\n schema: { type: 'string' },\n },\n ],\n responses: {\n '204': { description: 'Deleted' },\n '404': { $ref: '#/components/responses/NotFound' },\n },\n };\n }\n }\n\n return paths;\n}\n\n/**\n * Setup Swagger UI (optional peer dependency)\n */\nexport function setupSwaggerUI(\n app: SwaggerApp,\n spec: OpenAPISpec,\n path = '/docs',\n) {\n try {\n const swaggerUi = require('swagger-ui-express');\n\n app.use(path, swaggerUi.serve);\n app.get(\n path,\n swaggerUi.setup(spec, {\n customCss: '.swagger-ui .topbar { display: none }',\n }),\n );\n\n app.get(\n `${path}/openapi.json`,\n (_req: unknown, res: { json(body: unknown): void }) => {\n res.json(spec);\n },\n );\n\n console.log(`📚 Swagger UI available at ${path}`);\n } catch (_error) {\n console.warn('Swagger UI not available (install swagger-ui-express)');\n }\n}\n\nfunction pluralize(word: string): string {\n if (word.endsWith('y')) return `${word.slice(0, -1)}ies`;\n if (\n word.endsWith('s') ||\n word.endsWith('x') ||\n word.endsWith('z') ||\n word.endsWith('ch') ||\n word.endsWith('sh')\n )\n return `${word}es`;\n return `${word}s`;\n}\n"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -57,6 +57,7 @@ export * from "./manifest/index.js";
57
57
  export type { DiffOptions } from "./migrations/differ.js";
58
58
  export { generateSchemaDiff, getSQLFromDiff, hasActionableChanges, isAdvisoryOnlyChange, isManualOrAdvisoryChange, SchemaComparer, } from "./migrations/differ.js";
59
59
  export * from "./object.js";
60
+ export { type OperationPermissionAlias, resolveOperationPermissionAlias, } from './operation-permission.js';
60
61
  export { SmrtPolymorphicAssociation, type SmrtPolymorphicAssociationOptions, } from "./polymorphic-association.js";
61
62
  export { applyPostgresPermissions, type PostgresPermissionContract, type PostgresPermissionDiagnostic, type PostgresPermissionPlan, planPostgresPermissions, validatePostgresPermissionContract, } from './postgres-permissions.js';
62
63
  export { applyPostgresRuntimeTimeouts, DEFAULT_POSTGRES_TIMEOUTS, POSTGRES_TIMEOUT_ENV_VARS, type PostgresTimeoutConfig, type ResolvedPostgresTimeouts, resolvePostgresTimeouts, } from "./postgres-timeouts.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -71,6 +71,7 @@ import { runWithTenantGate, setTenantEntryPointRunner } from "./generators/tenan
71
71
  import { MCPGenerator, MCP_STABLE_CATALOG_TTL_MS, resolveMCPToolListCacheHint, sortMCPTools } from "./generators/mcp.js";
72
72
  import { PLAYBOOK_PREFLIGHT_CAPABILITY, PLAYBOOK_PREFLIGHT_ROUTE_SEGMENT, handlePlaybookPreflightRoute, isApiActionEnabledForObject, isRestActionRoutable, isRestRoutePublic, resolveRegisteredObjectName, restFieldReadPermissions, restMethodForApiAction } from "./generators/preflight-route.js";
73
73
  import { MAX_SYNC_APPLY_BATCH_SIZE, SYNC_APPLY_ROUTE_SEGMENTS, SYNC_APPLY_UUID_PATTERN, applySyncWritablePolicy, isStaleWrite, parseSyncApplyBatch, payloadMatchesRow, processSyncApplyBatch, validateSyncApplyItem } from "./sync/apply.js";
74
+ import { resolveOperationPermissionAlias } from "./operation-permission.js";
74
75
  import { normalizeTypedHttpError } from "./generators/typed-http-error.js";
75
76
  import { APIGenerator, computeRuntimeWebManifestHash, createRestServer, startRestServer } from "./generators/rest.js";
76
77
  import { generateOpenAPISpec, setupSwaggerUI } from "./generators/swagger.js";
@@ -110,4 +111,4 @@ import "./system/index.js";
110
111
  import { getTestDatabase } from "./testing/database.js";
111
112
  import "./tools/index.js";
112
113
  import { smrtPlugin } from "./vite-plugin/index.js";
113
- export { AGENT_SURFACE_HASH_PREFIX, AIError, APIGenerator, AiUsageCollector, AiUsagePersistenceHandler, BOOTED_PROVENANCE, CACHE_INVALIDATION_CHANNEL, CHANGE_FEED_CREDENTIAL_TABLES, CHANGE_FEED_INTERCEPTOR_NAME, CHANGE_FEED_TABLE, CHANGE_SIGNAL_CHANNEL, CRUD_OPERATIONS, ConfigurationError, ContentHasher, CosineSimilarity, DEFAULT_AI_COST_RATES, DEFAULT_CHANGES_LIMIT, DEFAULT_DATA_QUERY_PAGE_LIMIT, DEFAULT_DATA_QUERY_RESULT_BYTES, DEFAULT_DISPLAY_LABEL_FIELDS, DEFAULT_EMBEDDING_CONFIG, DEFAULT_EVENTS_HEARTBEAT_MS, DEFAULT_EVENTS_MAX_SUBSCRIBERS, DEFAULT_EVENTS_RETRY_AFTER_SECONDS, DEFAULT_FACET_LIMIT, DEFAULT_LEARNING_CONFIG, DEFAULT_LIST_LIMIT, DEFAULT_LIST_ORDER_BY, DEFAULT_POSTGRES_TIMEOUTS, DEFAULT_RETENTION_POLICY, DIAGNOSTICS_DEFAULT_LIMIT, DataQueryValidationError, DatabaseError, Dispatch, DispatchBus, DispatchCollection, DispatchSubscription, DispatchSubscriptionCollection, EmbeddingProvider, EmbeddingStorage, EmbeddingUnavailableError, ErrorUtils, FIELD_UI_FORMATS, FIELD_UI_FORMAT_TYPES, FIELD_UI_WIDGETS, FIELD_UI_WIDGET_TYPES, FilesystemError, GlobalInterceptors, IN_LIST_CHUNK_SIZE, LearningMemory, LiveSchemaParityError, MAX_CHANGES_LIMIT, MAX_DATA_QUERY_CURSOR_LENGTH, MAX_DATA_QUERY_FACETS, MAX_DATA_QUERY_FILTERS, MAX_DATA_QUERY_FILTER_DEPTH, MAX_DATA_QUERY_IN_VALUES, MAX_DATA_QUERY_OFFSET, MAX_DATA_QUERY_PAGE_LIMIT, MAX_DATA_QUERY_REQUEST_BYTES, MAX_DATA_QUERY_RESULT_BYTES, MAX_DATA_QUERY_WARNINGS, MAX_FACET_FIELDS, MAX_FACET_LIMIT, MAX_LIST_LIMIT, MAX_STI_READ_SCOPE_TYPES, MAX_SYNC_APPLY_BATCH_SIZE, MCPGenerator, MCP_STABLE_CATALOG_TTL_MS, MOCK_PROVIDER_OPTION, MODULE_DOC_HASH_PREFIX, ManifestBuilder, ManifestGenerator, ManifestManager, MetricsAdapter, NetworkError, ObjectRegistry, PLAYBOOK_PREFLIGHT_CAPABILITY, PLAYBOOK_PREFLIGHT_ROUTE_SEGMENT, POSTGRES_REVISION_GUARD_EXPRESSION, POSTGRES_TIMEOUT_ENV_VARS, PRIVATE_READ_CACHE_CONTROL, PubSubAdapter, QueryBoundsError, QueryOrderByError, RECIPE_DEMO_MODES, RELATIONSHIP_ROLES, RUN_ONCE_CLAIMS_TABLE, RunOnceClaimError, RuntimeError, SMRT_COLLECTION_BASE_NAMES, SMRT_CUSTOM_ACTION_ERROR_METADATA_KEY, SMRT_SCHEMA_VERSION, SYNC_APPLY_ROUTE_SEGMENTS, SYNC_APPLY_UUID_PATTERN, SYSTEM_DIAGNOSTICS_TABLES, SYSTEM_TABLE_NAMES, SchemaComparer, SignalBus, SignalSanitizer, SmrtClass, SmrtCollection, SmrtError, SmrtHierarchical, SmrtJunction, SmrtJunctionBase, SmrtMCPServer, SmrtObject, SmrtPolymorphicAssociation, SmrtRecipe, TenantIsolationError, ValidationError, ValidationReport, ValidationUtils, appendChange, appendChanges, applyOneToManyChildAccessors, applyPendingDecoratorRegistrations, applyPostgresPermissions, applyPostgresRuntimeTimeouts, applySyncWritablePolicy, assertPlainJson, assertPostgresSystemTimestampsCurrent, assertScopedPackageName, auditChanges, auditSnapshot, broadcastCacheInvalidation, buildCascadePlan, buildChangeEventStream, buildConnectSection, buildCustomActionInputSchema, buildCustomActionInvocationArgs, buildDefaultListOrderBy, buildDomainKnowledgeManifest, buildGlossary, buildKnowledgeGraph, bumpChangeFeed, canonicalReadRepresentation, canonicalizeDataQuery, cascadeReferencesTo, changeEventSubscribersAtCapacity, checkKnowledgeGraphFreshness, checkLiveSchemaParity, childAccessorName, chunkArray, classifyDatabaseError, classifyDialectMessage, classifyMethodWireability, classifyParameterWireability, clearRetentionTasks, clone, coerceCustomActionArgument, collectForeignKeyOrphanCounts, computeBodyEtag, computeRuntimeWebManifestHash, computeTableVersionEtag, conditionalJsonResponse, config, convertTypeToJsonSchema, createClassNamePredicate, createDataQueryFingerprint, createDispatchBus, createFilesystemAdapter, createGeneratedCollectionAccess, createInterceptorContext, createMCPServer, createManifestClassNamePredicate, createQualifiedName, createRecipeHelp, createRestServer, createSmrtClient, createSmrtServer, crossPackageRef, customActionParameterInputName, declareChangeFeedSensitiveTable, declaredTypeAcceptsDate, declaresRuntimeRestRoute, declaresRuntimeRestRouteShape, deriveRecipeDemo, deriveRunOnceClaimKey, describeDisplayLabel, detectEngine, digestRunOnceContent, discoverKnowledgeArtifactPaths, discoverManifestEntry, discoverScopedPackageDirectories, displayLabelFieldProblem, drainChangeFeed, effectiveRecipeDemo, ensureBootstrapSystemTableCompatibility, ensureCacheInvalidationListener, ensureChangeFeedTable, ensureDeferredSystemTableCompatibility, ensureDispatchSubscriptionsSystemTableCompatibility, ensureDispatchSystemTableCompatibility, ensureJobEventsSystemTableCompatibility, ensureJobsSystemTableCompatibility, ensureLegacySystemTableCompatibility, ensureSystemTables, estimateAiUsageCost, eventStreamCapacityExceededResponse, executeCollectionReadPlan, executeDecision, executeToolCall, executeToolCalls, extractFieldRefs, field, filterVisibleChangeFeedEntries, findField, findManifestEntryByQualifiedName, findSelectorFor, foreignKey, formatToolResults, generateDDLForEngine, generateOpenAPISpec, generateSchemaDiff, generateToolFromMethod, generateToolManifest, getActiveAuditOptions, getAdapterInfo, getAuthorizedChangesSince, getAuthorizedTenantScopedChangesSince, getCacheGeneration, getChangeFeedSensitiveTables, getChangesSince, getClassConfigResolvers, getClassName, getConfigResolver, getDatabaseEngine, getManifest, getPackageFromQualifiedName, getRetentionTasks, getSQLFromDiff, getSystemTableShapes, getTableVersion, getTenantScopedChangesSince, getTestDatabase, handlePlaybookPreflightRoute, hasActionableChanges, hasBrowserOption, hasChangeFeedEntryVisibilityHook, hasChangeFeedTableAuthorizerHook, helpToMarkdown, ifNoneMatchHasConcreteMatch, ifNoneMatchSatisfied, importOptionalDependency, invalidateCollectionCache, isAbortedTransactionError, isAdvisoryOnlyChange, isApiActionEnabledForObject, isAudited, isChangeFeedDenyAll, isChangeFeedEntryVisible, isChangeFeedSensitiveTable, isCrudOperation, isCrudToolAction, isDatabaseInterface, isDeterministicDatabaseError, isEmbeddedDatabase, isFieldUIFormat, isFieldUIWidget, isFrameworkBaseClass, isFromPackage, isLazyConfigSentinel, isManualOrAdvisoryChange, isMockableProvider, isNotNullViolationError, isPostgresDatabase, isQualifiedName, isRelationshipRole, isRestActionRoutable, isRestRoutePublic, isScopedPackageName, isSensitiveConnectionParam, isServerProvider, isSmrtCollectionExtendsName, isStaleWrite, isTenantScopedClassResolved, isTransientDatabaseError, isType, isUniqueViolationError, isValid, listConfigResolvers, loadExternalManifest, loadExternalManifestSync, loadLocalTestManifestSync, loadManifestFromPathSync, manifest, manyToMany, meta, method, migratePostgresSystemTimestamps, normalizeCustomActionFailure, normalizeDataQueryRequest, normalizeDataQueryResult, normalizeDataQuerySchema, normalizeEventsMaxSubscribers, normalizeOnDelete, normalizeTypedHttpError, oneToMany, parse, parseHelp, parseQualifiedName, parseSyncApplyBatch, payloadMatchesRow, planForeignKeyCreation, planPostgresPermissions, planPostgresSystemTimestampMigrations, postgresRevisionCandidates, postgresRevisionCondition, processSyncApplyBatch, pruneAiUsage, pruneChangeFeed, pruneExpiredContexts, pruneRunOnceClaims, publishArtifactFiles, publishAtomicArtifact, qualifiedNamesEqual, queryStringDecoderFor, readAgentModuleDocs, readDispatchHealth, readJobHealth, readMethodDecoratorConfig, readMigrationStatus, readPackageAgentDoc, readRecentChanges, readRegistryDrift, readScheduleHealth, readSystemDiagnostics, redactDatabaseUrl, redactDatabaseUrlsInText, registerChangeFeedWriter, registerCompatibleFieldDecorator, registerCompatibleMethodDecorator, registerConfigResolver, registerFilesystemAdapterFactory, registerOptionalDependency, registerRetentionTask, renderHelp, requireAuditOptions, resetChangeFeedWarnings, resetChangeSignals, resetCollectionCache, resetConfigResolvers, resetVerifiedTables, resolveAgentModuleDocPaths, resolveApiMethodExposure, resolveAuthorizedChangeFeedTables, resolveCustomActionMetadata, resolveDatabase, resolveDbCacheKey, resolveDeclaredScopeMismatch, resolveDispatchTenantId, resolveDispatchTenantScope, resolveDisplayLabelField, resolveEffectiveActionMetadata, resolveExistingRunOnceClaim, resolveFileKnowledgeConfig, resolveGetStringFilter, resolveHelp, resolveLazyConfig, resolveListLimit, resolveListOffset, resolveMCPToolListCacheHint, resolvePostgresTimeouts, resolveReadCacheControl, resolveRegisteredObjectName, resolveTenantEtagDiscriminator, restFieldReadPermissions, restMethodForApiAction, runCascadeDelete, runOnce, runRetentionSweep, runWithTenantGate, safeParse, safeStringify, sanitizeMessagePaths, setChangeFeedAuthorizer, setChangeFeedEntryVisibility, setDispatchTenantResolver, setTenantEntryPointRunner, setTenantScopedClassResolver, setupSwaggerUI, shouldIncludeMethod, signalVisibleToTenant, smrt, smrtPlugin, smrt as smrtRegistry, snapshotRegistry, sortMCPTools, stableStringify, startRestServer, staticManifest, stopCacheInvalidationListeners, stopChangeSignalListeners, stringify, subscribeToChangeSignals, tableExists, toCustomActionBoolean, toCustomActionDate, toCustomActionNumber, toSnakeCase, tryReserveChangeEventSubscriberSlot, unregisterChangeFeedWriter, unregisterConfigResolver, unregisterRetentionTask, usesEmbeddedRevisionFallback, validateHelp, validatePostgresPermissionContract, validateSyncApplyItem, validateToolCall, versionConditionalResponse, warnIfSharedCacheNeutralized, withAuditContext, withEmbeddedWriteQueue, withEmbeddedWriteTransaction, writeAudit };
114
+ export { AGENT_SURFACE_HASH_PREFIX, AIError, APIGenerator, AiUsageCollector, AiUsagePersistenceHandler, BOOTED_PROVENANCE, CACHE_INVALIDATION_CHANNEL, CHANGE_FEED_CREDENTIAL_TABLES, CHANGE_FEED_INTERCEPTOR_NAME, CHANGE_FEED_TABLE, CHANGE_SIGNAL_CHANNEL, CRUD_OPERATIONS, ConfigurationError, ContentHasher, CosineSimilarity, DEFAULT_AI_COST_RATES, DEFAULT_CHANGES_LIMIT, DEFAULT_DATA_QUERY_PAGE_LIMIT, DEFAULT_DATA_QUERY_RESULT_BYTES, DEFAULT_DISPLAY_LABEL_FIELDS, DEFAULT_EMBEDDING_CONFIG, DEFAULT_EVENTS_HEARTBEAT_MS, DEFAULT_EVENTS_MAX_SUBSCRIBERS, DEFAULT_EVENTS_RETRY_AFTER_SECONDS, DEFAULT_FACET_LIMIT, DEFAULT_LEARNING_CONFIG, DEFAULT_LIST_LIMIT, DEFAULT_LIST_ORDER_BY, DEFAULT_POSTGRES_TIMEOUTS, DEFAULT_RETENTION_POLICY, DIAGNOSTICS_DEFAULT_LIMIT, DataQueryValidationError, DatabaseError, Dispatch, DispatchBus, DispatchCollection, DispatchSubscription, DispatchSubscriptionCollection, EmbeddingProvider, EmbeddingStorage, EmbeddingUnavailableError, ErrorUtils, FIELD_UI_FORMATS, FIELD_UI_FORMAT_TYPES, FIELD_UI_WIDGETS, FIELD_UI_WIDGET_TYPES, FilesystemError, GlobalInterceptors, IN_LIST_CHUNK_SIZE, LearningMemory, LiveSchemaParityError, MAX_CHANGES_LIMIT, MAX_DATA_QUERY_CURSOR_LENGTH, MAX_DATA_QUERY_FACETS, MAX_DATA_QUERY_FILTERS, MAX_DATA_QUERY_FILTER_DEPTH, MAX_DATA_QUERY_IN_VALUES, MAX_DATA_QUERY_OFFSET, MAX_DATA_QUERY_PAGE_LIMIT, MAX_DATA_QUERY_REQUEST_BYTES, MAX_DATA_QUERY_RESULT_BYTES, MAX_DATA_QUERY_WARNINGS, MAX_FACET_FIELDS, MAX_FACET_LIMIT, MAX_LIST_LIMIT, MAX_STI_READ_SCOPE_TYPES, MAX_SYNC_APPLY_BATCH_SIZE, MCPGenerator, MCP_STABLE_CATALOG_TTL_MS, MOCK_PROVIDER_OPTION, MODULE_DOC_HASH_PREFIX, ManifestBuilder, ManifestGenerator, ManifestManager, MetricsAdapter, NetworkError, ObjectRegistry, PLAYBOOK_PREFLIGHT_CAPABILITY, PLAYBOOK_PREFLIGHT_ROUTE_SEGMENT, POSTGRES_REVISION_GUARD_EXPRESSION, POSTGRES_TIMEOUT_ENV_VARS, PRIVATE_READ_CACHE_CONTROL, PubSubAdapter, QueryBoundsError, QueryOrderByError, RECIPE_DEMO_MODES, RELATIONSHIP_ROLES, RUN_ONCE_CLAIMS_TABLE, RunOnceClaimError, RuntimeError, SMRT_COLLECTION_BASE_NAMES, SMRT_CUSTOM_ACTION_ERROR_METADATA_KEY, SMRT_SCHEMA_VERSION, SYNC_APPLY_ROUTE_SEGMENTS, SYNC_APPLY_UUID_PATTERN, SYSTEM_DIAGNOSTICS_TABLES, SYSTEM_TABLE_NAMES, SchemaComparer, SignalBus, SignalSanitizer, SmrtClass, SmrtCollection, SmrtError, SmrtHierarchical, SmrtJunction, SmrtJunctionBase, SmrtMCPServer, SmrtObject, SmrtPolymorphicAssociation, SmrtRecipe, TenantIsolationError, ValidationError, ValidationReport, ValidationUtils, appendChange, appendChanges, applyOneToManyChildAccessors, applyPendingDecoratorRegistrations, applyPostgresPermissions, applyPostgresRuntimeTimeouts, applySyncWritablePolicy, assertPlainJson, assertPostgresSystemTimestampsCurrent, assertScopedPackageName, auditChanges, auditSnapshot, broadcastCacheInvalidation, buildCascadePlan, buildChangeEventStream, buildConnectSection, buildCustomActionInputSchema, buildCustomActionInvocationArgs, buildDefaultListOrderBy, buildDomainKnowledgeManifest, buildGlossary, buildKnowledgeGraph, bumpChangeFeed, canonicalReadRepresentation, canonicalizeDataQuery, cascadeReferencesTo, changeEventSubscribersAtCapacity, checkKnowledgeGraphFreshness, checkLiveSchemaParity, childAccessorName, chunkArray, classifyDatabaseError, classifyDialectMessage, classifyMethodWireability, classifyParameterWireability, clearRetentionTasks, clone, coerceCustomActionArgument, collectForeignKeyOrphanCounts, computeBodyEtag, computeRuntimeWebManifestHash, computeTableVersionEtag, conditionalJsonResponse, config, convertTypeToJsonSchema, createClassNamePredicate, createDataQueryFingerprint, createDispatchBus, createFilesystemAdapter, createGeneratedCollectionAccess, createInterceptorContext, createMCPServer, createManifestClassNamePredicate, createQualifiedName, createRecipeHelp, createRestServer, createSmrtClient, createSmrtServer, crossPackageRef, customActionParameterInputName, declareChangeFeedSensitiveTable, declaredTypeAcceptsDate, declaresRuntimeRestRoute, declaresRuntimeRestRouteShape, deriveRecipeDemo, deriveRunOnceClaimKey, describeDisplayLabel, detectEngine, digestRunOnceContent, discoverKnowledgeArtifactPaths, discoverManifestEntry, discoverScopedPackageDirectories, displayLabelFieldProblem, drainChangeFeed, effectiveRecipeDemo, ensureBootstrapSystemTableCompatibility, ensureCacheInvalidationListener, ensureChangeFeedTable, ensureDeferredSystemTableCompatibility, ensureDispatchSubscriptionsSystemTableCompatibility, ensureDispatchSystemTableCompatibility, ensureJobEventsSystemTableCompatibility, ensureJobsSystemTableCompatibility, ensureLegacySystemTableCompatibility, ensureSystemTables, estimateAiUsageCost, eventStreamCapacityExceededResponse, executeCollectionReadPlan, executeDecision, executeToolCall, executeToolCalls, extractFieldRefs, field, filterVisibleChangeFeedEntries, findField, findManifestEntryByQualifiedName, findSelectorFor, foreignKey, formatToolResults, generateDDLForEngine, generateOpenAPISpec, generateSchemaDiff, generateToolFromMethod, generateToolManifest, getActiveAuditOptions, getAdapterInfo, getAuthorizedChangesSince, getAuthorizedTenantScopedChangesSince, getCacheGeneration, getChangeFeedSensitiveTables, getChangesSince, getClassConfigResolvers, getClassName, getConfigResolver, getDatabaseEngine, getManifest, getPackageFromQualifiedName, getRetentionTasks, getSQLFromDiff, getSystemTableShapes, getTableVersion, getTenantScopedChangesSince, getTestDatabase, handlePlaybookPreflightRoute, hasActionableChanges, hasBrowserOption, hasChangeFeedEntryVisibilityHook, hasChangeFeedTableAuthorizerHook, helpToMarkdown, ifNoneMatchHasConcreteMatch, ifNoneMatchSatisfied, importOptionalDependency, invalidateCollectionCache, isAbortedTransactionError, isAdvisoryOnlyChange, isApiActionEnabledForObject, isAudited, isChangeFeedDenyAll, isChangeFeedEntryVisible, isChangeFeedSensitiveTable, isCrudOperation, isCrudToolAction, isDatabaseInterface, isDeterministicDatabaseError, isEmbeddedDatabase, isFieldUIFormat, isFieldUIWidget, isFrameworkBaseClass, isFromPackage, isLazyConfigSentinel, isManualOrAdvisoryChange, isMockableProvider, isNotNullViolationError, isPostgresDatabase, isQualifiedName, isRelationshipRole, isRestActionRoutable, isRestRoutePublic, isScopedPackageName, isSensitiveConnectionParam, isServerProvider, isSmrtCollectionExtendsName, isStaleWrite, isTenantScopedClassResolved, isTransientDatabaseError, isType, isUniqueViolationError, isValid, listConfigResolvers, loadExternalManifest, loadExternalManifestSync, loadLocalTestManifestSync, loadManifestFromPathSync, manifest, manyToMany, meta, method, migratePostgresSystemTimestamps, normalizeCustomActionFailure, normalizeDataQueryRequest, normalizeDataQueryResult, normalizeDataQuerySchema, normalizeEventsMaxSubscribers, normalizeOnDelete, normalizeTypedHttpError, oneToMany, parse, parseHelp, parseQualifiedName, parseSyncApplyBatch, payloadMatchesRow, planForeignKeyCreation, planPostgresPermissions, planPostgresSystemTimestampMigrations, postgresRevisionCandidates, postgresRevisionCondition, processSyncApplyBatch, pruneAiUsage, pruneChangeFeed, pruneExpiredContexts, pruneRunOnceClaims, publishArtifactFiles, publishAtomicArtifact, qualifiedNamesEqual, queryStringDecoderFor, readAgentModuleDocs, readDispatchHealth, readJobHealth, readMethodDecoratorConfig, readMigrationStatus, readPackageAgentDoc, readRecentChanges, readRegistryDrift, readScheduleHealth, readSystemDiagnostics, redactDatabaseUrl, redactDatabaseUrlsInText, registerChangeFeedWriter, registerCompatibleFieldDecorator, registerCompatibleMethodDecorator, registerConfigResolver, registerFilesystemAdapterFactory, registerOptionalDependency, registerRetentionTask, renderHelp, requireAuditOptions, resetChangeFeedWarnings, resetChangeSignals, resetCollectionCache, resetConfigResolvers, resetVerifiedTables, resolveAgentModuleDocPaths, resolveApiMethodExposure, resolveAuthorizedChangeFeedTables, resolveCustomActionMetadata, resolveDatabase, resolveDbCacheKey, resolveDeclaredScopeMismatch, resolveDispatchTenantId, resolveDispatchTenantScope, resolveDisplayLabelField, resolveEffectiveActionMetadata, resolveExistingRunOnceClaim, resolveFileKnowledgeConfig, resolveGetStringFilter, resolveHelp, resolveLazyConfig, resolveListLimit, resolveListOffset, resolveMCPToolListCacheHint, resolveOperationPermissionAlias, resolvePostgresTimeouts, resolveReadCacheControl, resolveRegisteredObjectName, resolveTenantEtagDiscriminator, restFieldReadPermissions, restMethodForApiAction, runCascadeDelete, runOnce, runRetentionSweep, runWithTenantGate, safeParse, safeStringify, sanitizeMessagePaths, setChangeFeedAuthorizer, setChangeFeedEntryVisibility, setDispatchTenantResolver, setTenantEntryPointRunner, setTenantScopedClassResolver, setupSwaggerUI, shouldIncludeMethod, signalVisibleToTenant, smrt, smrtPlugin, smrt as smrtRegistry, snapshotRegistry, sortMCPTools, stableStringify, startRestServer, staticManifest, stopCacheInvalidationListeners, stopChangeSignalListeners, stringify, subscribeToChangeSignals, tableExists, toCustomActionBoolean, toCustomActionDate, toCustomActionNumber, toSnakeCase, tryReserveChangeEventSubscriberSlot, unregisterChangeFeedWriter, unregisterConfigResolver, unregisterRetentionTask, usesEmbeddedRevisionFallback, validateHelp, validatePostgresPermissionContract, validateSyncApplyItem, validateToolCall, versionConditionalResponse, warnIfSharedCacheNeutralized, withAuditContext, withEmbeddedWriteQueue, withEmbeddedWriteTransaction, writeAudit };
@@ -1 +1 @@
1
- {"version":3,"file":"static-manifest.d.ts","sourceRoot":"","sources":["../../src/manifest/static-manifest.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,eAAO,MAAM,cAAc,EAAE,mBAk0DnB,CAAC;AAEX,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"static-manifest.d.ts","sourceRoot":"","sources":["../../src/manifest/static-manifest.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,eAAO,MAAM,cAAc,EAAE,mBA00DnB,CAAC;AAEX,eAAe,cAAc,CAAC"}
@@ -3,7 +3,7 @@ var staticManifest = {
3
3
  "version": "1.0.0",
4
4
  "timestamp": 0,
5
5
  "packageName": "@happyvertical/smrt-core",
6
- "packageVersion": "0.55.24",
6
+ "packageVersion": "0.56.0",
7
7
  "objects": {
8
8
  "@happyvertical/smrt-core:SmrtClass": {
9
9
  "name": "smrtclass",
@@ -477,6 +477,14 @@ var staticManifest = {
477
477
  "isStatic": false,
478
478
  "isPublic": true
479
479
  },
480
+ "getStiChildMetaTypes": {
481
+ "name": "getStiChildMetaTypes",
482
+ "async": false,
483
+ "parameters": [],
484
+ "returnType": "string[]",
485
+ "isStatic": false,
486
+ "isPublic": true
487
+ },
480
488
  "query": {
481
489
  "name": "query",
482
490
  "async": true,