mcard-js 2.1.13 → 2.1.14

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 (49) hide show
  1. package/dist/model/CardCollection.d.ts +55 -0
  2. package/dist/model/CardCollection.d.ts.map +1 -1
  3. package/dist/model/CardCollection.js +55 -0
  4. package/dist/model/CardCollection.js.map +1 -1
  5. package/dist/model/MCard.d.ts +79 -2
  6. package/dist/model/MCard.d.ts.map +1 -1
  7. package/dist/model/MCard.js +80 -1
  8. package/dist/model/MCard.js.map +1 -1
  9. package/dist/model/PCard.d.ts +50 -0
  10. package/dist/model/PCard.d.ts.map +1 -0
  11. package/dist/model/PCard.js +110 -0
  12. package/dist/model/PCard.js.map +1 -0
  13. package/dist/model/VCard.d.ts +162 -0
  14. package/dist/model/VCard.d.ts.map +1 -0
  15. package/dist/model/VCard.js +298 -0
  16. package/dist/model/VCard.js.map +1 -0
  17. package/dist/model/vcard_ext/core.d.ts +22 -0
  18. package/dist/model/vcard_ext/core.d.ts.map +1 -0
  19. package/dist/model/vcard_ext/core.js +41 -0
  20. package/dist/model/vcard_ext/core.js.map +1 -0
  21. package/dist/model/vcard_ext/index.d.ts +14 -0
  22. package/dist/model/vcard_ext/index.d.ts.map +1 -0
  23. package/dist/model/vcard_ext/index.js +24 -0
  24. package/dist/model/vcard_ext/index.js.map +1 -0
  25. package/dist/model/vcard_ext/network.d.ts +6 -0
  26. package/dist/model/vcard_ext/network.d.ts.map +1 -0
  27. package/dist/model/vcard_ext/network.js +23 -0
  28. package/dist/model/vcard_ext/network.js.map +1 -0
  29. package/dist/model/vcard_ext/observability.d.ts +6 -0
  30. package/dist/model/vcard_ext/observability.d.ts.map +1 -0
  31. package/dist/model/vcard_ext/observability.js +62 -0
  32. package/dist/model/vcard_ext/observability.js.map +1 -0
  33. package/dist/model/vcard_ext/storage.d.ts +6 -0
  34. package/dist/model/vcard_ext/storage.d.ts.map +1 -0
  35. package/dist/model/vcard_ext/storage.js +47 -0
  36. package/dist/model/vcard_ext/storage.js.map +1 -0
  37. package/dist/model/vcard_ext/vendors.d.ts +12 -0
  38. package/dist/model/vcard_ext/vendors.d.ts.map +1 -0
  39. package/dist/model/vcard_ext/vendors.js +210 -0
  40. package/dist/model/vcard_ext/vendors.js.map +1 -0
  41. package/dist/model/vcard_vocabulary.d.ts +174 -0
  42. package/dist/model/vcard_vocabulary.d.ts.map +1 -0
  43. package/dist/model/vcard_vocabulary.js +187 -0
  44. package/dist/model/vcard_vocabulary.js.map +1 -0
  45. package/dist/types/dots.d.ts +206 -0
  46. package/dist/types/dots.d.ts.map +1 -0
  47. package/dist/types/dots.js +201 -0
  48. package/dist/types/dots.js.map +1 -0
  49. package/package.json +1 -1
