@happyvertical/smrt-core 0.55.24 → 0.56.1

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 (119) hide show
  1. package/agents/collection-reads.md +6 -3
  2. package/agents/generators.md +53 -0
  3. package/agents/object-runtime.md +3 -0
  4. package/agents/recipes.md +7 -4
  5. package/dist/browser.d.ts +2 -0
  6. package/dist/browser.d.ts.map +1 -1
  7. package/dist/browser.js +3 -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/cookbook/engine/commands.d.ts.map +1 -1
  16. package/dist/cookbook/engine/commands.js +12 -0
  17. package/dist/cookbook/engine/commands.js.map +1 -1
  18. package/dist/cookbook/engine/defaults.d.ts.map +1 -1
  19. package/dist/cookbook/engine/defaults.js +8 -0
  20. package/dist/cookbook/engine/defaults.js.map +1 -1
  21. package/dist/cookbook/engine/document.d.ts +4 -0
  22. package/dist/cookbook/engine/document.d.ts.map +1 -1
  23. package/dist/cookbook/engine/document.js +11 -3
  24. package/dist/cookbook/engine/document.js.map +1 -1
  25. package/dist/cookbook/engine/engine.d.ts.map +1 -1
  26. package/dist/cookbook/engine/engine.js +3 -1
  27. package/dist/cookbook/engine/engine.js.map +1 -1
  28. package/dist/cookbook/engine/schemas.d.ts.map +1 -1
  29. package/dist/cookbook/engine/schemas.js +8 -0
  30. package/dist/cookbook/engine/schemas.js.map +1 -1
  31. package/dist/cookbook/engine/types.d.ts +5 -1
  32. package/dist/cookbook/engine/types.d.ts.map +1 -1
  33. package/dist/cookbook/engine/types.js.map +1 -1
  34. package/dist/decorators/index.d.ts +2 -0
  35. package/dist/decorators/index.d.ts.map +1 -1
  36. package/dist/decorators/index.js.map +1 -1
  37. package/dist/generators/index.d.ts +1 -0
  38. package/dist/generators/index.d.ts.map +1 -1
  39. package/dist/generators/index.js +2 -1
  40. package/dist/generators/mcp-runtime-template.d.ts +3 -0
  41. package/dist/generators/mcp-runtime-template.d.ts.map +1 -1
  42. package/dist/generators/mcp-runtime-template.js +30 -4
  43. package/dist/generators/mcp-runtime-template.js.map +1 -1
  44. package/dist/generators/mcp.d.ts +5 -0
  45. package/dist/generators/mcp.d.ts.map +1 -1
  46. package/dist/generators/mcp.js +82 -9
  47. package/dist/generators/mcp.js.map +1 -1
  48. package/dist/generators/preflight-route.d.ts.map +1 -1
  49. package/dist/generators/preflight-route.js +3 -1
  50. package/dist/generators/preflight-route.js.map +1 -1
  51. package/dist/generators/rest.d.ts.map +1 -1
  52. package/dist/generators/rest.js +5 -0
  53. package/dist/generators/rest.js.map +1 -1
  54. package/dist/generators/swagger.d.ts.map +1 -1
  55. package/dist/generators/swagger.js +3 -1
  56. package/dist/generators/swagger.js.map +1 -1
  57. package/dist/generators.js +2 -1
  58. package/dist/index.d.ts +1 -0
  59. package/dist/index.d.ts.map +1 -1
  60. package/dist/index.js +3 -1
  61. package/dist/manifest/browser-capability.generated.js +34 -5
  62. package/dist/manifest/browser-capability.generated.js.map +1 -1
  63. package/dist/manifest/index.js +1 -1
  64. package/dist/manifest/static-manifest.d.ts.map +1 -1
  65. package/dist/manifest/static-manifest.js +9 -1
  66. package/dist/manifest/static-manifest.js.map +1 -1
  67. package/dist/manifest/store.js +1 -1
  68. package/dist/manifest/store.js.map +1 -1
  69. package/dist/manifest.json +9 -1
  70. package/dist/mcp-serializer.d.ts +38 -0
  71. package/dist/mcp-serializer.d.ts.map +1 -0
  72. package/dist/mcp-serializer.js +60 -0
  73. package/dist/mcp-serializer.js.map +1 -0
  74. package/dist/node_modules/.pnpm/import-meta-resolve@4.2.0/node_modules/import-meta-resolve/index.js +34 -0
  75. package/dist/node_modules/.pnpm/import-meta-resolve@4.2.0/node_modules/import-meta-resolve/index.js.map +1 -0
  76. package/dist/node_modules/.pnpm/import-meta-resolve@4.2.0/node_modules/import-meta-resolve/lib/errors.js +343 -0
  77. package/dist/node_modules/.pnpm/import-meta-resolve@4.2.0/node_modules/import-meta-resolve/lib/errors.js.map +1 -0
  78. package/dist/node_modules/.pnpm/import-meta-resolve@4.2.0/node_modules/import-meta-resolve/lib/get-format.js +109 -0
  79. package/dist/node_modules/.pnpm/import-meta-resolve@4.2.0/node_modules/import-meta-resolve/lib/get-format.js.map +1 -0
  80. package/dist/node_modules/.pnpm/import-meta-resolve@4.2.0/node_modules/import-meta-resolve/lib/package-json-reader.js +102 -0
  81. package/dist/node_modules/.pnpm/import-meta-resolve@4.2.0/node_modules/import-meta-resolve/lib/package-json-reader.js.map +1 -0
  82. package/dist/node_modules/.pnpm/import-meta-resolve@4.2.0/node_modules/import-meta-resolve/lib/resolve.js +673 -0
  83. package/dist/node_modules/.pnpm/import-meta-resolve@4.2.0/node_modules/import-meta-resolve/lib/resolve.js.map +1 -0
  84. package/dist/node_modules/.pnpm/import-meta-resolve@4.2.0/node_modules/import-meta-resolve/lib/utils.js +32 -0
  85. package/dist/node_modules/.pnpm/import-meta-resolve@4.2.0/node_modules/import-meta-resolve/lib/utils.js.map +1 -0
  86. package/dist/object.d.ts +2 -0
  87. package/dist/object.d.ts.map +1 -1
  88. package/dist/object.js +51 -0
  89. package/dist/object.js.map +1 -1
  90. package/dist/operation-permission.d.ts +10 -0
  91. package/dist/operation-permission.d.ts.map +1 -0
  92. package/dist/operation-permission.js +36 -0
  93. package/dist/operation-permission.js.map +1 -0
  94. package/dist/registry/class-registration.d.ts.map +1 -1
  95. package/dist/registry/class-registration.js +12 -0
  96. package/dist/registry/class-registration.js.map +1 -1
  97. package/dist/registry/types.d.ts +18 -3
  98. package/dist/registry/types.d.ts.map +1 -1
  99. package/dist/scanner/manifest-generator.d.ts.map +1 -1
  100. package/dist/scanner/manifest-generator.js +47 -0
  101. package/dist/scanner/manifest-generator.js.map +1 -1
  102. package/dist/scanner/types.d.ts +5 -0
  103. package/dist/scanner/types.d.ts.map +1 -1
  104. package/dist/scanner/types.js.map +1 -1
  105. package/dist/smrt-knowledge.json +18 -11
  106. package/dist/utils/import-project-vite.js +1 -1
  107. package/dist/utils/import-workspace-module.js +1 -1
  108. package/dist/vite-plugin/api-client-entries.d.ts.map +1 -1
  109. package/dist/vite-plugin/api-client-entries.js +1 -0
  110. package/dist/vite-plugin/api-client-entries.js.map +1 -1
  111. package/dist/vite-plugin/dev-plane-route.js +1 -1
  112. package/dist/vite-plugin/import-build-aware.js +1 -1
  113. package/dist/vite-plugin/index.js +1 -1
  114. package/dist/vite-plugin/resources-route.js +1 -1
  115. package/dist/vite-plugin/sveltekit-generator.d.ts +0 -4
  116. package/dist/vite-plugin/sveltekit-generator.d.ts.map +1 -1
  117. package/dist/vite-plugin/sveltekit-generator.js +37 -25
  118. package/dist/vite-plugin/sveltekit-generator.js.map +1 -1
  119. package/package.json +16 -10
