@x12i/memorix-format 3.0.3 → 3.0.6

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 (54) hide show
  1. package/CHANGELOG.md +73 -65
  2. package/README.md +78 -78
  3. package/dist/base/concept.d.ts +4 -0
  4. package/dist/base/concept.d.ts.map +1 -1
  5. package/dist/base/concept.js +5 -1
  6. package/dist/base/concept.js.map +1 -1
  7. package/dist/cli.js +36 -36
  8. package/dist/v2/identity.d.ts +19 -0
  9. package/dist/v2/identity.d.ts.map +1 -0
  10. package/dist/v2/identity.js +39 -0
  11. package/dist/v2/identity.js.map +1 -0
  12. package/dist/v2/index.d.ts +2 -1
  13. package/dist/v2/index.d.ts.map +1 -1
  14. package/dist/v2/index.js +1 -0
  15. package/dist/v2/index.js.map +1 -1
  16. package/dist/v2/migrate-present.js +1 -1
  17. package/dist/v2/migrate-present.js.map +1 -1
  18. package/dist/v2/profiles.d.ts +1 -1
  19. package/dist/v2/profiles.d.ts.map +1 -1
  20. package/dist/v2/profiles.js +1 -0
  21. package/dist/v2/profiles.js.map +1 -1
  22. package/dist/v2/types.d.ts +24 -0
  23. package/dist/v2/types.d.ts.map +1 -1
  24. package/dist/v2/validate.d.ts.map +1 -1
  25. package/dist/v2/validate.js +18 -1
  26. package/dist/v2/validate.js.map +1 -1
  27. package/docs/association-format.md +47 -47
  28. package/docs/memorix-format-requirements.md +54 -54
  29. package/docs/memorix-format.md +68 -68
  30. package/docs/memorix-record-v2.md +102 -101
  31. package/docs/memorix-workflow-format.md +126 -126
  32. package/docs/migrate-present-to-v2.md +49 -49
  33. package/examples/invalid-record.json +11 -11
  34. package/examples/v2/activity-events-snapshots.json +31 -31
  35. package/examples/v2/people-discovery.json +26 -26
  36. package/examples/v2/people-snapshots-employee.json +27 -27
  37. package/examples/v2/playbooks-knowledge.json +27 -27
  38. package/examples/v2/work-items-analysis.json +26 -26
  39. package/examples/v2/work-items-context.json +32 -32
  40. package/examples/v2/work-items-decisions.json +26 -26
  41. package/examples/v2/work-items-raw.json +37 -37
  42. package/examples/v2/work-items-relationships-candidate.json +38 -38
  43. package/examples/v2/work-items-snapshots-lifecycle.json +31 -31
  44. package/examples/v2/work-items-snapshots-lightweight-refs.json +34 -34
  45. package/examples/v2/work-items-snapshots.json +28 -28
  46. package/examples/v2/work-items-workflow.json +28 -28
  47. package/examples/valid-snapshot.json +30 -30
  48. package/meta/associated-conventions.json +59 -59
  49. package/meta/content-type-profiles.json +27 -27
  50. package/meta/content-types.json +80 -80
  51. package/meta/envelope.json +104 -104
  52. package/meta/inventory/managed-descriptors.json +78 -78
  53. package/meta/open-buckets.json +24 -24
  54. package/package.json +77 -77
