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.
- package/dist/model/CardCollection.d.ts +55 -0
- package/dist/model/CardCollection.d.ts.map +1 -1
- package/dist/model/CardCollection.js +55 -0
- package/dist/model/CardCollection.js.map +1 -1
- package/dist/model/MCard.d.ts +79 -2
- package/dist/model/MCard.d.ts.map +1 -1
- package/dist/model/MCard.js +80 -1
- package/dist/model/MCard.js.map +1 -1
- package/dist/model/PCard.d.ts +50 -0
- package/dist/model/PCard.d.ts.map +1 -0
- package/dist/model/PCard.js +110 -0
- package/dist/model/PCard.js.map +1 -0
- package/dist/model/VCard.d.ts +162 -0
- package/dist/model/VCard.d.ts.map +1 -0
- package/dist/model/VCard.js +298 -0
- package/dist/model/VCard.js.map +1 -0
- package/dist/model/vcard_ext/core.d.ts +22 -0
- package/dist/model/vcard_ext/core.d.ts.map +1 -0
- package/dist/model/vcard_ext/core.js +41 -0
- package/dist/model/vcard_ext/core.js.map +1 -0
- package/dist/model/vcard_ext/index.d.ts +14 -0
- package/dist/model/vcard_ext/index.d.ts.map +1 -0
- package/dist/model/vcard_ext/index.js +24 -0
- package/dist/model/vcard_ext/index.js.map +1 -0
- package/dist/model/vcard_ext/network.d.ts +6 -0
- package/dist/model/vcard_ext/network.d.ts.map +1 -0
- package/dist/model/vcard_ext/network.js +23 -0
- package/dist/model/vcard_ext/network.js.map +1 -0
- package/dist/model/vcard_ext/observability.d.ts +6 -0
- package/dist/model/vcard_ext/observability.d.ts.map +1 -0
- package/dist/model/vcard_ext/observability.js +62 -0
- package/dist/model/vcard_ext/observability.js.map +1 -0
- package/dist/model/vcard_ext/storage.d.ts +6 -0
- package/dist/model/vcard_ext/storage.d.ts.map +1 -0
- package/dist/model/vcard_ext/storage.js +47 -0
- package/dist/model/vcard_ext/storage.js.map +1 -0
- package/dist/model/vcard_ext/vendors.d.ts +12 -0
- package/dist/model/vcard_ext/vendors.d.ts.map +1 -0
- package/dist/model/vcard_ext/vendors.js +210 -0
- package/dist/model/vcard_ext/vendors.js.map +1 -0
- package/dist/model/vcard_vocabulary.d.ts +174 -0
- package/dist/model/vcard_vocabulary.d.ts.map +1 -0
- package/dist/model/vcard_vocabulary.js +187 -0
- package/dist/model/vcard_vocabulary.js.map +1 -0
- package/dist/types/dots.d.ts +206 -0
- package/dist/types/dots.d.ts.map +1 -0
- package/dist/types/dots.js +201 -0
- package/dist/types/dots.js.map +1 -0
- 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