@@ -0,0 +1,187 @@
1
+ /**
2
+ * VCard Application Vocabulary - Data-driven patterns for side effects.
3
+ *
4
+ * Resource types are defined as DATA in vcard_ext/, making the system
5
+ * fully extensible without code changes.
6
+ */
7
+ import { HashValidator } from '../hash/HashValidator.js';
8
+ import { RESOURCE_REGISTRY, ResourceCategory } from './vcard_ext/index.js';
9
+ export { ResourceCategory, RESOURCE_REGISTRY };
10
+ // =============================================================================
11
+ // Core Resource Factory
12
+ // =============================================================================
13
+ export class Resource {
14
+ static async create(resourceType, ...argsAndOptions) {
15
+ if (!(resourceType in RESOURCE_REGISTRY)) {
16
+ throw new Error(`Unknown resource type: ${resourceType}. Available: ${Object.keys(RESOURCE_REGISTRY).join(', ')}`);
17
+ }
18
+ const rtype = RESOURCE_REGISTRY[resourceType];
19
+ // Separate positional args from options
20
+ const positionalArgs = [];
21
+ let options = {};
22
+ for (const arg of argsAndOptions) {
23
+ if (typeof arg === 'object' && !Array.isArray(arg) && arg !== null) {
24
+ options = { ...options, ...arg };
25
+ }
26
+ else {
27
+ positionalArgs.push(arg);
28
+ }
29
+ }
30
+ options = { ...rtype.defaultOptions, ...options };
31
+ // Map positional args using type's argNames
32
+ const templateVars = { ...options };
33
+ for (let i = 0; i < positionalArgs.length && i < rtype.argNames.length; i++) {
34
+ templateVars[rtype.argNames[i]] = positionalArgs[i];
35
+ }
36
+ const uri = Resource._buildUri(rtype.uriTemplate, templateVars);
37
+ const hashContent = Resource._buildHashContent(rtype.hashTemplate, templateVars);
38
+ const contentHash = await HashValidator.computeHash(new TextEncoder().encode(hashContent), 'sha256');
39
+ const status = Resource._determineStatus(resourceType, templateVars, options);
40
+ const qosMetrics = { category: rtype.category };
41
+ for (const [k, v] of Object.entries(templateVars)) {
42
+ if (v !== undefined && v !== null && !k.startsWith('_')) {
43
+ qosMetrics[k] = v;
44
+ }
45
+ }
46
+ return { uri, contentHash, status, qosMetrics };
47
+ }
48
+ static _buildUri(template, vars) {
49
+ const preserveUri = vars._preserveUri || false;
50
+ let uri = template;
51
+ for (const [key, value] of Object.entries(vars)) {
52
+ if (value !== undefined && value !== null && !key.startsWith('_')) {
53
+ let strVal = String(value);
54
+ if (!preserveUri && (key === 'endpoint' || key === 'collectorUrl')) {
55
+ strVal = strVal.replace('http://', '').replace('https://', '');
56
+ }
57
+ uri = uri.replace(`{${key}}`, strVal);
58
+ }
59
+ }
60
+ return uri;
61
+ }
62
+ static _buildHashContent(template, vars) {
63
+ let content = template;
64
+ for (const [key, value] of Object.entries(vars)) {
65
+ content = content.replace(`{${key}}`, value !== undefined ? String(value) : 'undefined');
66
+ }
67
+ return content;
68
+ }
69
+ static _determineStatus(resourceType, vars, options) {
70
+ const required = options.required !== false;
71
+ if (resourceType === 'env') {
72
+ const name = vars.name || '';
73
+ const actualValue = typeof process !== 'undefined' ? (process.env[name] ?? options.default) : undefined;
74
+ if (actualValue !== undefined)
75
+ return 'verified';
76
+ return required ? 'invalid' : 'pending';
77
+ }
78
+ return 'pending';
79
+ }
80
+ static types() { return Object.keys(RESOURCE_REGISTRY); }
81
+ static register(type) { RESOURCE_REGISTRY[type.name] = type; }
82
+ }
83
+ // =============================================================================
84
+ // Helper Functions
85
+ // =============================================================================
86
+ export async function createLgtmStack(baseUrl, serviceName, options = {}) {
87
+ const { environment = 'production', ports = {} } = options;
88
+ const p = { grafana: 3000, prometheus: 9090, loki: 3100, tempo: 4317, ...ports };
89
+ return Promise.all([
90
+ Resource.create('grafana', `${baseUrl}:${p.grafana}`, { description: `Grafana for ${serviceName}` }),
91
+ Resource.create('prometheus', `${baseUrl}:${p.prometheus}`, { jobName: serviceName }),
92
+ Resource.create('loki', `${baseUrl}:${p.loki}`, { labels: { service: serviceName, environment } }),
93
+ Resource.create('tempo', `${baseUrl}:${p.tempo}`, { serviceName })
94
+ ]);
95
+ }
96
+ // =============================================================================
97
+ // Convenience Wrappers
98
+ // =============================================================================
99
+ export var AccessMode;
100
+ (function (AccessMode) {
101
+ AccessMode["READ"] = "read";
102
+ AccessMode["WRITE"] = "write";
103
+ AccessMode["READ_WRITE"] = "rw";
104
+ AccessMode["EXECUTE"] = "execute";
105
+ })(AccessMode || (AccessMode = {}));
106
+ export class EnvResource {
107
+ static async create(name, options = {}) {
108
+ return Resource.create('env', name, options);
109
+ }
110
+ static resolve(ref) {
111
+ if (!ref.uri.startsWith('env://'))
112
+ throw new Error(`Not an env:// URI: ${ref.uri}`);
113
+ return typeof process !== 'undefined' ? process.env[ref.uri.replace('env://', '')] : undefined;
114
+ }
115
+ }
116
+ export class FileResource {
117
+ static async create(path, options = {}) {
118
+ return Resource.create('file', path, { ...options, mode: options.mode || AccessMode.READ });
119
+ }
120
+ static async createDirectory(path, options = {}) {
121
+ return Resource.create('directory', path, options);
122
+ }
123
+ }
124
+ export class StorageResource {
125
+ static async createSqlite(path, options = {}) { return Resource.create('sqlite', path, options); }
126
+ static async createPostgres(conn, options = {}) { return Resource.create('postgres', conn, options); }
127
+ static async createS3(bucket, key, options = {}) { return Resource.create('s3', bucket, key, options); }
128
+ static async createLitefs(path, options = {}) { return Resource.create('litefs', path, options); }
129
+ static async createTurso(db, options = {}) { return Resource.create('turso', db, options); }
130
+ }
131
+ export class NetworkResource {
132
+ static async createApi(endpoint, options = {}) { return Resource.create('api', endpoint, options); }
133
+ static async createWebhook(endpoint, options = {}) { return Resource.create('webhook', endpoint, options); }
134
+ }
135
+ export class ObservabilityResource {
136
+ static async createGrafana(endpoint, options = {}) { return Resource.create('grafana', endpoint, { ...options, endpoint }); }
137
+ static async createPrometheus(endpoint, options = {}) { return Resource.create('prometheus', endpoint, { ...options, endpoint }); }
138
+ static async createLoki(endpoint, options = {}) { return Resource.create('loki', endpoint, { ...options, endpoint }); }
139
+ static async createTempo(endpoint, options = {}) { return Resource.create('tempo', endpoint, { ...options, endpoint }); }
140
+ static async createFaro(collectorUrl, appName, options = {}) { return Resource.create('faro', collectorUrl, appName, { ...options, collectorUrl }); }
141
+ static async createOtlp(endpoint, options = {}) { return Resource.create('otlp', endpoint, { ...options, endpoint }); }
142
+ static async createLgtmStack(baseUrl, serviceName, options) { return createLgtmStack(baseUrl, serviceName, options); }
143
+ }
144
+ // =============================================================================
145
+ // Application Resources Manager
146
+ // =============================================================================
147
+ export class ApplicationResources {
148
+ resources = [];
149
+ async add(resourceType, ...argsAndOptions) {
150
+ this.resources.push(await Resource.create(resourceType, ...argsAndOptions));
151
+ return this;
152
+ }
153
+ async addEnv(name, options) { return this.add('env', name, options || {}); }
154
+ async addFile(path, options) { return this.add('file', path, options || {}); }
155
+ async addDirectory(path, options) { return this.add('directory', path, options || {}); }
156
+ async addSqlite(path, options) { return this.add('sqlite', path, options || {}); }
157
+ async addLitefs(path, options) { return this.add('litefs', path, options || {}); }
158
+ async addTurso(db, options) { return this.add('turso', db, options || {}); }
159
+ async addApi(endpoint, options) { return this.add('api', endpoint, options || {}); }
160
+ async addGrafana(endpoint, options) { return this.add('grafana', endpoint, options || {}); }
161
+ async addPrometheus(endpoint, options) { return this.add('prometheus', endpoint, options || {}); }
162
+ async addLoki(endpoint, options) { return this.add('loki', endpoint, options || {}); }
163
+ async addTempo(endpoint, options) { return this.add('tempo', endpoint, options || {}); }
164
+ async addFaro(url, app, options) { this.resources.push(await ObservabilityResource.createFaro(url, app, options)); return this; }
165
+ async addOtlp(endpoint, options) { return this.add('otlp', endpoint, options || {}); }
166
+ async addLgtmStack(baseUrl, serviceName, options) {
167
+ this.resources.push(...await createLgtmStack(baseUrl, serviceName, options));
168
+ return this;
169
+ }
170
+ getAll() { return this.resources; }
171
+ getByCategory(category) {
172
+ const cat = typeof category === 'string' ? category : category;
173
+ return this.resources.filter(r => r.qosMetrics?.category === cat);
174
+ }
175
+ getObservabilityResources() { return this.resources.filter(r => r.qosMetrics?.category === 'observability'); }
176
+ getInvalid() { return this.resources.filter(r => r.status === 'invalid'); }
177
+ validate() {
178
+ const invalid = this.getInvalid();
179
+ return {
180
+ valid: invalid.length === 0, total: this.resources.length,
181
+ verified: this.resources.filter(r => r.status === 'verified').length,
182
+ pending: this.resources.filter(r => r.status === 'pending').length,
183
+ invalid: invalid.length, invalidResources: invalid.map(r => r.uri)
184
+ };
185
+ }
186
+ }
187
+ //# sourceMappingURL=vcard_vocabulary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vcard_vocabulary.js","sourceRoot":"","sources":["../../src/model/vcard_vocabulary.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,206 @@
1
+ /**
2
+ * DOTS Vocabulary Types
3
+ *
4
+ * From the Double Operadic Theory of Systems (DOTS), this module provides
5
+ * a minimal, domain-independent vocabulary for describing compositional systems.
6
+ *
7
+ * The MVP Cards architecture maps directly to DOTS:
8
+ * - MCard → Carrier (the actual data/systems)
9
+ * - PCard → Lens (tight) + Chart (loose)
10
+ * - VCard → Arena + Action
11
+ *
12
+ * Reference: docs/WorkingNotes/Hub/Theory/Integration/DOTS Vocabulary as Efficient Representation for ABC Curriculum.md
13
+ */
14
+ /**
15
+ * DOTS Role enumeration
16
+ *
17
+ * These nine terms (seven structural + Action + Unit) form a complete,
18
+ * compositional language for describing any system, interface, or interaction.
19
+ */
20
+ export declare enum DOTSRole {
21
+ /**
22
+ * CARRIER - Category Car(S) of all actual data/systems
23
+ *
24
+ * MCard is the Carrier. Each MCard is an Object in the Carrier category;
25
+ * each hash-link is a Morphism in Car(S).
26
+ *
27
+ * Polynomial Form: Objects = MCards, Morphisms = hash references
28
+ */
29
+ CARRIER = "Carrier",
30
+ /**
31
+ * LENS - Tight morphism (structure-preserving interface map)
32
+ *
33
+ * PCard's abstract_spec ↔ concrete_impl relationship is a Lens.
34
+ * Ensures type safety: Abstract types match Concrete types.
35
+ *
36
+ * Lens = (get, put) pair with coherence laws
37
+ */
38
+ LENS = "Lens",
39
+ /**
40
+ * CHART - Loose morphism (behavioral interaction pattern)
41
+ *
42
+ * PCard's balanced_expectations (tests) describe the wiring.
43
+ * Enables flexibility: same Abstract spec via different Concrete implementations.
44
+ *
45
+ * Chart = horizontal morphism in Target double category
46
+ */
47
+ CHART = "Chart",
48
+ /**
49
+ * ARENA - Interface type (what can interact)
50
+ *
51
+ * VCard is the Arena. It defines the subject_did, capabilities[],
52
+ * and ExternalRef[]. An Arena is a pair of sets (Inputs, Outputs).
53
+ *
54
+ * Arena = (I, O) → Polynomial functor P(X) = Σ_{i∈I} X^{O(i)}
55
+ */
56
+ ARENA = "Arena",
57
+ /**
58
+ * ACTION - Module structure where interactions act on systems
59
+ *
60
+ * VCard enables Action: interactions (Charts/PCards) act on
61
+ * systems (MCards/Carrier) to produce new systems.
62
+ * The VCard authorization gate is the mechanism of this action.
63
+ *
64
+ * Action = Loose(I) ⊛ Car(S) → Car(S)
65
+ */
66
+ ACTION = "Action",
67
+ /**
68
+ * TARGET - Double category I of all interfaces and interactions
69
+ *
70
+ * The CLM design space. Contains all possible Arenas (objects),
71
+ * Lenses (tight morphisms), and Charts (loose morphisms).
72
+ */
73
+ TARGET = "Target",
74
+ /**
75
+ * TIGHT - Vertical composition direction (strict)
76
+ *
77
+ * Prerequisites chains. Cannot skip foundational concepts.
78
+ * Ensures type safety across compositions.
79
+ *
80
+ * Vertical = mandatory sequential dependency
81
+ */
82
+ TIGHT = "Tight",
83
+ /**
84
+ * LOOSE - Horizontal composition direction (flexible)
85
+ *
86
+ * Same concept via different interaction patterns.
87
+ * Enables behavioral flexibility while preserving semantics.
88
+ *
89
+ * Horizontal = parallel/interchangeable alternatives
90
+ */
91
+ LOOSE = "Loose",
92
+ /**
93
+ * UNIT - Identity object for parallel composition
94
+ *
95
+ * Empty MCard / Root Namespace. The neutral element.
96
+ * For any system S: Unit ⊗ S ≅ S
97
+ */
98
+ UNIT = "Unit"
99
+ }
100
+ /**
101
+ * EOS (Experimental-Operational Symmetry) Role
102
+ *
103
+ * Each MVP Card type enforces a specific dimension of symmetry
104
+ * to ensure environment-invariant correctness.
105
+ */
106
+ export declare enum EOSRole {
107
+ /**
108
+ * INVARIANT_CONTENT - The Galois Root
109
+ *
110
+ * MCard: Hash(Content) is a pure function.
111
+ * Same content in Dev = Same hash in Prod.
112
+ * Environment-invariant identity.
113
+ */
114
+ INVARIANT_CONTENT = "InvariantContent",
115
+ /**
116
+ * GENERATIVE_LENS - Controlled Symmetry Breaking 1
117
+ *
118
+ * PCard: Pure function f(x)=y.
119
+ * Invariant in definition, variant only in input.
120
+ * The logic is environment-invariant.
121
+ */
122
+ GENERATIVE_LENS = "GenerativeLens",
123
+ /**
124
+ * SOVEREIGN_DECISION - Controlled Symmetry Breaking 2
125
+ *
126
+ * VCard: The Gap Junction.
127
+ * Breaks symmetry by introducing Authority.
128
+ * Decisional reality creation.
129
+ */
130
+ SOVEREIGN_DECISION = "SovereignDecision"
131
+ }
132
+ /**
133
+ * Card Plane in the MVP Cards architecture
134
+ *
135
+ * Maps to SDN (Software-Defined Networking) plane separation:
136
+ * Data Plane → Control Plane → Application Plane
137
+ */
138
+ export declare enum CardPlane {
139
+ /**
140
+ * DATA_PLANE - MCard
141
+ *
142
+ * Immutable, content-addressable storage.
143
+ * The monadic foundation that wraps effects.
144
+ * CRD-only operations (Create, Retrieve, Delete).
145
+ */
146
+ DATA = "Data",
147
+ /**
148
+ * CONTROL_PLANE - PCard
149
+ *
150
+ * Polynomial functor composition.
151
+ * Monadic execution via PTR.
152
+ * Policy and logic gating.
153
+ */
154
+ CONTROL = "Control",
155
+ /**
156
+ * APPLICATION_PLANE - VCard
157
+ *
158
+ * Value exchange and authentication.
159
+ * Side effect management (IO Monad).
160
+ * Sovereign memory and authorization.
161
+ */
162
+ APPLICATION = "Application"
163
+ }
164
+ /**
165
+ * Polynomial Functor Type
166
+ *
167
+ * The mathematical foundation for DOTS.
168
+ * Every DOTS component is a polynomial functor of the form:
169
+ * P(X) = Σ_{i∈I} X^{O(i)}
170
+ */
171
+ export interface PolynomialFunctor {
172
+ /** Positions (I) - input types, system states */
173
+ positions: string[];
174
+ /** Directions O(i) - output types per position */
175
+ directions: Record<string, string[]>;
176
+ }
177
+ /**
178
+ * DOTS metadata that can be attached to any card type
179
+ */
180
+ export interface DOTSMetadata {
181
+ /** Primary DOTS role (Carrier, Lens, Chart, Arena, Action) */
182
+ role: DOTSRole;
183
+ /** EOS symmetry role */
184
+ eosRole?: EOSRole;
185
+ /** Card plane (Data, Control, Application) */
186
+ plane: CardPlane;
187
+ /** Polynomial functor representation (optional) */
188
+ polynomial?: PolynomialFunctor;
189
+ /** Tight morphism references (prerequisite hashes) */
190
+ tightRefs?: string[];
191
+ /** Loose morphism references (alternative implementation hashes) */
192
+ looseRefs?: string[];
193
+ }
194
+ /**
195
+ * Create DOTS metadata for an MCard
196
+ */
197
+ export declare function createMCardDOTSMetadata(tightRefs?: string[], looseRefs?: string[]): DOTSMetadata;
198
+ /**
199
+ * Create DOTS metadata for a PCard (CLM)
200
+ */
201
+ export declare function createPCardDOTSMetadata(isLens: boolean, tightRefs?: string[], looseRefs?: string[]): DOTSMetadata;
202
+ /**
203
+ * Create DOTS metadata for a VCard
204
+ */
205
+ export declare function createVCardDOTSMetadata(): DOTSMetadata;
206
+ //# sourceMappingURL=dots.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dots.d.ts","sourceRoot":"","sources":["../../src/types/dots.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH;;;;;GAKG;AACH,oBAAY,QAAQ;IAChB;;;;;;;OAOG;IACH,OAAO,YAAY;IAEnB;;;;;;;OAOG;IACH,IAAI,SAAS;IAEb;;;;;;;OAOG;IACH,KAAK,UAAU;IAEf;;;;;;;OAOG;IACH,KAAK,UAAU;IAEf;;;;;;;;OAQG;IACH,MAAM,WAAW;IAEjB;;;;;OAKG;IACH,MAAM,WAAW;IAEjB;;;;;;;OAOG;IACH,KAAK,UAAU;IAEf;;;;;;;OAOG;IACH,KAAK,UAAU;IAEf;;;;;OAKG;IACH,IAAI,SAAS;CAChB;AAED;;;;;GAKG;AACH,oBAAY,OAAO;IACf;;;;;;OAMG;IACH,iBAAiB,qBAAqB;IAEtC;;;;;;OAMG;IACH,eAAe,mBAAmB;IAElC;;;;;;OAMG;IACH,kBAAkB,sBAAsB;CAC3C;AAED;;;;;GAKG;AACH,oBAAY,SAAS;IACjB;;;;;;OAMG;IACH,IAAI,SAAS;IAEb;;;;;;OAMG;IACH,OAAO,YAAY;IAEnB;;;;;;OAMG;IACH,WAAW,gBAAgB;CAC9B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAC9B,iDAAiD;IACjD,SAAS,EAAE,MAAM,EAAE,CAAC;IAEpB,kDAAkD;IAClD,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CACxC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB,8DAA8D;IAC9D,IAAI,EAAE,QAAQ,CAAC;IAEf,wBAAwB;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,8CAA8C;IAC9C,KAAK,EAAE,SAAS,CAAC;IAEjB,mDAAmD;IACnD,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAE/B,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IAErB,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACnC,SAAS,GAAE,MAAM,EAAO,EACxB,SAAS,GAAE,MAAM,EAAO,GACzB,YAAY,CAQd;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACnC,MAAM,EAAE,OAAO,EACf,SAAS,GAAE,MAAM,EAAO,EACxB,SAAS,GAAE,MAAM,EAAO,GACzB,YAAY,CAQd;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,YAAY,CAMtD"}
@@ -0,0 +1,201 @@
1
+ /**
2
+ * DOTS Vocabulary Types
3
+ *
4
+ * From the Double Operadic Theory of Systems (DOTS), this module provides
5
+ * a minimal, domain-independent vocabulary for describing compositional systems.
6
+ *
7
+ * The MVP Cards architecture maps directly to DOTS:
8
+ * - MCard → Carrier (the actual data/systems)
9
+ * - PCard → Lens (tight) + Chart (loose)
10
+ * - VCard → Arena + Action
11
+ *
12
+ * Reference: docs/WorkingNotes/Hub/Theory/Integration/DOTS Vocabulary as Efficient Representation for ABC Curriculum.md
13
+ */
14
+ /**
15
+ * DOTS Role enumeration
16
+ *
17
+ * These nine terms (seven structural + Action + Unit) form a complete,
18
+ * compositional language for describing any system, interface, or interaction.
19
+ */
20
+ export var DOTSRole;
21
+ (function (DOTSRole) {
22
+ /**
23
+ * CARRIER - Category Car(S) of all actual data/systems
24
+ *
25
+ * MCard is the Carrier. Each MCard is an Object in the Carrier category;
26
+ * each hash-link is a Morphism in Car(S).
27
+ *
28
+ * Polynomial Form: Objects = MCards, Morphisms = hash references
29
+ */
30
+ DOTSRole["CARRIER"] = "Carrier";
31
+ /**
32
+ * LENS - Tight morphism (structure-preserving interface map)
33
+ *
34
+ * PCard's abstract_spec ↔ concrete_impl relationship is a Lens.
35
+ * Ensures type safety: Abstract types match Concrete types.
36
+ *
37
+ * Lens = (get, put) pair with coherence laws
38
+ */
39
+ DOTSRole["LENS"] = "Lens";
40
+ /**
41
+ * CHART - Loose morphism (behavioral interaction pattern)
42
+ *
43
+ * PCard's balanced_expectations (tests) describe the wiring.
44
+ * Enables flexibility: same Abstract spec via different Concrete implementations.
45
+ *
46
+ * Chart = horizontal morphism in Target double category
47
+ */
48
+ DOTSRole["CHART"] = "Chart";
49
+ /**
50
+ * ARENA - Interface type (what can interact)
51
+ *
52
+ * VCard is the Arena. It defines the subject_did, capabilities[],
53
+ * and ExternalRef[]. An Arena is a pair of sets (Inputs, Outputs).
54
+ *
55
+ * Arena = (I, O) → Polynomial functor P(X) = Σ_{i∈I} X^{O(i)}
56
+ */
57
+ DOTSRole["ARENA"] = "Arena";
58
+ /**
59
+ * ACTION - Module structure where interactions act on systems
60
+ *
61
+ * VCard enables Action: interactions (Charts/PCards) act on
62
+ * systems (MCards/Carrier) to produce new systems.
63
+ * The VCard authorization gate is the mechanism of this action.
64
+ *
65
+ * Action = Loose(I) ⊛ Car(S) → Car(S)
66
+ */
67
+ DOTSRole["ACTION"] = "Action";
68
+ /**
69
+ * TARGET - Double category I of all interfaces and interactions
70
+ *
71
+ * The CLM design space. Contains all possible Arenas (objects),
72
+ * Lenses (tight morphisms), and Charts (loose morphisms).
73
+ */
74
+ DOTSRole["TARGET"] = "Target";
75
+ /**
76
+ * TIGHT - Vertical composition direction (strict)
77
+ *
78
+ * Prerequisites chains. Cannot skip foundational concepts.
79
+ * Ensures type safety across compositions.
80
+ *
81
+ * Vertical = mandatory sequential dependency
82
+ */
83
+ DOTSRole["TIGHT"] = "Tight";
84
+ /**
85
+ * LOOSE - Horizontal composition direction (flexible)
86
+ *
87
+ * Same concept via different interaction patterns.
88
+ * Enables behavioral flexibility while preserving semantics.
89
+ *
90
+ * Horizontal = parallel/interchangeable alternatives
91
+ */
92
+ DOTSRole["LOOSE"] = "Loose";
93
+ /**
94
+ * UNIT - Identity object for parallel composition
95
+ *
96
+ * Empty MCard / Root Namespace. The neutral element.
97
+ * For any system S: Unit ⊗ S ≅ S
98
+ */
99
+ DOTSRole["UNIT"] = "Unit";
100
+ })(DOTSRole || (DOTSRole = {}));
101
+ /**
102
+ * EOS (Experimental-Operational Symmetry) Role
103
+ *
104
+ * Each MVP Card type enforces a specific dimension of symmetry
105
+ * to ensure environment-invariant correctness.
106
+ */
107
+ export var EOSRole;
108
+ (function (EOSRole) {
109
+ /**
110
+ * INVARIANT_CONTENT - The Galois Root
111
+ *
112
+ * MCard: Hash(Content) is a pure function.
113
+ * Same content in Dev = Same hash in Prod.
114
+ * Environment-invariant identity.
115
+ */
116
+ EOSRole["INVARIANT_CONTENT"] = "InvariantContent";
117
+ /**
118
+ * GENERATIVE_LENS - Controlled Symmetry Breaking 1
119
+ *
120
+ * PCard: Pure function f(x)=y.
121
+ * Invariant in definition, variant only in input.
122
+ * The logic is environment-invariant.
123
+ */
124
+ EOSRole["GENERATIVE_LENS"] = "GenerativeLens";
125
+ /**
126
+ * SOVEREIGN_DECISION - Controlled Symmetry Breaking 2
127
+ *
128
+ * VCard: The Gap Junction.
129
+ * Breaks symmetry by introducing Authority.
130
+ * Decisional reality creation.
131
+ */
132
+ EOSRole["SOVEREIGN_DECISION"] = "SovereignDecision";
133
+ })(EOSRole || (EOSRole = {}));
134
+ /**
135
+ * Card Plane in the MVP Cards architecture
136
+ *
137
+ * Maps to SDN (Software-Defined Networking) plane separation:
138
+ * Data Plane → Control Plane → Application Plane
139
+ */
140
+ export var CardPlane;
141
+ (function (CardPlane) {
142
+ /**
143
+ * DATA_PLANE - MCard
144
+ *
145
+ * Immutable, content-addressable storage.
146
+ * The monadic foundation that wraps effects.
147
+ * CRD-only operations (Create, Retrieve, Delete).
148
+ */
149
+ CardPlane["DATA"] = "Data";
150
+ /**
151
+ * CONTROL_PLANE - PCard
152
+ *
153
+ * Polynomial functor composition.
154
+ * Monadic execution via PTR.
155
+ * Policy and logic gating.
156
+ */
157
+ CardPlane["CONTROL"] = "Control";
158
+ /**
159
+ * APPLICATION_PLANE - VCard
160
+ *
161
+ * Value exchange and authentication.
162
+ * Side effect management (IO Monad).
163
+ * Sovereign memory and authorization.
164
+ */
165
+ CardPlane["APPLICATION"] = "Application";
166
+ })(CardPlane || (CardPlane = {}));
167
+ /**
168
+ * Create DOTS metadata for an MCard
169
+ */
170
+ export function createMCardDOTSMetadata(tightRefs = [], looseRefs = []) {
171
+ return {
172
+ role: DOTSRole.CARRIER,
173
+ eosRole: EOSRole.INVARIANT_CONTENT,
174
+ plane: CardPlane.DATA,
175
+ tightRefs,
176
+ looseRefs
177
+ };
178
+ }
179
+ /**
180
+ * Create DOTS metadata for a PCard (CLM)
181
+ */
182
+ export function createPCardDOTSMetadata(isLens, tightRefs = [], looseRefs = []) {
183
+ return {
184
+ role: isLens ? DOTSRole.LENS : DOTSRole.CHART,
185
+ eosRole: EOSRole.GENERATIVE_LENS,
186
+ plane: CardPlane.CONTROL,
187
+ tightRefs,
188
+ looseRefs
189
+ };
190
+ }
191
+ /**
192
+ * Create DOTS metadata for a VCard
193
+ */
194
+ export function createVCardDOTSMetadata() {
195
+ return {
196
+ role: DOTSRole.ARENA,
197
+ eosRole: EOSRole.SOVEREIGN_DECISION,
198
+ plane: CardPlane.APPLICATION
199
+ };
200
+ }
201
+ //# sourceMappingURL=dots.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dots.js","sourceRoot":"","sources":["../../src/types/dots.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH;;;;;GAKG;AACH,MAAM,CAAN,IAAY,QAuFX;AAvFD,WAAY,QAAQ;IAChB;;;;;;;OAOG;IACH,+BAAmB,CAAA;IAEnB;;;;;;;OAOG;IACH,yBAAa,CAAA;IAEb;;;;;;;OAOG;IACH,2BAAe,CAAA;IAEf;;;;;;;OAOG;IACH,2BAAe,CAAA;IAEf;;;;;;;;OAQG;IACH,6BAAiB,CAAA;IAEjB;;;;;OAKG;IACH,6BAAiB,CAAA;IAEjB;;;;;;;OAOG;IACH,2BAAe,CAAA;IAEf;;;;;;;OAOG;IACH,2BAAe,CAAA;IAEf;;;;;OAKG;IACH,yBAAa,CAAA;AACjB,CAAC,EAvFW,QAAQ,KAAR,QAAQ,QAuFnB;AAED;;;;;GAKG;AACH,MAAM,CAAN,IAAY,OA2BX;AA3BD,WAAY,OAAO;IACf;;;;;;OAMG;IACH,iDAAsC,CAAA;IAEtC;;;;;;OAMG;IACH,6CAAkC,CAAA;IAElC;;;;;;OAMG;IACH,mDAAwC,CAAA;AAC5C,CAAC,EA3BW,OAAO,KAAP,OAAO,QA2BlB;AAED;;;;;GAKG;AACH,MAAM,CAAN,IAAY,SA2BX;AA3BD,WAAY,SAAS;IACjB;;;;;;OAMG;IACH,0BAAa,CAAA;IAEb;;;;;;OAMG;IACH,gCAAmB,CAAA;IAEnB;;;;;;OAMG;IACH,wCAA2B,CAAA;AAC/B,CAAC,EA3BW,SAAS,KAAT,SAAS,QA2BpB;AAwCD;;GAEG;AACH,MAAM,UAAU,uBAAuB,CACnC,YAAsB,EAAE,EACxB,YAAsB,EAAE;IAExB,OAAO;QACH,IAAI,EAAE,QAAQ,CAAC,OAAO;QACtB,OAAO,EAAE,OAAO,CAAC,iBAAiB;QAClC,KAAK,EAAE,SAAS,CAAC,IAAI;QACrB,SAAS;QACT,SAAS;KACZ,CAAC;AACN,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CACnC,MAAe,EACf,YAAsB,EAAE,EACxB,YAAsB,EAAE;IAExB,OAAO;QACH,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK;QAC7C,OAAO,EAAE,OAAO,CAAC,eAAe;QAChC,KAAK,EAAE,SAAS,CAAC,OAAO;QACxB,SAAS;QACT,SAAS;KACZ,CAAC;AACN,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB;IACnC,OAAO;QACH,IAAI,EAAE,QAAQ,CAAC,KAAK;QACpB,OAAO,EAAE,OAAO,CAAC,kBAAkB;QACnC,KAAK,EAAE,SAAS,CAAC,WAAW;KAC/B,CAAC;AACN,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mcard-js",
3
- "version": "2.1.13",
3
+ "version": "2.1.14",
4
4
  "description": "MCard - Content-addressable storage with cryptographic hashing, handle resolution, and vector search for Node.js and browsers",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",