@@ -1,104 +1,104 @@
1
- {
2
- "$schemaNote": "Base Memorix envelope meta-metadata (present tense only). No domain object types. Source of truth for @x12i/memorix-format present base envelope.",
3
- "version": "1.2.0",
4
- "categories": {
5
- "identity": {
6
- "keys": [
7
- "recordId",
8
- "concept"
9
- ],
10
- "required": true,
11
- "description": "Join and display identity \u2014 fixed names. recordId is join plumbing (not human/LLM content). concept is human/LLM-facing except nested _extIdentifier."
12
- },
13
- "core": {
14
- "keys": [
15
- "data"
16
- ],
17
- "required": true,
18
- "description": "Native facts about this entity \u2014 fixed name"
19
- },
20
- "underscore": {
21
- "keyPrefix": "_",
22
- "wellKnown": [
23
- "_id",
24
- "_system"
25
- ],
26
- "description": "Machine-only roots. Any _-prefixed root is omitted by default for humans/LLMs."
27
- },
28
- "open": {
29
- "description": "Any other top-level key \u2014 names not reserved by base"
30
- }
31
- },
32
- "concept": {
33
- "requiredFields": [
34
- "_extIdentifier",
35
- "title"
36
- ],
37
- "extIdentifier": {
38
- "path": "concept._extIdentifier",
39
- "description": "External machine join key. Nested _ means omitted from human/LLM projection of concept.",
40
- "requiredFields": [
41
- "kind",
42
- "key"
43
- ],
44
- "rules": [
45
- "kind must be a non-empty string",
46
- "a same-named property must hold the identifier value when used for key construction",
47
- "key is kind, then kind-value, then other scalar fields sorted, joined by :",
48
- "how key and title are derived for a given object type is defined on the object-type descriptor, not in this envelope"
49
- ],
50
- "forbiddenFields": [
51
- "name",
52
- "identifierKey"
53
- ]
54
- },
55
- "forbiddenFields": [
56
- "name",
57
- "identifier"
58
- ],
59
- "otherKeys": {
60
- "description": "Additional concept keys (non-_ prefixed) are allowed when important and human/LLM readable"
61
- }
62
- },
63
- "underscoreBlock": {
64
- "allowUnderscoreKeys": true,
65
- "state": {
66
- "path": "_system.state",
67
- "enum": [
68
- "active",
69
- "archived",
70
- "superseded"
71
- ],
72
- "default": "active",
73
- "description": "Which document among same-recordId siblings is live vs not"
74
- },
75
- "lifecycle": {
76
- "path": "_system.lifecycle",
77
- "shape": "array-of-events",
78
- "omitIfEmpty": true
79
- },
80
- "wellKnownSystemPaths": [
81
- "_system.state",
82
- "_system.lifecycle",
83
- "_system.timestamps",
84
- "_system.provenance",
85
- "_system._graphRuns",
86
- "_system._jobTypeRuns",
87
- "_system.memorix",
88
- "_system.processing",
89
- "_system.narratives",
90
- "_system.quarantine"
91
- ]
92
- },
93
- "openBucketKinds": [
94
- "rollup",
95
- "sourced",
96
- "interpretive",
97
- "linked-payloads",
98
- "custom"
99
- ],
100
- "defaults": {
101
- "unknownOpenBuckets": "allow",
102
- "emptyBuckets": "reject"
103
- }
104
- }
1
+ {
2
+ "$schemaNote": "Base Memorix envelope meta-metadata (present tense only). No domain object types. Source of truth for @x12i/memorix-format present base envelope.",
3
+ "version": "1.2.0",
4
+ "categories": {
5
+ "identity": {
6
+ "keys": [
7
+ "recordId",
8
+ "concept"
9
+ ],
10
+ "required": true,
11
+ "description": "Join and display identity \u2014 fixed names. recordId is join plumbing (not human/LLM content). concept is human/LLM-facing except nested _extIdentifier."
12
+ },
13
+ "core": {
14
+ "keys": [
15
+ "data"
16
+ ],
17
+ "required": true,
18
+ "description": "Native facts about this entity \u2014 fixed name"
19
+ },
20
+ "underscore": {
21
+ "keyPrefix": "_",
22
+ "wellKnown": [
23
+ "_id",
24
+ "_system"
25
+ ],
26
+ "description": "Machine-only roots. Any _-prefixed root is omitted by default for humans/LLMs."
27
+ },
28
+ "open": {
29
+ "description": "Any other top-level key \u2014 names not reserved by base"
30
+ }
31
+ },
32
+ "concept": {
33
+ "requiredFields": [
34
+ "_extIdentifier",
35
+ "title"
36
+ ],
37
+ "extIdentifier": {
38
+ "path": "concept._extIdentifier",
39
+ "description": "External machine join key. Nested _ means omitted from human/LLM projection of concept.",
40
+ "requiredFields": [
41
+ "kind",
42
+ "key"
43
+ ],
44
+ "rules": [
45
+ "kind must be a non-empty string",
46
+ "a same-named property must hold the identifier value when used for key construction",
47
+ "key is kind, then kind-value, then other scalar fields sorted, joined by :",
48
+ "how key and title are derived for a given object type is defined on the object-type descriptor, not in this envelope"
49
+ ],
50
+ "forbiddenFields": [
51
+ "name",
52
+ "identifierKey"
53
+ ]
54
+ },
55
+ "forbiddenFields": [
56
+ "name",
57
+ "identifier"
58
+ ],
59
+ "otherKeys": {
60
+ "description": "Additional concept keys (non-_ prefixed) are allowed when important and human/LLM readable"
61
+ }
62
+ },
63
+ "underscoreBlock": {
64
+ "allowUnderscoreKeys": true,
65
+ "state": {
66
+ "path": "_system.state",
67
+ "enum": [
68
+ "active",
69
+ "archived",
70
+ "superseded"
71
+ ],
72
+ "default": "active",
73
+ "description": "Which document among same-recordId siblings is live vs not"
74
+ },
75
+ "lifecycle": {
76
+ "path": "_system.lifecycle",
77
+ "shape": "array-of-events",
78
+ "omitIfEmpty": true
79
+ },
80
+ "wellKnownSystemPaths": [
81
+ "_system.state",
82
+ "_system.lifecycle",
83
+ "_system.timestamps",
84
+ "_system.provenance",
85
+ "_system._graphRuns",
86
+ "_system._jobTypeRuns",
87
+ "_system.memorix",
88
+ "_system.processing",
89
+ "_system.narratives",
90
+ "_system.quarantine"
91
+ ]
92
+ },
93
+ "openBucketKinds": [
94
+ "rollup",
95
+ "sourced",
96
+ "interpretive",
97
+ "linked-payloads",
98
+ "custom"
99
+ ],
100
+ "defaults": {
101
+ "unknownOpenBuckets": "allow",
102
+ "emptyBuckets": "reject"
103
+ }
104
+ }
@@ -1,78 +1,78 @@
1
- {
2
- "$schemaNote": "INVENTORY ONLY — derived from managed Catalox entity descriptors (memorix-retrieval/catalox-seeds). Not format law. Not agent packs. Used to keep format meta aligned with live managed objects. Regenerate when descriptors change.",
3
- "version": "2.1.0",
4
- "source": "memorix-retrieval/catalox-seeds/inputs/entity-descriptors/*.json",
5
- "scannedAt": "2026-07-21",
6
- "alsoScanned": [
7
- {
8
- "source": "ebooks/memorix-seed/entity-descriptors/*.json",
9
- "note": "Demo domain — same CT/open-bucket conventions; no new format vocabulary"
10
- }
11
- ],
12
- "managedObjectTypes": [
13
- "assets",
14
- "content-documents",
15
- "knowledge-playbooks",
16
- "subnets",
17
- "topology-zones",
18
- "vulnerabilities",
19
- "vulnerabilities-groups"
20
- ],
21
- "contentTypesObserved": [
22
- "analysis",
23
- "chunks",
24
- "decisions",
25
- "discovery",
26
- "extrated",
27
- "legacy",
28
- "narrative-steps",
29
- "narratives",
30
- "scoped",
31
- "snapshots",
32
- "workflow"
33
- ],
34
- "contentTypeNotes": [
35
- {
36
- "contentType": "decisions",
37
- "note": "Some descriptors use collection postfix 'decision' (singular) while the contentTypes key is 'decisions'"
38
- },
39
- {
40
- "contentType": "extrated",
41
- "note": "Spelling as managed in content-documents descriptor (key/postfix/collection)"
42
- }
43
- ],
44
- "associatedPropertiesObserved": [
45
- "associatedAssetsSnapshots",
46
- "associatedSubnetsAnalysis",
47
- "associatedSubnetsDiscovery",
48
- "associatedSubnetsSnapshots",
49
- "associatedTopVulnerabilitiesAnalysis",
50
- "associatedTopology",
51
- "associatedTopologyZonesAnalysis",
52
- "associatedTopologyZonesSnapshots",
53
- "associatedVulnerabilitiesAnalysis",
54
- "associatedVulnerabilitiesDecisions",
55
- "associatedVulnerabilitiesDiscovery",
56
- "associatedVulnerabilitiesGroupsAnalysis",
57
- "associatedVulnerabilitiesGroupsDiscovery",
58
- "associatedVulnerabilitiesGroupsEnrichment",
59
- "associatedVulnerabilitiesGroupsSnapshots"
60
- ],
61
- "customRootPropertiesObserved": [
62
- {
63
- "name": "possiblePaths",
64
- "kind": "custom",
65
- "shape": "object",
66
- "objectTypes": ["subnets"],
67
- "note": "Declared on subnets descriptors as managed rootProperty — open bucket, not base-reserved and not a product-known open bucket"
68
- }
69
- ],
70
- "platformOpenBucketsObservedInProductDocs": ["analytics", "enrichment", "insights"],
71
- "alignmentChecks": {
72
- "allContentTypesCoveredInContentTypesJson": true,
73
- "platformOpenBucketsPresentInOpenBucketsJson": ["analytics", "enrichment", "insights"],
74
- "associatedNamesFollowPrefixConvention": true,
75
- "noObjectTypesInFormatLawJson": true,
76
- "conceptRecipesOnEntityDescriptors": true
77
- }
78
- }
1
+ {
2
+ "$schemaNote": "INVENTORY ONLY — derived from managed Catalox entity descriptors (memorix-retrieval/catalox-seeds). Not format law. Not agent packs. Used to keep format meta aligned with live managed objects. Regenerate when descriptors change.",
3
+ "version": "2.1.0",
4
+ "source": "memorix-retrieval/catalox-seeds/inputs/entity-descriptors/*.json",
5
+ "scannedAt": "2026-07-21",
6
+ "alsoScanned": [
7
+ {
8
+ "source": "ebooks/memorix-seed/entity-descriptors/*.json",
9
+ "note": "Demo domain — same CT/open-bucket conventions; no new format vocabulary"
10
+ }
11
+ ],
12
+ "managedObjectTypes": [
13
+ "assets",
14
+ "content-documents",
15
+ "knowledge-playbooks",
16
+ "subnets",
17
+ "topology-zones",
18
+ "vulnerabilities",
19
+ "vulnerabilities-groups"
20
+ ],
21
+ "contentTypesObserved": [
22
+ "analysis",
23
+ "chunks",
24
+ "decisions",
25
+ "discovery",
26
+ "extrated",
27
+ "legacy",
28
+ "narrative-steps",
29
+ "narratives",
30
+ "scoped",
31
+ "snapshots",
32
+ "workflow"
33
+ ],
34
+ "contentTypeNotes": [
35
+ {
36
+ "contentType": "decisions",
37
+ "note": "Some descriptors use collection postfix 'decision' (singular) while the contentTypes key is 'decisions'"
38
+ },
39
+ {
40
+ "contentType": "extrated",
41
+ "note": "Spelling as managed in content-documents descriptor (key/postfix/collection)"
42
+ }
43
+ ],
44
+ "associatedPropertiesObserved": [
45
+ "associatedAssetsSnapshots",
46
+ "associatedSubnetsAnalysis",
47
+ "associatedSubnetsDiscovery",
48
+ "associatedSubnetsSnapshots",
49
+ "associatedTopVulnerabilitiesAnalysis",
50
+ "associatedTopology",
51
+ "associatedTopologyZonesAnalysis",
52
+ "associatedTopologyZonesSnapshots",
53
+ "associatedVulnerabilitiesAnalysis",
54
+ "associatedVulnerabilitiesDecisions",
55
+ "associatedVulnerabilitiesDiscovery",
56
+ "associatedVulnerabilitiesGroupsAnalysis",
57
+ "associatedVulnerabilitiesGroupsDiscovery",
58
+ "associatedVulnerabilitiesGroupsEnrichment",
59
+ "associatedVulnerabilitiesGroupsSnapshots"
60
+ ],
61
+ "customRootPropertiesObserved": [
62
+ {
63
+ "name": "possiblePaths",
64
+ "kind": "custom",
65
+ "shape": "object",
66
+ "objectTypes": ["subnets"],
67
+ "note": "Declared on subnets descriptors as managed rootProperty — open bucket, not base-reserved and not a product-known open bucket"
68
+ }
69
+ ],
70
+ "platformOpenBucketsObservedInProductDocs": ["analytics", "enrichment", "insights"],
71
+ "alignmentChecks": {
72
+ "allContentTypesCoveredInContentTypesJson": true,
73
+ "platformOpenBucketsPresentInOpenBucketsJson": ["analytics", "enrichment", "insights"],
74
+ "associatedNamesFollowPrefixConvention": true,
75
+ "noObjectTypesInFormatLawJson": true,
76
+ "conceptRecipesOnEntityDescriptors": true
77
+ }
78
+ }
@@ -1,24 +1,24 @@
1
- {
2
- "$schemaNote": "Memorix product open buckets — content-type level, no objectType. Kind meanings for snapshots.",
3
- "version": "2.1.0",
4
- "openBuckets": {
5
- "analytics": {
6
- "kind": "rollup",
7
- "shape": "object",
8
- "title": "Analytics",
9
- "description": "Numeric rollups about linked lists"
10
- },
11
- "enrichment": {
12
- "kind": "sourced",
13
- "shape": "object",
14
- "title": "Enrichment",
15
- "description": "External / prior-system sourced values as received"
16
- },
17
- "insights": {
18
- "kind": "interpretive",
19
- "shape": "object",
20
- "title": "Insights",
21
- "description": "Interpreted judgments, scores, recommendations"
22
- }
23
- }
24
- }
1
+ {
2
+ "$schemaNote": "Memorix product open buckets — content-type level, no objectType. Kind meanings for snapshots.",
3
+ "version": "2.1.0",
4
+ "openBuckets": {
5
+ "analytics": {
6
+ "kind": "rollup",
7
+ "shape": "object",
8
+ "title": "Analytics",
9
+ "description": "Numeric rollups about linked lists"
10
+ },
11
+ "enrichment": {
12
+ "kind": "sourced",
13
+ "shape": "object",
14
+ "title": "Enrichment",
15
+ "description": "External / prior-system sourced values as received"
16
+ },
17
+ "insights": {
18
+ "kind": "interpretive",
19
+ "shape": "object",
20
+ "title": "Insights",
21
+ "description": "Interpreted judgments, scores, recommendations"
22
+ }
23
+ }
24
+ }
package/package.json CHANGED
@@ -1,77 +1,77 @@
1
- {
2
- "name": "@x12i/memorix-format",
3
- "version": "3.0.3",
4
- "description": "Memorix format: present envelope + memorix-record/2 (Gate G2 SoT), validators, migrate CLIs.",
5
- "type": "module",
6
- "main": "./dist/index.js",
7
- "types": "./dist/index.d.ts",
8
- "bin": {
9
- "memorix-format": "dist/cli.js"
10
- },
11
- "exports": {
12
- ".": {
13
- "types": "./dist/index.d.ts",
14
- "import": "./dist/index.js"
15
- },
16
- "./validate": {
17
- "types": "./dist/validate.d.ts",
18
- "import": "./dist/validate.js"
19
- },
20
- "./profiles": {
21
- "types": "./dist/profiles.d.ts",
22
- "import": "./dist/profiles.js"
23
- },
24
- "./types": {
25
- "types": "./dist/types.d.ts",
26
- "import": "./dist/types.js"
27
- },
28
- "./v2": {
29
- "types": "./dist/v2/index.d.ts",
30
- "import": "./dist/v2/index.js"
31
- }
32
- },
33
- "files": [
34
- "dist",
35
- "docs",
36
- "examples",
37
- "meta",
38
- "README.md",
39
- "CHANGELOG.md"
40
- ],
41
- "sideEffects": false,
42
- "scripts": {
43
- "prebuild": "rm -rf dist",
44
- "build": "tsc -p tsconfig.build.json",
45
- "test": "vitest run",
46
- "test:watch": "vitest",
47
- "typecheck": "tsc --noEmit",
48
- "prepack": "npm run build",
49
- "prepublishOnly": "npm run build && npm test"
50
- },
51
- "engines": {
52
- "node": ">=18.0.0"
53
- },
54
- "devDependencies": {
55
- "@types/node": "^20.14.0",
56
- "typescript": "^5.6.0",
57
- "vitest": "^2.1.0"
58
- },
59
- "publishConfig": {
60
- "access": "public",
61
- "registry": "https://registry.npmjs.org/"
62
- },
63
- "repository": {
64
- "type": "git",
65
- "url": "git+ssh://git@github.com/x12i/memorix-mono-repo.git",
66
- "directory": "memorix-format"
67
- },
68
- "keywords": [
69
- "memorix",
70
- "format",
71
- "memorix-record/2",
72
- "validator",
73
- "profile",
74
- "exellix"
75
- ],
76
- "license": "exellix-license"
77
- }
1
+ {
2
+ "name": "@x12i/memorix-format",
3
+ "version": "3.0.6",
4
+ "description": "Memorix format: present envelope + memorix-record/2 (Gate G2 SoT), validators, migrate CLIs.",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "bin": {
9
+ "memorix-format": "dist/cli.js"
10
+ },
11
+ "exports": {
12
+ ".": {
13
+ "types": "./dist/index.d.ts",
14
+ "import": "./dist/index.js"
15
+ },
16
+ "./validate": {
17
+ "types": "./dist/validate.d.ts",
18
+ "import": "./dist/validate.js"
19
+ },
20
+ "./profiles": {
21
+ "types": "./dist/profiles.d.ts",
22
+ "import": "./dist/profiles.js"
23
+ },
24
+ "./types": {
25
+ "types": "./dist/types.d.ts",
26
+ "import": "./dist/types.js"
27
+ },
28
+ "./v2": {
29
+ "types": "./dist/v2/index.d.ts",
30
+ "import": "./dist/v2/index.js"
31
+ }
32
+ },
33
+ "files": [
34
+ "dist",
35
+ "docs",
36
+ "examples",
37
+ "meta",
38
+ "README.md",
39
+ "CHANGELOG.md"
40
+ ],
41
+ "sideEffects": false,
42
+ "scripts": {
43
+ "prebuild": "rm -rf dist",
44
+ "build": "tsc -p tsconfig.build.json",
45
+ "test": "vitest run",
46
+ "test:watch": "vitest",
47
+ "typecheck": "tsc --noEmit",
48
+ "prepack": "npm run build",
49
+ "prepublishOnly": "npm run build && npm test"
50
+ },
51
+ "engines": {
52
+ "node": ">=18.0.0"
53
+ },
54
+ "devDependencies": {
55
+ "@types/node": "^20.14.0",
56
+ "typescript": "^5.6.0",
57
+ "vitest": "^2.1.0"
58
+ },
59
+ "publishConfig": {
60
+ "access": "public",
61
+ "registry": "https://registry.npmjs.org/"
62
+ },
63
+ "repository": {
64
+ "type": "git",
65
+ "url": "git+ssh://git@github.com/x12i/memorix-mono-repo.git",
66
+ "directory": "memorix-format"
67
+ },
68
+ "keywords": [
69
+ "memorix",
70
+ "format",
71
+ "memorix-record/2",
72
+ "validator",
73
+ "profile",
74
+ "exellix"
75
+ ],
76
+ "license": "exellix-license"
77
+ }