@happyvertical/smrt-core 0.36.8 → 0.37.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 (70) hide show
  1. package/dist/child-accessors.d.ts +1 -1
  2. package/dist/child-accessors.d.ts.map +1 -1
  3. package/dist/child-accessors.js +1 -1
  4. package/dist/child-accessors.js.map +1 -1
  5. package/dist/class.d.ts.map +1 -1
  6. package/dist/class.js +3 -1
  7. package/dist/class.js.map +1 -1
  8. package/dist/collection-cache.d.ts.map +1 -1
  9. package/dist/collection-cache.js +5 -3
  10. package/dist/collection-cache.js.map +1 -1
  11. package/dist/collection.d.ts +39 -16
  12. package/dist/collection.d.ts.map +1 -1
  13. package/dist/collection.js +40 -19
  14. package/dist/collection.js.map +1 -1
  15. package/dist/decorators/compatibility.d.ts +1 -1
  16. package/dist/decorators/compatibility.d.ts.map +1 -1
  17. package/dist/decorators/compatibility.js.map +1 -1
  18. package/dist/decorators/index.d.ts +4 -4
  19. package/dist/decorators/index.d.ts.map +1 -1
  20. package/dist/decorators/index.js.map +1 -1
  21. package/dist/hierarchical.d.ts.map +1 -1
  22. package/dist/hierarchical.js.map +1 -1
  23. package/dist/junction.d.ts.map +1 -1
  24. package/dist/junction.js.map +1 -1
  25. package/dist/manifest/static-manifest.d.ts.map +1 -1
  26. package/dist/manifest/static-manifest.js +39 -20
  27. package/dist/manifest/static-manifest.js.map +1 -1
  28. package/dist/manifest/store.js +2 -2
  29. package/dist/manifest/store.js.map +1 -1
  30. package/dist/manifest/test-manifest-stub.d.ts.map +1 -1
  31. package/dist/manifest/test-manifest-stub.js +2301 -629
  32. package/dist/manifest/test-manifest-stub.js.map +1 -1
  33. package/dist/manifest.json +39 -20
  34. package/dist/object.d.ts +64 -17
  35. package/dist/object.d.ts.map +1 -1
  36. package/dist/object.js +76 -30
  37. package/dist/object.js.map +1 -1
  38. package/dist/registry/class-registration.d.ts +3 -3
  39. package/dist/registry/class-registration.d.ts.map +1 -1
  40. package/dist/registry/class-registration.js +39 -42
  41. package/dist/registry/class-registration.js.map +1 -1
  42. package/dist/registry/inheritance-resolver.d.ts +17 -3
  43. package/dist/registry/inheritance-resolver.d.ts.map +1 -1
  44. package/dist/registry/inheritance-resolver.js +1 -1
  45. package/dist/registry/inheritance-resolver.js.map +1 -1
  46. package/dist/registry/manifest-field-merge.d.ts +17 -3
  47. package/dist/registry/manifest-field-merge.d.ts.map +1 -1
  48. package/dist/registry/manifest-field-merge.js +8 -6
  49. package/dist/registry/manifest-field-merge.js.map +1 -1
  50. package/dist/registry/schema-builder.d.ts +1 -1
  51. package/dist/registry/schema-builder.d.ts.map +1 -1
  52. package/dist/registry/schema-builder.js.map +1 -1
  53. package/dist/registry/shared-state.d.ts +3 -3
  54. package/dist/registry/shared-state.d.ts.map +1 -1
  55. package/dist/registry/shared-state.js.map +1 -1
  56. package/dist/registry/types.d.ts +78 -19
  57. package/dist/registry/types.d.ts.map +1 -1
  58. package/dist/registry/validator.d.ts +2 -1
  59. package/dist/registry/validator.d.ts.map +1 -1
  60. package/dist/registry/validator.js +38 -39
  61. package/dist/registry/validator.js.map +1 -1
  62. package/dist/registry.d.ts +84 -57
  63. package/dist/registry.d.ts.map +1 -1
  64. package/dist/registry.js +31 -25
  65. package/dist/registry.js.map +1 -1
  66. package/dist/smrt-knowledge.json +5 -4
  67. package/dist/system-fields.d.ts +1 -1
  68. package/dist/system-fields.d.ts.map +1 -1
  69. package/dist/system-fields.js.map +1 -1
  70. package/package.json +4 -4
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "generatedAt": "2026-06-27T01:14:00.669Z",
3
+ "generatedAt": "2026-06-28T21:50:13.218Z",
4
4
  "packageName": "@happyvertical/smrt-core",
5
- "packageVersion": "0.36.8",
5
+ "packageVersion": "0.37.0",
6
6
  "sourceManifestPath": "dist/manifest.json",
7
7
  "agentDocPath": "AGENTS.md",