@@ -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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"}
@@ -2,10 +2,11 @@ import { PRIVATE_READ_CACHE_CONTROL, canonicalReadRepresentation, computeBodyEta
2
2
  import { CRUD_OPERATIONS, SMRT_CUSTOM_ACTION_ERROR_METADATA_KEY, buildCustomActionInputSchema, buildCustomActionInvocationArgs, classifyMethodWireability, classifyParameterWireability, coerceCustomActionArgument, createClassNamePredicate, createManifestClassNamePredicate, customActionParameterInputName, declaredTypeAcceptsDate, declaresRuntimeRestRoute, declaresRuntimeRestRouteShape, isCrudOperation, isCrudToolAction, normalizeCustomActionFailure, queryStringDecoderFor, readMethodDecoratorConfig, resolveApiMethodExposure, resolveCustomActionMetadata, resolveDeclaredScopeMismatch, resolveEffectiveActionMetadata, toCustomActionBoolean, toCustomActionDate, toCustomActionNumber } from "./generators/custom-action.js";
3
3
  import { DEFAULT_EVENTS_HEARTBEAT_MS, DEFAULT_EVENTS_MAX_SUBSCRIBERS, DEFAULT_EVENTS_RETRY_AFTER_SECONDS, buildChangeEventStream, changeEventSubscribersAtCapacity, eventStreamCapacityExceededResponse, normalizeEventsMaxSubscribers, signalVisibleToTenant, tryReserveChangeEventSubscriberSlot } from "./generators/events-route.js";
4
4
  import { runWithTenantGate, setTenantEntryPointRunner } from "./generators/tenant-gate.js";
5
+ import { fieldTypeToJsonSchema } from "./generators/tool-schema.js";
5
6
  import { MCPGenerator, MCP_STABLE_CATALOG_TTL_MS, resolveMCPToolListCacheHint, sortMCPTools } from "./generators/mcp.js";
6
7
  import { PLAYBOOK_PREFLIGHT_CAPABILITY, PLAYBOOK_PREFLIGHT_ROUTE_SEGMENT, handlePlaybookPreflightRoute, isApiActionEnabledForObject, isRestActionRoutable, isRestRoutePublic, resolveRegisteredObjectName, restFieldReadPermissions, restMethodForApiAction } from "./generators/preflight-route.js";
7
8
  import { normalizeTypedHttpError } from "./generators/typed-http-error.js";
8
9
  import { APIGenerator, computeRuntimeWebManifestHash, createRestServer, startRestServer } from "./generators/rest.js";
9
10
  import { generateOpenAPISpec, setupSwaggerUI } from "./generators/swagger.js";
10
11
  import "./generators/index.js";
11
- export { APIGenerator, CRUD_OPERATIONS, DEFAULT_EVENTS_HEARTBEAT_MS, DEFAULT_EVENTS_MAX_SUBSCRIBERS, DEFAULT_EVENTS_RETRY_AFTER_SECONDS, MCPGenerator, MCP_STABLE_CATALOG_TTL_MS, PLAYBOOK_PREFLIGHT_CAPABILITY, PLAYBOOK_PREFLIGHT_ROUTE_SEGMENT, PRIVATE_READ_CACHE_CONTROL, SMRT_CUSTOM_ACTION_ERROR_METADATA_KEY, buildChangeEventStream, buildCustomActionInputSchema, buildCustomActionInvocationArgs, canonicalReadRepresentation, changeEventSubscribersAtCapacity, classifyMethodWireability, classifyParameterWireability, coerceCustomActionArgument, computeBodyEtag, computeRuntimeWebManifestHash, computeTableVersionEtag, conditionalJsonResponse, createClassNamePredicate, createManifestClassNamePredicate, createRestServer, customActionParameterInputName, declaredTypeAcceptsDate, declaresRuntimeRestRoute, declaresRuntimeRestRouteShape, eventStreamCapacityExceededResponse, generateOpenAPISpec, handlePlaybookPreflightRoute, ifNoneMatchHasConcreteMatch, ifNoneMatchSatisfied, isApiActionEnabledForObject, isCrudOperation, isCrudToolAction, isRestActionRoutable, isRestRoutePublic, normalizeCustomActionFailure, normalizeEventsMaxSubscribers, normalizeTypedHttpError, queryStringDecoderFor, readMethodDecoratorConfig, resolveApiMethodExposure, resolveCustomActionMetadata, resolveDeclaredScopeMismatch, resolveEffectiveActionMetadata, resolveMCPToolListCacheHint, resolveReadCacheControl, resolveRegisteredObjectName, resolveTenantEtagDiscriminator, restFieldReadPermissions, restMethodForApiAction, runWithTenantGate, setTenantEntryPointRunner, setupSwaggerUI, signalVisibleToTenant, sortMCPTools, startRestServer, toCustomActionBoolean, toCustomActionDate, toCustomActionNumber, tryReserveChangeEventSubscriberSlot, versionConditionalResponse, warnIfSharedCacheNeutralized };
12
+ export { APIGenerator, CRUD_OPERATIONS, DEFAULT_EVENTS_HEARTBEAT_MS, DEFAULT_EVENTS_MAX_SUBSCRIBERS, DEFAULT_EVENTS_RETRY_AFTER_SECONDS, MCPGenerator, MCP_STABLE_CATALOG_TTL_MS, PLAYBOOK_PREFLIGHT_CAPABILITY, PLAYBOOK_PREFLIGHT_ROUTE_SEGMENT, PRIVATE_READ_CACHE_CONTROL, SMRT_CUSTOM_ACTION_ERROR_METADATA_KEY, buildChangeEventStream, buildCustomActionInputSchema, buildCustomActionInvocationArgs, canonicalReadRepresentation, changeEventSubscribersAtCapacity, classifyMethodWireability, classifyParameterWireability, coerceCustomActionArgument, computeBodyEtag, computeRuntimeWebManifestHash, computeTableVersionEtag, conditionalJsonResponse, createClassNamePredicate, createManifestClassNamePredicate, createRestServer, customActionParameterInputName, declaredTypeAcceptsDate, declaresRuntimeRestRoute, declaresRuntimeRestRouteShape, eventStreamCapacityExceededResponse, fieldTypeToJsonSchema, generateOpenAPISpec, handlePlaybookPreflightRoute, ifNoneMatchHasConcreteMatch, ifNoneMatchSatisfied, isApiActionEnabledForObject, isCrudOperation, isCrudToolAction, isRestActionRoutable, isRestRoutePublic, normalizeCustomActionFailure, normalizeEventsMaxSubscribers, normalizeTypedHttpError, queryStringDecoderFor, readMethodDecoratorConfig, resolveApiMethodExposure, resolveCustomActionMetadata, resolveDeclaredScopeMismatch, resolveEffectiveActionMetadata, resolveMCPToolListCacheHint, resolveReadCacheControl, resolveRegisteredObjectName, resolveTenantEtagDiscriminator, restFieldReadPermissions, restMethodForApiAction, runWithTenantGate, setTenantEntryPointRunner, setupSwaggerUI, signalVisibleToTenant, sortMCPTools, startRestServer, toCustomActionBoolean, toCustomActionDate, toCustomActionNumber, tryReserveChangeEventSubscriberSlot, versionConditionalResponse, warnIfSharedCacheNeutralized };
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
@@ -68,9 +68,11 @@ import { CRUD_OPERATIONS, SMRT_CUSTOM_ACTION_ERROR_METADATA_KEY, buildCustomActi
68
68
  import { DEFAULT_EVENTS_HEARTBEAT_MS, DEFAULT_EVENTS_MAX_SUBSCRIBERS, DEFAULT_EVENTS_RETRY_AFTER_SECONDS, buildChangeEventStream, changeEventSubscribersAtCapacity, eventStreamCapacityExceededResponse, normalizeEventsMaxSubscribers, signalVisibleToTenant, tryReserveChangeEventSubscriberSlot } from "./generators/events-route.js";
69
69
  import { DEFAULT_DISPLAY_LABEL_FIELDS, FIELD_UI_FORMATS, FIELD_UI_FORMAT_TYPES, FIELD_UI_WIDGETS, FIELD_UI_WIDGET_TYPES, RELATIONSHIP_ROLES, describeDisplayLabel, displayLabelFieldProblem, findSelectorFor, isFieldUIFormat, isFieldUIWidget, isRelationshipRole, resolveDisplayLabelField } from "./ui-metadata.js";
70
70
  import { runWithTenantGate, setTenantEntryPointRunner } from "./generators/tenant-gate.js";
71
+ import { fieldTypeToJsonSchema } from "./generators/tool-schema.js";
71
72
  import { MCPGenerator, MCP_STABLE_CATALOG_TTL_MS, resolveMCPToolListCacheHint, sortMCPTools } from "./generators/mcp.js";
72
73
  import { PLAYBOOK_PREFLIGHT_CAPABILITY, PLAYBOOK_PREFLIGHT_ROUTE_SEGMENT, handlePlaybookPreflightRoute, isApiActionEnabledForObject, isRestActionRoutable, isRestRoutePublic, resolveRegisteredObjectName, restFieldReadPermissions, restMethodForApiAction } from "./generators/preflight-route.js";
73
74
  import { MAX_SYNC_APPLY_BATCH_SIZE, SYNC_APPLY_ROUTE_SEGMENTS, SYNC_APPLY_UUID_PATTERN, applySyncWritablePolicy, isStaleWrite, parseSyncApplyBatch, payloadMatchesRow, processSyncApplyBatch, validateSyncApplyItem } from "./sync/apply.js";
75
+ import { resolveOperationPermissionAlias } from "./operation-permission.js";
74
76
  import { normalizeTypedHttpError } from "./generators/typed-http-error.js";
75
77
  import { APIGenerator, computeRuntimeWebManifestHash, createRestServer, startRestServer } from "./generators/rest.js";
76
78
  import { generateOpenAPISpec, setupSwaggerUI } from "./generators/swagger.js";
@@ -110,4 +112,4 @@ import "./system/index.js";
110
112
  import { getTestDatabase } from "./testing/database.js";
111
113
  import "./tools/index.js";
112
114
  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 };
115
+ 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, fieldTypeToJsonSchema, 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 };
@@ -80,16 +80,25 @@ var PACKAGE_BROWSER_CAPABILITY = {
80
80
  "status": "server-only",
81
81
  "issues": [
82
82
  "#3615",
83
+ "#3616",
84
+ "#3617",
83
85
  "#3624",
86
+ "#3625",
84
87
  "#3626",
85
88
  "#3627"
86
89
  ],
87
90
  "reason": "@happyvertical/payments btcpay (node:crypto); core migrations (node:os). The jobs runner edge (#3615) is reported on smrt-jobs",
88
91
  "via": [
92
+ "@happyvertical/smrt-agents",
89
93
  "@happyvertical/smrt-jobs",
90
94
  "@happyvertical/smrt-ledgers",
95
+ "@happyvertical/smrt-products",
96
+ "@happyvertical/smrt-profiles",
97
+ "@happyvertical/smrt-reports",
98
+ "@happyvertical/smrt-secrets",
91
99
  "@happyvertical/smrt-subscriptions",
92
- "@happyvertical/smrt-tenancy"
100
+ "@happyvertical/smrt-tenancy",
101
+ "@happyvertical/smrt-users"
93
102
  ]
94
103
  },
95
104
  "@happyvertical/smrt-content": {
@@ -140,17 +149,26 @@ var PACKAGE_BROWSER_CAPABILITY = {
140
149
  "status": "server-only",
141
150
  "issues": [
142
151
  "#3615",
152
+ "#3616",
153
+ "#3617",
143
154
  "#3624",
155
+ "#3625",
144
156
  "#3626",
145
157
  "#3627"
146
158
  ],
147
159
  "reason": "node:crypto",
148
160
  "via": [
161
+ "@happyvertical/smrt-agents",
149
162
  "@happyvertical/smrt-commerce",
150
163
  "@happyvertical/smrt-jobs",
151
164
  "@happyvertical/smrt-ledgers",
165
+ "@happyvertical/smrt-products",
166
+ "@happyvertical/smrt-profiles",
167
+ "@happyvertical/smrt-reports",
168
+ "@happyvertical/smrt-secrets",
152
169
  "@happyvertical/smrt-subscriptions",
153
- "@happyvertical/smrt-tenancy"
170
+ "@happyvertical/smrt-tenancy",
171
+ "@happyvertical/smrt-users"
154
172
  ]
155
173
  },
156
174
  "@happyvertical/smrt-facts": {
@@ -341,15 +359,18 @@ var PACKAGE_BROWSER_CAPABILITY = {
341
359
  "@happyvertical/smrt-projects": {
342
360
  "status": "server-only",
343
361
  "issues": [
362
+ "#3617",
344
363
  "#3624",
345
364
  "#3626",
346
365
  "#3627"
347
366
  ],
348
367
  "reason": "node:crypto/async_hooks; core migrations; repos and ai SDKs",
349
368
  "via": [
369
+ "@happyvertical/smrt-profiles",
350
370
  "@happyvertical/smrt-subscriptions",
351
371
  "@happyvertical/smrt-tenancy",
352
- "@happyvertical/smrt-timesheets"
372
+ "@happyvertical/smrt-timesheets",
373
+ "@happyvertical/smrt-users"
353
374
  ]
354
375
  },
355
376
  "@happyvertical/smrt-prompts": {
@@ -462,9 +483,17 @@ var PACKAGE_BROWSER_CAPABILITY = {
462
483
  },
463
484
  "@happyvertical/smrt-timesheets": {
464
485
  "status": "server-only",
465
- "issues": ["#3624"],
486
+ "issues": [
487
+ "#3617",
488
+ "#3624",
489
+ "#3626"
490
+ ],
466
491
  "reason": "node:crypto",
467
- "via": ["@happyvertical/smrt-tenancy"]
492
+ "via": [
493
+ "@happyvertical/smrt-profiles",
494
+ "@happyvertical/smrt-tenancy",
495
+ "@happyvertical/smrt-users"
496
+ ]
468
497
  },
469
498
  "@happyvertical/smrt-users": {
470
499
  "status": "server-only",
@@ -1 +1 @@
1
- {"version":3,"file":"browser-capability.generated.js","names":[],"sources":["../../src/manifest/browser-capability.generated.ts"],"sourcesContent":["/**\n * GENERATED by packages/bundle-gate (browser-capability.spec.ts); do not edit.\n * Regenerate with `UPDATE_BROWSER_CAPABILITY=1 pnpm --filter\n * @happyvertical/smrt-bundle-gate test` after the browser gate's\n * expected-failures list or a package's dependencies change (#3709).\n *\n * Per-package browser capability derived from the browser gate (#3621): a\n * package is `server-only` when it, or a workspace package it depends on,\n * is listed as an expected failure. The manifest build emits the entry for the\n * package being built as `browser`, and uses it to classify its recipes.\n */\nimport type { PackageBrowserCapability } from '@happyvertical/smrt-types';\n\n// biome-ignore format: generated file, keep the generator's layout\nexport const PACKAGE_BROWSER_CAPABILITY: Readonly<Record<string, PackageBrowserCapability>> = {\n \"@happyvertical/smrt-ads\": {\"status\":\"server-only\",\"issues\":[\"#3624\"],\"via\":[\"@happyvertical/smrt-tenancy\"]},\n \"@happyvertical/smrt-agents\": {\"status\":\"server-only\",\"issues\":[\"#3615\",\"#3617\",\"#3624\",\"#3625\",\"#3626\",\"#3627\"],\"reason\":\"node:crypto in root; core migrations (node:os)\",\"via\":[\"@happyvertical/smrt-jobs\",\"@happyvertical/smrt-profiles\",\"@happyvertical/smrt-reports\",\"@happyvertical/smrt-secrets\",\"@happyvertical/smrt-tenancy\",\"@happyvertical/smrt-users\"]},\n \"@happyvertical/smrt-analytics\": {\"status\":\"server-only\",\"issues\":[\"#3624\"],\"via\":[\"@happyvertical/smrt-tenancy\"]},\n \"@happyvertical/smrt-approvals\": {\"status\":\"server-only\",\"issues\":[\"#3617\",\"#3624\",\"#3626\"],\"via\":[\"@happyvertical/smrt-profiles\",\"@happyvertical/smrt-tenancy\",\"@happyvertical/smrt-users\"]},\n \"@happyvertical/smrt-assets\": {\"status\":\"server-only\",\"issues\":[\"#3624\"],\"via\":[\"@happyvertical/smrt-tenancy\"]},\n \"@happyvertical/smrt-chat\": {\"status\":\"server-only\",\"issues\":[\"#3615\",\"#3617\",\"#3624\",\"#3625\",\"#3626\",\"#3627\",\"#3628\"],\"reason\":\"node:crypto + node:async_hooks\",\"via\":[\"@happyvertical/smrt-agents\",\"@happyvertical/smrt-images\",\"@happyvertical/smrt-jobs\",\"@happyvertical/smrt-profiles\",\"@happyvertical/smrt-reports\",\"@happyvertical/smrt-secrets\",\"@happyvertical/smrt-tenancy\",\"@happyvertical/smrt-users\"]},\n \"@happyvertical/smrt-comments\": {\"status\":\"server-only\",\"issues\":[\"#3624\"],\"via\":[\"@happyvertical/smrt-tenancy\"]},\n \"@happyvertical/smrt-commerce\": {\"status\":\"server-only\",\"issues\":[\"#3615\",\"#3624\",\"#3626\",\"#3627\"],\"reason\":\"@happyvertical/payments btcpay (node:crypto); core migrations (node:os). The jobs runner edge (#3615) is reported on smrt-jobs\",\"via\":[\"@happyvertical/smrt-jobs\",\"@happyvertical/smrt-ledgers\",\"@happyvertical/smrt-subscriptions\",\"@happyvertical/smrt-tenancy\"]},\n \"@happyvertical/smrt-content\": {\"status\":\"server-only\",\"issues\":[\"#3615\",\"#3617\",\"#3624\",\"#3625\",\"#3626\",\"#3627\",\"#3628\"],\"reason\":\"node:crypto; documents/spider/files/images/ai SDK graph (crawlee, undici, googleapis, native addons); CJS parse error\",\"via\":[\"@happyvertical/smrt-agents\",\"@happyvertical/smrt-chat\",\"@happyvertical/smrt-images\",\"@happyvertical/smrt-jobs\",\"@happyvertical/smrt-profiles\",\"@happyvertical/smrt-reports\",\"@happyvertical/smrt-secrets\",\"@happyvertical/smrt-tenancy\",\"@happyvertical/smrt-users\"]},\n \"@happyvertical/smrt-core\": {\"status\":\"server-only\",\"issues\":[\"#3635\"],\"reason\":\"model roots import server-only helpers (manifest loader, route helpers, startRestServer) the browser entry deliberately omits; core's own graph reaches no Node-only module (#2838, held by the browser-boundary core-entry test)\"},\n \"@happyvertical/smrt-events\": {\"status\":\"server-only\",\"issues\":[\"#3617\",\"#3624\",\"#3626\",\"#3627\"],\"reason\":\"node:crypto\",\"via\":[\"@happyvertical/smrt-places\",\"@happyvertical/smrt-profiles\",\"@happyvertical/smrt-tenancy\"]},\n \"@happyvertical/smrt-expenses\": {\"status\":\"server-only\",\"issues\":[\"#3615\",\"#3624\",\"#3626\",\"#3627\"],\"reason\":\"node:crypto\",\"via\":[\"@happyvertical/smrt-commerce\",\"@happyvertical/smrt-jobs\",\"@happyvertical/smrt-ledgers\",\"@happyvertical/smrt-subscriptions\",\"@happyvertical/smrt-tenancy\"]},\n \"@happyvertical/smrt-facts\": {\"status\":\"server-only\",\"issues\":[\"#3624\"],\"via\":[\"@happyvertical/smrt-tenancy\"]},\n \"@happyvertical/smrt-features\": {\"status\":\"server-only\",\"issues\":[\"#3618\"],\"reason\":\"imports core utils/import-workspace-module (node:url, node:fs, node:path)\"},\n \"@happyvertical/smrt-fields\": {\"status\":\"server-only\",\"issues\":[\"#3617\",\"#3618\",\"#3624\",\"#3626\"],\"reason\":\"imports core utils/import-workspace-module (node:url, node:fs, node:path)\",\"via\":[\"@happyvertical/smrt-profiles\",\"@happyvertical/smrt-tenancy\",\"@happyvertical/smrt-users\"]},\n \"@happyvertical/smrt-human-resources\": {\"status\":\"server-only\",\"issues\":[\"#3624\"],\"via\":[\"@happyvertical/smrt-tenancy\"]},\n \"@happyvertical/smrt-images\": {\"status\":\"server-only\",\"issues\":[\"#3624\",\"#3628\"],\"reason\":\"sharp, node:fs/promises, node:crypto, resvg native addon\",\"via\":[\"@happyvertical/smrt-tenancy\"]},\n \"@happyvertical/smrt-ingestion\": {\"status\":\"server-only\",\"issues\":[\"#3615\",\"#3617\",\"#3624\",\"#3625\",\"#3626\",\"#3627\"],\"via\":[\"@happyvertical/smrt-agents\",\"@happyvertical/smrt-jobs\",\"@happyvertical/smrt-profiles\",\"@happyvertical/smrt-reports\",\"@happyvertical/smrt-secrets\",\"@happyvertical/smrt-tenancy\",\"@happyvertical/smrt-users\"]},\n \"@happyvertical/smrt-inventory\": {\"status\":\"server-only\",\"issues\":[\"#3624\"],\"via\":[\"@happyvertical/smrt-tenancy\"]},\n \"@happyvertical/smrt-jobs\": {\"status\":\"server-only\",\"issues\":[\"#3615\",\"#3624\",\"#3627\"],\"reason\":\"worker_threads runner (the edge commerce inherits), node:events/crypto, bull/bullmq/cloud-tasks SDK graph\",\"via\":[\"@happyvertical/smrt-tenancy\"]},\n \"@happyvertical/smrt-languages\": {\"status\":\"server-only\",\"issues\":[\"#3615\",\"#3618\",\"#3624\",\"#3627\"],\"reason\":\"node:crypto\",\"via\":[\"@happyvertical/smrt-features\",\"@happyvertical/smrt-jobs\",\"@happyvertical/smrt-tenancy\"]},\n \"@happyvertical/smrt-ledgers\": {\"status\":\"server-only\",\"issues\":[\"#3624\",\"#3626\"],\"reason\":\"core migrations (node:os, node:crypto)\",\"via\":[\"@happyvertical/smrt-tenancy\"]},\n \"@happyvertical/smrt-manufacturing\": {\"status\":\"server-only\",\"issues\":[\"#3616\",\"#3624\",\"#3626\"],\"via\":[\"@happyvertical/smrt-products\",\"@happyvertical/smrt-tenancy\"]},\n \"@happyvertical/smrt-marketing\": {\"status\":\"server-only\",\"issues\":[\"#3624\"],\"via\":[\"@happyvertical/smrt-tenancy\"]},\n \"@happyvertical/smrt-messages\": {\"status\":\"server-only\",\"issues\":[\"#3617\",\"#3624\",\"#3626\",\"#3627\"],\"via\":[\"@happyvertical/smrt-profiles\",\"@happyvertical/smrt-secrets\",\"@happyvertical/smrt-tenancy\",\"@happyvertical/smrt-users\"]},\n \"@happyvertical/smrt-personas\": {\"status\":\"server-only\",\"issues\":[\"#3615\",\"#3617\",\"#3624\",\"#3625\",\"#3626\",\"#3627\"],\"via\":[\"@happyvertical/smrt-agents\",\"@happyvertical/smrt-jobs\",\"@happyvertical/smrt-profiles\",\"@happyvertical/smrt-reports\",\"@happyvertical/smrt-secrets\",\"@happyvertical/smrt-tenancy\",\"@happyvertical/smrt-users\"]},\n \"@happyvertical/smrt-places\": {\"status\":\"server-only\",\"issues\":[\"#3624\",\"#3627\"],\"reason\":\"geo -> cache -> redis, node:zlib; url-signature node:crypto\",\"via\":[\"@happyvertical/smrt-tenancy\"]},\n \"@happyvertical/smrt-playbooks\": {\"status\":\"server-only\",\"issues\":[\"#3624\"],\"via\":[\"@happyvertical/smrt-tenancy\"]},\n \"@happyvertical/smrt-preferences\": {\"status\":\"server-only\",\"issues\":[\"#3617\",\"#3624\",\"#3626\"],\"via\":[\"@happyvertical/smrt-profiles\",\"@happyvertical/smrt-tenancy\",\"@happyvertical/smrt-users\"]},\n \"@happyvertical/smrt-products\": {\"status\":\"server-only\",\"issues\":[\"#3616\",\"#3624\",\"#3626\"],\"reason\":\"server bootstrap (startRestServer, express/cors), core generators/mcp\",\"via\":[\"@happyvertical/smrt-tenancy\"]},\n \"@happyvertical/smrt-profiles\": {\"status\":\"server-only\",\"issues\":[\"#3617\",\"#3624\",\"#3626\"],\"reason\":\"node:crypto in root; core migrations (node:os)\",\"via\":[\"@happyvertical/smrt-tenancy\"]},\n \"@happyvertical/smrt-projects\": {\"status\":\"server-only\",\"issues\":[\"#3624\",\"#3626\",\"#3627\"],\"reason\":\"node:crypto/async_hooks; core migrations; repos and ai SDKs\",\"via\":[\"@happyvertical/smrt-subscriptions\",\"@happyvertical/smrt-tenancy\",\"@happyvertical/smrt-timesheets\"]},\n \"@happyvertical/smrt-prompts\": {\"status\":\"server-only\",\"issues\":[\"#3624\"],\"via\":[\"@happyvertical/smrt-tenancy\"]},\n \"@happyvertical/smrt-properties\": {\"status\":\"server-only\",\"issues\":[\"#3624\"],\"via\":[\"@happyvertical/smrt-tenancy\"]},\n \"@happyvertical/smrt-reports\": {\"status\":\"server-only\",\"issues\":[\"#3615\",\"#3624\",\"#3625\",\"#3627\"],\"reason\":\"node:crypto/events; @happyvertical/sql root: the sync query builders it needs (validateColumnName, buildWhere, buildAggregate, bucketExpr, tableExists) have no browser-safe SDK entry\",\"via\":[\"@happyvertical/smrt-jobs\",\"@happyvertical/smrt-tenancy\"]},\n \"@happyvertical/smrt-sales\": {\"status\":\"server-only\",\"issues\":[\"#3624\"],\"reason\":\"node:crypto\",\"via\":[\"@happyvertical/smrt-tenancy\"]},\n \"@happyvertical/smrt-secrets\": {\"status\":\"server-only\",\"issues\":[\"#3624\",\"#3627\"],\"reason\":\"@happyvertical/secrets (node:child_process, node:crypto) and sql\",\"via\":[\"@happyvertical/smrt-tenancy\"]},\n \"@happyvertical/smrt-sites\": {\"status\":\"server-only\",\"issues\":[\"#3624\"],\"via\":[\"@happyvertical/smrt-tenancy\"]},\n \"@happyvertical/smrt-social\": {\"status\":\"server-only\",\"issues\":[\"#3615\",\"#3617\",\"#3624\",\"#3625\",\"#3626\",\"#3627\",\"#3628\"],\"reason\":\"node:crypto\",\"via\":[\"@happyvertical/smrt-agents\",\"@happyvertical/smrt-chat\",\"@happyvertical/smrt-content\",\"@happyvertical/smrt-images\",\"@happyvertical/smrt-jobs\",\"@happyvertical/smrt-profiles\",\"@happyvertical/smrt-reports\",\"@happyvertical/smrt-secrets\",\"@happyvertical/smrt-tenancy\",\"@happyvertical/smrt-users\",\"@happyvertical/smrt-video\",\"@happyvertical/smrt-voice\"]},\n \"@happyvertical/smrt-subscriptions\": {\"status\":\"server-only\",\"issues\":[\"#3624\",\"#3626\"],\"reason\":\"core migrations (node:crypto, node:os)\",\"via\":[\"@happyvertical/smrt-tenancy\"]},\n \"@happyvertical/smrt-support\": {\"status\":\"server-only\",\"issues\":[\"#3615\",\"#3617\",\"#3624\",\"#3625\",\"#3626\",\"#3627\",\"#3628\"],\"reason\":\"core migrations (node:os)\",\"via\":[\"@happyvertical/smrt-agents\",\"@happyvertical/smrt-chat\",\"@happyvertical/smrt-images\",\"@happyvertical/smrt-jobs\",\"@happyvertical/smrt-profiles\",\"@happyvertical/smrt-projects\",\"@happyvertical/smrt-reports\",\"@happyvertical/smrt-secrets\",\"@happyvertical/smrt-subscriptions\",\"@happyvertical/smrt-tenancy\",\"@happyvertical/smrt-timesheets\",\"@happyvertical/smrt-users\"]},\n \"@happyvertical/smrt-tags\": {\"status\":\"server-only\",\"issues\":[\"#3624\"],\"via\":[\"@happyvertical/smrt-tenancy\"]},\n \"@happyvertical/smrt-tenancy\": {\"status\":\"server-only\",\"issues\":[\"#3624\"],\"reason\":\"node:async_hooks\"},\n \"@happyvertical/smrt-timesheets\": {\"status\":\"server-only\",\"issues\":[\"#3624\"],\"reason\":\"node:crypto\",\"via\":[\"@happyvertical/smrt-tenancy\"]},\n \"@happyvertical/smrt-users\": {\"status\":\"server-only\",\"issues\":[\"#3617\",\"#3624\",\"#3626\"],\"reason\":\"node:crypto/async_hooks; core migrations\",\"via\":[\"@happyvertical/smrt-profiles\",\"@happyvertical/smrt-tenancy\"]},\n \"@happyvertical/smrt-video\": {\"status\":\"server-only\",\"issues\":[\"#3615\",\"#3617\",\"#3624\",\"#3625\",\"#3626\",\"#3627\",\"#3628\"],\"reason\":\"documents/spider SDK graph; CJS parse error\",\"via\":[\"@happyvertical/smrt-agents\",\"@happyvertical/smrt-chat\",\"@happyvertical/smrt-content\",\"@happyvertical/smrt-images\",\"@happyvertical/smrt-jobs\",\"@happyvertical/smrt-profiles\",\"@happyvertical/smrt-reports\",\"@happyvertical/smrt-secrets\",\"@happyvertical/smrt-tenancy\",\"@happyvertical/smrt-users\",\"@happyvertical/smrt-voice\"]},\n \"@happyvertical/smrt-voice\": {\"status\":\"server-only\",\"issues\":[\"#3615\",\"#3617\",\"#3624\",\"#3625\",\"#3626\",\"#3627\",\"#3628\"],\"reason\":\"documents/spider SDK graph; CJS parse error\",\"via\":[\"@happyvertical/smrt-agents\",\"@happyvertical/smrt-chat\",\"@happyvertical/smrt-content\",\"@happyvertical/smrt-images\",\"@happyvertical/smrt-jobs\",\"@happyvertical/smrt-profiles\",\"@happyvertical/smrt-reports\",\"@happyvertical/smrt-secrets\",\"@happyvertical/smrt-tenancy\",\"@happyvertical/smrt-users\"]},\n \"@happyvertical/smrt-webhooks\": {\"status\":\"server-only\",\"issues\":[\"#3615\",\"#3624\",\"#3627\",\"#3717\"],\"reason\":\"Intentionally server-only outbound delivery: node:crypto HMAC and node:https/dns/net pinned transport enforce signing and SSRF protection. Browser hosts use the separate /svelte admin export with authenticated server callbacks.\",\"via\":[\"@happyvertical/smrt-jobs\",\"@happyvertical/smrt-tenancy\"]},\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"browser-capability.generated.js","names":[],"sources":["../../src/manifest/browser-capability.generated.ts"],"sourcesContent":["/**\n * GENERATED by packages/bundle-gate (browser-capability.spec.ts); do not edit.\n * Regenerate with `UPDATE_BROWSER_CAPABILITY=1 pnpm --filter\n * @happyvertical/smrt-bundle-gate test` after the browser gate's\n * expected-failures list or a package's dependencies change (#3709).\n *\n * Per-package browser capability derived from the browser gate (#3621): a\n * package is `server-only` when it, or a workspace package it depends on,\n * is listed as an expected failure. The manifest build emits the entry for the\n * package being built as `browser`, and uses it to classify its recipes.\n */\nimport type { PackageBrowserCapability } from '@happyvertical/smrt-types';\n\n// biome-ignore format: generated file, keep the generator's layout\nexport const PACKAGE_BROWSER_CAPABILITY: Readonly<Record<string, PackageBrowserCapability>> = {\n \"@happyvertical/smrt-ads\": {\"status\":\"server-only\",\"issues\":[\"#3624\"],\"via\":[\"@happyvertical/smrt-tenancy\"]},\n \"@happyvertical/smrt-agents\": {\"status\":\"server-only\",\"issues\":[\"#3615\",\"#3617\",\"#3624\",\"#3625\",\"#3626\",\"#3627\"],\"reason\":\"node:crypto in root; core migrations (node:os)\",\"via\":[\"@happyvertical/smrt-jobs\",\"@happyvertical/smrt-profiles\",\"@happyvertical/smrt-reports\",\"@happyvertical/smrt-secrets\",\"@happyvertical/smrt-tenancy\",\"@happyvertical/smrt-users\"]},\n \"@happyvertical/smrt-analytics\": {\"status\":\"server-only\",\"issues\":[\"#3624\"],\"via\":[\"@happyvertical/smrt-tenancy\"]},\n \"@happyvertical/smrt-approvals\": {\"status\":\"server-only\",\"issues\":[\"#3617\",\"#3624\",\"#3626\"],\"via\":[\"@happyvertical/smrt-profiles\",\"@happyvertical/smrt-tenancy\",\"@happyvertical/smrt-users\"]},\n \"@happyvertical/smrt-assets\": {\"status\":\"server-only\",\"issues\":[\"#3624\"],\"via\":[\"@happyvertical/smrt-tenancy\"]},\n \"@happyvertical/smrt-chat\": {\"status\":\"server-only\",\"issues\":[\"#3615\",\"#3617\",\"#3624\",\"#3625\",\"#3626\",\"#3627\",\"#3628\"],\"reason\":\"node:crypto + node:async_hooks\",\"via\":[\"@happyvertical/smrt-agents\",\"@happyvertical/smrt-images\",\"@happyvertical/smrt-jobs\",\"@happyvertical/smrt-profiles\",\"@happyvertical/smrt-reports\",\"@happyvertical/smrt-secrets\",\"@happyvertical/smrt-tenancy\",\"@happyvertical/smrt-users\"]},\n \"@happyvertical/smrt-comments\": {\"status\":\"server-only\",\"issues\":[\"#3624\"],\"via\":[\"@happyvertical/smrt-tenancy\"]},\n \"@happyvertical/smrt-commerce\": {\"status\":\"server-only\",\"issues\":[\"#3615\",\"#3616\",\"#3617\",\"#3624\",\"#3625\",\"#3626\",\"#3627\"],\"reason\":\"@happyvertical/payments btcpay (node:crypto); core migrations (node:os). The jobs runner edge (#3615) is reported on smrt-jobs\",\"via\":[\"@happyvertical/smrt-agents\",\"@happyvertical/smrt-jobs\",\"@happyvertical/smrt-ledgers\",\"@happyvertical/smrt-products\",\"@happyvertical/smrt-profiles\",\"@happyvertical/smrt-reports\",\"@happyvertical/smrt-secrets\",\"@happyvertical/smrt-subscriptions\",\"@happyvertical/smrt-tenancy\",\"@happyvertical/smrt-users\"]},\n \"@happyvertical/smrt-content\": {\"status\":\"server-only\",\"issues\":[\"#3615\",\"#3617\",\"#3624\",\"#3625\",\"#3626\",\"#3627\",\"#3628\"],\"reason\":\"node:crypto; documents/spider/files/images/ai SDK graph (crawlee, undici, googleapis, native addons); CJS parse error\",\"via\":[\"@happyvertical/smrt-agents\",\"@happyvertical/smrt-chat\",\"@happyvertical/smrt-images\",\"@happyvertical/smrt-jobs\",\"@happyvertical/smrt-profiles\",\"@happyvertical/smrt-reports\",\"@happyvertical/smrt-secrets\",\"@happyvertical/smrt-tenancy\",\"@happyvertical/smrt-users\"]},\n \"@happyvertical/smrt-core\": {\"status\":\"server-only\",\"issues\":[\"#3635\"],\"reason\":\"model roots import server-only helpers (manifest loader, route helpers, startRestServer) the browser entry deliberately omits; core's own graph reaches no Node-only module (#2838, held by the browser-boundary core-entry test)\"},\n \"@happyvertical/smrt-events\": {\"status\":\"server-only\",\"issues\":[\"#3617\",\"#3624\",\"#3626\",\"#3627\"],\"reason\":\"node:crypto\",\"via\":[\"@happyvertical/smrt-places\",\"@happyvertical/smrt-profiles\",\"@happyvertical/smrt-tenancy\"]},\n \"@happyvertical/smrt-expenses\": {\"status\":\"server-only\",\"issues\":[\"#3615\",\"#3616\",\"#3617\",\"#3624\",\"#3625\",\"#3626\",\"#3627\"],\"reason\":\"node:crypto\",\"via\":[\"@happyvertical/smrt-agents\",\"@happyvertical/smrt-commerce\",\"@happyvertical/smrt-jobs\",\"@happyvertical/smrt-ledgers\",\"@happyvertical/smrt-products\",\"@happyvertical/smrt-profiles\",\"@happyvertical/smrt-reports\",\"@happyvertical/smrt-secrets\",\"@happyvertical/smrt-subscriptions\",\"@happyvertical/smrt-tenancy\",\"@happyvertical/smrt-users\"]},\n \"@happyvertical/smrt-facts\": {\"status\":\"server-only\",\"issues\":[\"#3624\"],\"via\":[\"@happyvertical/smrt-tenancy\"]},\n \"@happyvertical/smrt-features\": {\"status\":\"server-only\",\"issues\":[\"#3618\"],\"reason\":\"imports core utils/import-workspace-module (node:url, node:fs, node:path)\"},\n \"@happyvertical/smrt-fields\": {\"status\":\"server-only\",\"issues\":[\"#3617\",\"#3618\",\"#3624\",\"#3626\"],\"reason\":\"imports core utils/import-workspace-module (node:url, node:fs, node:path)\",\"via\":[\"@happyvertical/smrt-profiles\",\"@happyvertical/smrt-tenancy\",\"@happyvertical/smrt-users\"]},\n \"@happyvertical/smrt-human-resources\": {\"status\":\"server-only\",\"issues\":[\"#3624\"],\"via\":[\"@happyvertical/smrt-tenancy\"]},\n \"@happyvertical/smrt-images\": {\"status\":\"server-only\",\"issues\":[\"#3624\",\"#3628\"],\"reason\":\"sharp, node:fs/promises, node:crypto, resvg native addon\",\"via\":[\"@happyvertical/smrt-tenancy\"]},\n \"@happyvertical/smrt-ingestion\": {\"status\":\"server-only\",\"issues\":[\"#3615\",\"#3617\",\"#3624\",\"#3625\",\"#3626\",\"#3627\"],\"via\":[\"@happyvertical/smrt-agents\",\"@happyvertical/smrt-jobs\",\"@happyvertical/smrt-profiles\",\"@happyvertical/smrt-reports\",\"@happyvertical/smrt-secrets\",\"@happyvertical/smrt-tenancy\",\"@happyvertical/smrt-users\"]},\n \"@happyvertical/smrt-inventory\": {\"status\":\"server-only\",\"issues\":[\"#3624\"],\"via\":[\"@happyvertical/smrt-tenancy\"]},\n \"@happyvertical/smrt-jobs\": {\"status\":\"server-only\",\"issues\":[\"#3615\",\"#3624\",\"#3627\"],\"reason\":\"worker_threads runner (the edge commerce inherits), node:events/crypto, bull/bullmq/cloud-tasks SDK graph\",\"via\":[\"@happyvertical/smrt-tenancy\"]},\n \"@happyvertical/smrt-languages\": {\"status\":\"server-only\",\"issues\":[\"#3615\",\"#3618\",\"#3624\",\"#3627\"],\"reason\":\"node:crypto\",\"via\":[\"@happyvertical/smrt-features\",\"@happyvertical/smrt-jobs\",\"@happyvertical/smrt-tenancy\"]},\n \"@happyvertical/smrt-ledgers\": {\"status\":\"server-only\",\"issues\":[\"#3624\",\"#3626\"],\"reason\":\"core migrations (node:os, node:crypto)\",\"via\":[\"@happyvertical/smrt-tenancy\"]},\n \"@happyvertical/smrt-manufacturing\": {\"status\":\"server-only\",\"issues\":[\"#3616\",\"#3624\",\"#3626\"],\"via\":[\"@happyvertical/smrt-products\",\"@happyvertical/smrt-tenancy\"]},\n \"@happyvertical/smrt-marketing\": {\"status\":\"server-only\",\"issues\":[\"#3624\"],\"via\":[\"@happyvertical/smrt-tenancy\"]},\n \"@happyvertical/smrt-messages\": {\"status\":\"server-only\",\"issues\":[\"#3617\",\"#3624\",\"#3626\",\"#3627\"],\"via\":[\"@happyvertical/smrt-profiles\",\"@happyvertical/smrt-secrets\",\"@happyvertical/smrt-tenancy\",\"@happyvertical/smrt-users\"]},\n \"@happyvertical/smrt-personas\": {\"status\":\"server-only\",\"issues\":[\"#3615\",\"#3617\",\"#3624\",\"#3625\",\"#3626\",\"#3627\"],\"via\":[\"@happyvertical/smrt-agents\",\"@happyvertical/smrt-jobs\",\"@happyvertical/smrt-profiles\",\"@happyvertical/smrt-reports\",\"@happyvertical/smrt-secrets\",\"@happyvertical/smrt-tenancy\",\"@happyvertical/smrt-users\"]},\n \"@happyvertical/smrt-places\": {\"status\":\"server-only\",\"issues\":[\"#3624\",\"#3627\"],\"reason\":\"geo -> cache -> redis, node:zlib; url-signature node:crypto\",\"via\":[\"@happyvertical/smrt-tenancy\"]},\n \"@happyvertical/smrt-playbooks\": {\"status\":\"server-only\",\"issues\":[\"#3624\"],\"via\":[\"@happyvertical/smrt-tenancy\"]},\n \"@happyvertical/smrt-preferences\": {\"status\":\"server-only\",\"issues\":[\"#3617\",\"#3624\",\"#3626\"],\"via\":[\"@happyvertical/smrt-profiles\",\"@happyvertical/smrt-tenancy\",\"@happyvertical/smrt-users\"]},\n \"@happyvertical/smrt-products\": {\"status\":\"server-only\",\"issues\":[\"#3616\",\"#3624\",\"#3626\"],\"reason\":\"server bootstrap (startRestServer, express/cors), core generators/mcp\",\"via\":[\"@happyvertical/smrt-tenancy\"]},\n \"@happyvertical/smrt-profiles\": {\"status\":\"server-only\",\"issues\":[\"#3617\",\"#3624\",\"#3626\"],\"reason\":\"node:crypto in root; core migrations (node:os)\",\"via\":[\"@happyvertical/smrt-tenancy\"]},\n \"@happyvertical/smrt-projects\": {\"status\":\"server-only\",\"issues\":[\"#3617\",\"#3624\",\"#3626\",\"#3627\"],\"reason\":\"node:crypto/async_hooks; core migrations; repos and ai SDKs\",\"via\":[\"@happyvertical/smrt-profiles\",\"@happyvertical/smrt-subscriptions\",\"@happyvertical/smrt-tenancy\",\"@happyvertical/smrt-timesheets\",\"@happyvertical/smrt-users\"]},\n \"@happyvertical/smrt-prompts\": {\"status\":\"server-only\",\"issues\":[\"#3624\"],\"via\":[\"@happyvertical/smrt-tenancy\"]},\n \"@happyvertical/smrt-properties\": {\"status\":\"server-only\",\"issues\":[\"#3624\"],\"via\":[\"@happyvertical/smrt-tenancy\"]},\n \"@happyvertical/smrt-reports\": {\"status\":\"server-only\",\"issues\":[\"#3615\",\"#3624\",\"#3625\",\"#3627\"],\"reason\":\"node:crypto/events; @happyvertical/sql root: the sync query builders it needs (validateColumnName, buildWhere, buildAggregate, bucketExpr, tableExists) have no browser-safe SDK entry\",\"via\":[\"@happyvertical/smrt-jobs\",\"@happyvertical/smrt-tenancy\"]},\n \"@happyvertical/smrt-sales\": {\"status\":\"server-only\",\"issues\":[\"#3624\"],\"reason\":\"node:crypto\",\"via\":[\"@happyvertical/smrt-tenancy\"]},\n \"@happyvertical/smrt-secrets\": {\"status\":\"server-only\",\"issues\":[\"#3624\",\"#3627\"],\"reason\":\"@happyvertical/secrets (node:child_process, node:crypto) and sql\",\"via\":[\"@happyvertical/smrt-tenancy\"]},\n \"@happyvertical/smrt-sites\": {\"status\":\"server-only\",\"issues\":[\"#3624\"],\"via\":[\"@happyvertical/smrt-tenancy\"]},\n \"@happyvertical/smrt-social\": {\"status\":\"server-only\",\"issues\":[\"#3615\",\"#3617\",\"#3624\",\"#3625\",\"#3626\",\"#3627\",\"#3628\"],\"reason\":\"node:crypto\",\"via\":[\"@happyvertical/smrt-agents\",\"@happyvertical/smrt-chat\",\"@happyvertical/smrt-content\",\"@happyvertical/smrt-images\",\"@happyvertical/smrt-jobs\",\"@happyvertical/smrt-profiles\",\"@happyvertical/smrt-reports\",\"@happyvertical/smrt-secrets\",\"@happyvertical/smrt-tenancy\",\"@happyvertical/smrt-users\",\"@happyvertical/smrt-video\",\"@happyvertical/smrt-voice\"]},\n \"@happyvertical/smrt-subscriptions\": {\"status\":\"server-only\",\"issues\":[\"#3624\",\"#3626\"],\"reason\":\"core migrations (node:crypto, node:os)\",\"via\":[\"@happyvertical/smrt-tenancy\"]},\n \"@happyvertical/smrt-support\": {\"status\":\"server-only\",\"issues\":[\"#3615\",\"#3617\",\"#3624\",\"#3625\",\"#3626\",\"#3627\",\"#3628\"],\"reason\":\"core migrations (node:os)\",\"via\":[\"@happyvertical/smrt-agents\",\"@happyvertical/smrt-chat\",\"@happyvertical/smrt-images\",\"@happyvertical/smrt-jobs\",\"@happyvertical/smrt-profiles\",\"@happyvertical/smrt-projects\",\"@happyvertical/smrt-reports\",\"@happyvertical/smrt-secrets\",\"@happyvertical/smrt-subscriptions\",\"@happyvertical/smrt-tenancy\",\"@happyvertical/smrt-timesheets\",\"@happyvertical/smrt-users\"]},\n \"@happyvertical/smrt-tags\": {\"status\":\"server-only\",\"issues\":[\"#3624\"],\"via\":[\"@happyvertical/smrt-tenancy\"]},\n \"@happyvertical/smrt-tenancy\": {\"status\":\"server-only\",\"issues\":[\"#3624\"],\"reason\":\"node:async_hooks\"},\n \"@happyvertical/smrt-timesheets\": {\"status\":\"server-only\",\"issues\":[\"#3617\",\"#3624\",\"#3626\"],\"reason\":\"node:crypto\",\"via\":[\"@happyvertical/smrt-profiles\",\"@happyvertical/smrt-tenancy\",\"@happyvertical/smrt-users\"]},\n \"@happyvertical/smrt-users\": {\"status\":\"server-only\",\"issues\":[\"#3617\",\"#3624\",\"#3626\"],\"reason\":\"node:crypto/async_hooks; core migrations\",\"via\":[\"@happyvertical/smrt-profiles\",\"@happyvertical/smrt-tenancy\"]},\n \"@happyvertical/smrt-video\": {\"status\":\"server-only\",\"issues\":[\"#3615\",\"#3617\",\"#3624\",\"#3625\",\"#3626\",\"#3627\",\"#3628\"],\"reason\":\"documents/spider SDK graph; CJS parse error\",\"via\":[\"@happyvertical/smrt-agents\",\"@happyvertical/smrt-chat\",\"@happyvertical/smrt-content\",\"@happyvertical/smrt-images\",\"@happyvertical/smrt-jobs\",\"@happyvertical/smrt-profiles\",\"@happyvertical/smrt-reports\",\"@happyvertical/smrt-secrets\",\"@happyvertical/smrt-tenancy\",\"@happyvertical/smrt-users\",\"@happyvertical/smrt-voice\"]},\n \"@happyvertical/smrt-voice\": {\"status\":\"server-only\",\"issues\":[\"#3615\",\"#3617\",\"#3624\",\"#3625\",\"#3626\",\"#3627\",\"#3628\"],\"reason\":\"documents/spider SDK graph; CJS parse error\",\"via\":[\"@happyvertical/smrt-agents\",\"@happyvertical/smrt-chat\",\"@happyvertical/smrt-content\",\"@happyvertical/smrt-images\",\"@happyvertical/smrt-jobs\",\"@happyvertical/smrt-profiles\",\"@happyvertical/smrt-reports\",\"@happyvertical/smrt-secrets\",\"@happyvertical/smrt-tenancy\",\"@happyvertical/smrt-users\"]},\n \"@happyvertical/smrt-webhooks\": {\"status\":\"server-only\",\"issues\":[\"#3615\",\"#3624\",\"#3627\",\"#3717\"],\"reason\":\"Intentionally server-only outbound delivery: node:crypto HMAC and node:https/dns/net pinned transport enforce signing and SSRF protection. Browser hosts use the separate /svelte admin export with authenticated server callbacks.\",\"via\":[\"@happyvertical/smrt-jobs\",\"@happyvertical/smrt-tenancy\"]},\n};\n"],"mappings":"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"}
@@ -3,8 +3,8 @@ import { ManifestGenerator } from "../scanner/manifest-generator.js";
3
3
  import { ManifestManager } from "./manager.js";
4
4
  import { ManifestBuilder } from "./generator.js";
5
5
  import { dirname, join } from "node:path";
6
- import { existsSync, readFileSync } from "node:fs";
7
6
  import { fileURLToPath } from "node:url";
7
+ import { existsSync, readFileSync } from "node:fs";
8
8
  //#region src/manifest/index.ts
9
9
  /**
10
10
  * Static manifest module for runtime use
@@ -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.1",
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,