8
8
  "sourceHashes": {
9
- "manifest": "f6d925123af81ea6f1dc386db1506f2be958e64c63477733123a97fdefbeb949",
10
- "packageJson": "25e74d4d307a7ae5c9a780cbe3953464e5a652d32d00951ac8c85b804656c52d",
9
+ "manifest": "228c618bac6711779d5916ec5eb8dcf639cd2c839b2db9d7651efd4e6263a674",
10
+ "packageJson": "a9eccb9bd2f7403e3ce3b5b2f39f8f8152d7c69c78904e2c4bddd25b32711a6f",
11
11
  "agents": "0fa157a078aa44a0bc104540bd27f0b1e52e66549b7994cba751438a8d44c827"
12
12
  },
13
13
  "exports": [
@@ -220,6 +220,7 @@
220
220
  ],
221
221
  "relationships": [],
222
222
  "methods": [
223
+ "_setLoadedRelationship",
223
224
  "classifyConstraintError",
224
225
  "clearEmbeddings",
225
226
  "delete",
@@ -2,5 +2,5 @@ import { FieldDefinition } from './scanner/types.js';
2
2
  export declare const SMRT_SYSTEM_FIELDS: Readonly<Record<string, FieldDefinition>>;
3
3
  export declare function isInjectedSmrtSystemField(field: unknown): boolean;
4
4
  export declare function cloneSmrtSystemFields(): Record<string, FieldDefinition>;
5
- export declare function prependSmrtSystemFields(fields: Map<string, FieldDefinition>): Map<string, FieldDefinition>;
5
+ export declare function prependSmrtSystemFields<T extends FieldDefinition>(fields: Map<string, T>): Map<string, T>;
6
6
  //# sourceMappingURL=system-fields.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"system-fields.d.ts","sourceRoot":"","sources":["../src/system-fields.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAsBrE,CAAC;AAEL,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAIjE;AAED,wBAAgB,qBAAqB,IAAI,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAWvE;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,GACnC,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAe9B"}
1
+ {"version":3,"file":"system-fields.d.ts","sourceRoot":"","sources":["../src/system-fields.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAsBrE,CAAC;AAEL,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAIjE;AAED,wBAAgB,qBAAqB,IAAI,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAWvE;AAED,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,eAAe,EAC/D,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,GACrB,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAqBhB"}
@@ -1 +1 @@
1
- {"version":3,"file":"system-fields.js","sources":["../src/system-fields.ts"],"sourcesContent":["/**\n * Canonical SMRT system fields inherited from `SmrtObject`.\n *\n * These fields exist on every persistent object at runtime even when they are\n * not declared in a child class manifest. Keep this definition lightweight:\n * presence matters for metadata consumers, while schema generation still owns\n * the exact SQL defaults and constraints for these columns.\n */\n\nimport type { FieldDefinition } from './scanner/types.js';\n\nexport const SMRT_SYSTEM_FIELDS: Readonly<Record<string, FieldDefinition>> =\n Object.freeze({\n id: Object.freeze({\n type: 'text',\n _meta: Object.freeze({ __smrtSystemField: true }),\n }),\n slug: Object.freeze({\n type: 'text',\n _meta: Object.freeze({ __smrtSystemField: true }),\n }),\n context: Object.freeze({\n type: 'text',\n _meta: Object.freeze({ __smrtSystemField: true }),\n }),\n created_at: Object.freeze({\n type: 'datetime',\n _meta: Object.freeze({ __smrtSystemField: true }),\n }),\n updated_at: Object.freeze({\n type: 'datetime',\n _meta: Object.freeze({ __smrtSystemField: true }),\n }),\n });\n\nexport function isInjectedSmrtSystemField(field: unknown): boolean {\n const meta = (field as { _meta?: { __smrtSystemField?: unknown } } | null)\n ?._meta;\n return Boolean(meta?.__smrtSystemField);\n}\n\nexport function cloneSmrtSystemFields(): Record<string, FieldDefinition> {\n const fields: Record<string, FieldDefinition> = {};\n\n for (const [fieldName, fieldDef] of Object.entries(SMRT_SYSTEM_FIELDS)) {\n fields[fieldName] = {\n ...fieldDef,\n _meta: { ...(fieldDef._meta || {}) },\n };\n }\n\n return fields;\n}\n\nexport function prependSmrtSystemFields(\n fields: Map<string, FieldDefinition>,\n): Map<string, FieldDefinition> {\n const merged = new Map<string, FieldDefinition>();\n\n for (const [fieldName, fieldDef] of Object.entries(cloneSmrtSystemFields())) {\n merged.set(fieldName, fieldDef);\n }\n\n for (const [fieldName, fieldDef] of fields.entries()) {\n if (isInjectedSmrtSystemField(fieldDef) && merged.has(fieldName)) {\n continue;\n }\n merged.set(fieldName, fieldDef);\n }\n\n return merged;\n}\n"],"names":[],"mappings":"AAWO,MAAM,qBACX,OAAO,OAAO;AAAA,EACZ,IAAI,OAAO,OAAO;AAAA,IAChB,MAAM;AAAA,IACN,OAAO,OAAO,OAAO,EAAE,mBAAmB,MAAM;AAAA,EAAA,CACjD;AAAA,EACD,MAAM,OAAO,OAAO;AAAA,IAClB,MAAM;AAAA,IACN,OAAO,OAAO,OAAO,EAAE,mBAAmB,MAAM;AAAA,EAAA,CACjD;AAAA,EACD,SAAS,OAAO,OAAO;AAAA,IACrB,MAAM;AAAA,IACN,OAAO,OAAO,OAAO,EAAE,mBAAmB,MAAM;AAAA,EAAA,CACjD;AAAA,EACD,YAAY,OAAO,OAAO;AAAA,IACxB,MAAM;AAAA,IACN,OAAO,OAAO,OAAO,EAAE,mBAAmB,MAAM;AAAA,EAAA,CACjD;AAAA,EACD,YAAY,OAAO,OAAO;AAAA,IACxB,MAAM;AAAA,IACN,OAAO,OAAO,OAAO,EAAE,mBAAmB,MAAM;AAAA,EAAA,CACjD;AACH,CAAC;AAEI,SAAS,0BAA0B,OAAyB;AACjE,QAAM,OAAQ,OACV;AACJ,SAAO,QAAQ,MAAM,iBAAiB;AACxC;AAEO,SAAS,wBAAyD;AACvE,QAAM,SAA0C,CAAA;AAEhD,aAAW,CAAC,WAAW,QAAQ,KAAK,OAAO,QAAQ,kBAAkB,GAAG;AACtE,WAAO,SAAS,IAAI;AAAA,MAClB,GAAG;AAAA,MACH,OAAO,EAAE,GAAI,SAAS,SAAS,CAAA,EAAC;AAAA,IAAG;AAAA,EAEvC;AAEA,SAAO;AACT;AAEO,SAAS,wBACd,QAC8B;AAC9B,QAAM,6BAAa,IAAA;AAEnB,aAAW,CAAC,WAAW,QAAQ,KAAK,OAAO,QAAQ,sBAAA,CAAuB,GAAG;AAC3E,WAAO,IAAI,WAAW,QAAQ;AAAA,EAChC;AAEA,aAAW,CAAC,WAAW,QAAQ,KAAK,OAAO,WAAW;AACpD,QAAI,0BAA0B,QAAQ,KAAK,OAAO,IAAI,SAAS,GAAG;AAChE;AAAA,IACF;AACA,WAAO,IAAI,WAAW,QAAQ;AAAA,EAChC;AAEA,SAAO;AACT;"}
1
+ {"version":3,"file":"system-fields.js","sources":["../src/system-fields.ts"],"sourcesContent":["/**\n * Canonical SMRT system fields inherited from `SmrtObject`.\n *\n * These fields exist on every persistent object at runtime even when they are\n * not declared in a child class manifest. Keep this definition lightweight:\n * presence matters for metadata consumers, while schema generation still owns\n * the exact SQL defaults and constraints for these columns.\n */\n\nimport type { FieldDefinition } from './scanner/types.js';\n\nexport const SMRT_SYSTEM_FIELDS: Readonly<Record<string, FieldDefinition>> =\n Object.freeze({\n id: Object.freeze({\n type: 'text',\n _meta: Object.freeze({ __smrtSystemField: true }),\n }),\n slug: Object.freeze({\n type: 'text',\n _meta: Object.freeze({ __smrtSystemField: true }),\n }),\n context: Object.freeze({\n type: 'text',\n _meta: Object.freeze({ __smrtSystemField: true }),\n }),\n created_at: Object.freeze({\n type: 'datetime',\n _meta: Object.freeze({ __smrtSystemField: true }),\n }),\n updated_at: Object.freeze({\n type: 'datetime',\n _meta: Object.freeze({ __smrtSystemField: true }),\n }),\n });\n\nexport function isInjectedSmrtSystemField(field: unknown): boolean {\n const meta = (field as { _meta?: { __smrtSystemField?: unknown } } | null)\n ?._meta;\n return Boolean(meta?.__smrtSystemField);\n}\n\nexport function cloneSmrtSystemFields(): Record<string, FieldDefinition> {\n const fields: Record<string, FieldDefinition> = {};\n\n for (const [fieldName, fieldDef] of Object.entries(SMRT_SYSTEM_FIELDS)) {\n fields[fieldName] = {\n ...fieldDef,\n _meta: { ...(fieldDef._meta || {}) },\n };\n }\n\n return fields;\n}\n\nexport function prependSmrtSystemFields<T extends FieldDefinition>(\n fields: Map<string, T>,\n): Map<string, T> {\n const merged = new Map<string, T>();\n\n // The cloned system fields are plain `FieldDefinition`s. `T` is a\n // `FieldDefinition` superset that only adds optional members (e.g. the\n // registry's `RegisteredField`), so a freshly-cloned system field is a\n // structurally-valid `T` at runtime; the downcast records that. Keeping the\n // signature generic preserves the caller's richer element type instead of\n // widening every returned field back to the base `FieldDefinition`.\n for (const [fieldName, fieldDef] of Object.entries(cloneSmrtSystemFields())) {\n merged.set(fieldName, fieldDef as T);\n }\n\n for (const [fieldName, fieldDef] of fields.entries()) {\n if (isInjectedSmrtSystemField(fieldDef) && merged.has(fieldName)) {\n continue;\n }\n merged.set(fieldName, fieldDef);\n }\n\n return merged;\n}\n"],"names":[],"mappings":"AAWO,MAAM,qBACX,OAAO,OAAO;AAAA,EACZ,IAAI,OAAO,OAAO;AAAA,IAChB,MAAM;AAAA,IACN,OAAO,OAAO,OAAO,EAAE,mBAAmB,MAAM;AAAA,EAAA,CACjD;AAAA,EACD,MAAM,OAAO,OAAO;AAAA,IAClB,MAAM;AAAA,IACN,OAAO,OAAO,OAAO,EAAE,mBAAmB,MAAM;AAAA,EAAA,CACjD;AAAA,EACD,SAAS,OAAO,OAAO;AAAA,IACrB,MAAM;AAAA,IACN,OAAO,OAAO,OAAO,EAAE,mBAAmB,MAAM;AAAA,EAAA,CACjD;AAAA,EACD,YAAY,OAAO,OAAO;AAAA,IACxB,MAAM;AAAA,IACN,OAAO,OAAO,OAAO,EAAE,mBAAmB,MAAM;AAAA,EAAA,CACjD;AAAA,EACD,YAAY,OAAO,OAAO;AAAA,IACxB,MAAM;AAAA,IACN,OAAO,OAAO,OAAO,EAAE,mBAAmB,MAAM;AAAA,EAAA,CACjD;AACH,CAAC;AAEI,SAAS,0BAA0B,OAAyB;AACjE,QAAM,OAAQ,OACV;AACJ,SAAO,QAAQ,MAAM,iBAAiB;AACxC;AAEO,SAAS,wBAAyD;AACvE,QAAM,SAA0C,CAAA;AAEhD,aAAW,CAAC,WAAW,QAAQ,KAAK,OAAO,QAAQ,kBAAkB,GAAG;AACtE,WAAO,SAAS,IAAI;AAAA,MAClB,GAAG;AAAA,MACH,OAAO,EAAE,GAAI,SAAS,SAAS,CAAA,EAAC;AAAA,IAAG;AAAA,EAEvC;AAEA,SAAO;AACT;AAEO,SAAS,wBACd,QACgB;AAChB,QAAM,6BAAa,IAAA;AAQnB,aAAW,CAAC,WAAW,QAAQ,KAAK,OAAO,QAAQ,sBAAA,CAAuB,GAAG;AAC3E,WAAO,IAAI,WAAW,QAAa;AAAA,EACrC;AAEA,aAAW,CAAC,WAAW,QAAQ,KAAK,OAAO,WAAW;AACpD,QAAI,0BAA0B,QAAQ,KAAK,OAAO,IAAI,SAAS,GAAG;AAChE;AAAA,IACF;AACA,WAAO,IAAI,WAAW,QAAQ;AAAA,EAChC;AAEA,SAAO;AACT;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@happyvertical/smrt-core",
3
- "version": "0.36.8",
3
+ "version": "0.37.0",
4
4
  "description": "Core AI agent framework with standardized collections, object-relational mapping, and code generators",
5
5
  "author": "HappyVertical",
6
6
  "type": "module",
@@ -153,9 +153,9 @@
153
153
  "tsx": "^4.21.0",
154
154
  "typescript": "^5.9.3",
155
155
  "yaml": "^2.8.2",
156
- "@happyvertical/smrt-types": "0.36.8",
157
- "@happyvertical/smrt-config": "0.36.8",
158
- "@happyvertical/smrt-scanner": "0.36.8"
156
+ "@happyvertical/smrt-config": "0.37.0",
157
+ "@happyvertical/smrt-types": "0.37.0",
158
+ "@happyvertical/smrt-scanner": "0.37.0"
159
159
  },
160
160
  "peerDependencies": {
161
161
  "@huggingface/transformers": ">=3.0.0 <4.0.0",