mcard-js 2.1.13 → 2.1.15

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 (56) hide show
  1. package/README.md +48 -0
  2. package/dist/model/CardCollection.d.ts +55 -0
  3. package/dist/model/CardCollection.d.ts.map +1 -1
  4. package/dist/model/CardCollection.js +55 -0
  5. package/dist/model/CardCollection.js.map +1 -1
  6. package/dist/model/MCard.d.ts +79 -2
  7. package/dist/model/MCard.d.ts.map +1 -1
  8. package/dist/model/MCard.js +80 -1
  9. package/dist/model/MCard.js.map +1 -1
  10. package/dist/model/PCard.d.ts +50 -0
  11. package/dist/model/PCard.d.ts.map +1 -0
  12. package/dist/model/PCard.js +110 -0
  13. package/dist/model/PCard.js.map +1 -0
  14. package/dist/model/VCard.d.ts +162 -0
  15. package/dist/model/VCard.d.ts.map +1 -0
  16. package/dist/model/VCard.js +298 -0
  17. package/dist/model/VCard.js.map +1 -0
  18. package/dist/model/vcard_ext/core.d.ts +22 -0
  19. package/dist/model/vcard_ext/core.d.ts.map +1 -0
  20. package/dist/model/vcard_ext/core.js +41 -0
  21. package/dist/model/vcard_ext/core.js.map +1 -0
  22. package/dist/model/vcard_ext/index.d.ts +14 -0
  23. package/dist/model/vcard_ext/index.d.ts.map +1 -0
  24. package/dist/model/vcard_ext/index.js +24 -0
  25. package/dist/model/vcard_ext/index.js.map +1 -0
  26. package/dist/model/vcard_ext/network.d.ts +6 -0
  27. package/dist/model/vcard_ext/network.d.ts.map +1 -0
  28. package/dist/model/vcard_ext/network.js +23 -0
  29. package/dist/model/vcard_ext/network.js.map +1 -0
  30. package/dist/model/vcard_ext/observability.d.ts +6 -0
  31. package/dist/model/vcard_ext/observability.d.ts.map +1 -0
  32. package/dist/model/vcard_ext/observability.js +62 -0
  33. package/dist/model/vcard_ext/observability.js.map +1 -0
  34. package/dist/model/vcard_ext/storage.d.ts +6 -0
  35. package/dist/model/vcard_ext/storage.d.ts.map +1 -0
  36. package/dist/model/vcard_ext/storage.js +47 -0
  37. package/dist/model/vcard_ext/storage.js.map +1 -0
  38. package/dist/model/vcard_ext/vendors.d.ts +12 -0
  39. package/dist/model/vcard_ext/vendors.d.ts.map +1 -0
  40. package/dist/model/vcard_ext/vendors.js +210 -0
  41. package/dist/model/vcard_ext/vendors.js.map +1 -0
  42. package/dist/model/vcard_vocabulary.d.ts +174 -0
  43. package/dist/model/vcard_vocabulary.d.ts.map +1 -0
  44. package/dist/model/vcard_vocabulary.js +187 -0
  45. package/dist/model/vcard_vocabulary.js.map +1 -0
  46. package/dist/ptr/node/runtimes/loader.d.ts.map +1 -1
  47. package/dist/ptr/node/runtimes/loader.js +17 -1
  48. package/dist/ptr/node/runtimes/loader.js.map +1 -1
  49. package/dist/types/dots.d.ts +206 -0
  50. package/dist/types/dots.d.ts.map +1 -0
  51. package/dist/types/dots.js +201 -0
  52. package/dist/types/dots.js.map +1 -0
  53. package/dist/util/Loader.d.ts.map +1 -1
  54. package/dist/util/Loader.js +23 -1
  55. package/dist/util/Loader.js.map +1 -1
  56. package/package.json +1 -1
package/README.md CHANGED
@@ -607,6 +607,54 @@ To run integration tests against a live Ollama instance:
607
607
  npx vitest tests/rag/Integration.test.ts
608
608
  ```
609
609
 
610
+ ## Version 2.1.14 Release Notes (December 13, 2025)
611
+ > VCard Application Vocabulary — Data-Driven Resource Factory
612
+
613
+ ### 🏗️ Modular VCard Vocabulary
614
+
615
+ Refactored `vcard_vocabulary.ts` to be **fully data-driven** following the Empty Schema principle. All 31 resource types are now defined as pure data in modular extension files (`vcard_ext/`).
616
+
617
+ **New Structure** (`src/model/vcard_ext/`):
618
+ ```
619
+ vcard_ext/
620
+ ├── index.ts # Auto-loader and exports
621
+ ├── core.ts # env, file, directory (3 types)
622
+ ├── storage.ts # sqlite, postgres, s3, litefs, turso (5 types)
623
+ ├── network.ts # api, webhook (2 types)
624
+ ├── observability.ts # grafana, prometheus, loki, tempo, faro, otlp (6 types)
625
+ └── vendors.ts # google, github, meta, whatsapp, telegram, line, wechat, slack, trello, miro, figma, linkedin, aws, azure, gcp (15 types)
626
+ ```
627
+
628
+ ### 📦 31 Resource Types
629
+
630
+ | Category | Types |
631
+ |----------|-------|
632
+ | **Core** | `env`, `file`, `directory` |
633
+ | **Storage** | `sqlite`, `postgres`, `s3`, `litefs`, `turso` |
634
+ | **Network** | `api`, `webhook` |
635
+ | **Observability** | `grafana`, `prometheus`, `loki`, `tempo`, `faro`, `otlp` |
636
+ | **Vendors** | `google`, `github`, `meta`, `whatsapp`, `telegram`, `line`, `wechat`, `slack`, `trello`, `miro`, `figma`, `linkedin`, `aws`, `azure`, `gcp` |
637
+
638
+ ### 🚀 Unified Factory API
639
+
640
+ ```typescript
641
+ import { Resource } from 'mcard-js/model/vcard_vocabulary';
642
+
643
+ // Any resource type via unified factory
644
+ const ref = await Resource.create('github', 'xlp0', 'MCard_TDD');
645
+ const ref = await Resource.create('slack', 'my-workspace', 'general');
646
+ const ref = await Resource.create('turso', 'my-database', { group: 'us-east' });
647
+
648
+ // Check available types
649
+ console.log(Resource.types()); // ['env', 'file', 'sqlite', 'github', ...]
650
+ ```
651
+
652
+ ### 📉 Code Reduction
653
+ * `vcard_vocabulary.ts`: **700 → 221 lines** (68% reduction)
654
+ * Resource types now defined as data (no code changes needed to add new types)
655
+
656
+ ---
657
+
610
658
  ## Version 2.1.13 Release Notes (December 11, 2025)
611
659
  > Lean 4.25.2 Support & CLM Test Case Improvements
612
660
 
@@ -3,6 +3,61 @@ import { StorageEngine, Page } from '../storage/StorageAdapter';
3
3
  import { Maybe } from '../monads/Maybe';
4
4
  /**
5
5
  * CardCollection - High-level interface for MCard operations with monadic API
6
+ *
7
+ * ## DOTS Vocabulary Role: CARRIER CATEGORY Car(S)
8
+ *
9
+ * CardCollection is the **Carrier Category** in the Double Operadic Theory of Systems.
10
+ * - **Objects**: Individual MCards (data artifacts)
11
+ * - **Morphisms**: Hash references between MCards (content-addressable links)
12
+ * - **Composition**: Morphisms compose via hash chains (Merkle-DAG structure)
13
+ *
14
+ * The Carrier is where **actual systems live**. While the Target (CLM design space)
15
+ * defines possible interfaces and interactions, the Carrier holds the real data.
16
+ *
17
+ * ## The Action: Loose(I) ⊛ Car(S) → Car(S)
18
+ *
19
+ * In DOTS, the **Action** is how interactions (from Target) act on systems (in Carrier)
20
+ * to produce new systems. For CardCollection:
21
+ * - PCard (Chart/Lens) defines the interaction pattern
22
+ * - CardCollection.add() produces new MCard in the Carrier
23
+ * - The result is a new Object in Car(S)
24
+ *
25
+ * ## Empty Schema Principle
26
+ *
27
+ * CardCollection embodies the Wordless Book principle:
28
+ * - At t₀: Empty collection = "Wordless Book"
29
+ * - At t_n: Billions of cards = "Infinite Library"
30
+ * - Schema (structure) never changes; only data (content) grows
31
+ *
32
+ * ## CRD-Only Operations (No UPDATE)
33
+ *
34
+ * Following MCard design principles, this collection supports only:
35
+ * - **C**reate: `add()`, `addWithHandle()`
36
+ * - **R**ead: `get()`, `getByHandle()`, `getPage()`, `search*()`
37
+ * - **D**elete: `delete()`, `clear()`
38
+ *
39
+ * There is NO `update()` method. Instead, to "update":
40
+ * 1. Create a new MCard with new content
41
+ * 2. Use `updateHandle()` to point the handle to the new hash
42
+ * 3. The old MCard remains in the collection (immutable history)
43
+ *
44
+ * ## CRDT Foundation (G-Set)
45
+ *
46
+ * CardCollection implements **Grow-Only Set (G-Set) CRDT** semantics:
47
+ * - **Commutative**: merge(A, B) = merge(B, A)
48
+ * - **Associative**: merge(A, merge(B, C)) = merge(merge(A, B), C)
49
+ * - **Idempotent**: merge(A, A) = A (same hash = same card)
50
+ *
51
+ * This enables **Strong Eventual Consistency** without coordination.
52
+ *
53
+ * ## Monadic API
54
+ *
55
+ * The `*M` methods (getM, getByHandleM, etc.) return Maybe<T> monads
56
+ * for composable, null-safe operations following functional programming patterns.
57
+ *
58
+ * @see {@link MCard} for the individual Carrier objects
59
+ * @see {@link DOTSRole.CARRIER} for DOTS vocabulary definition
60
+ * @see docs/WorkingNotes/Permanent/Projects/PKC Kernel/MCard.md for full specification
6
61
  */
7
62
  export declare class CardCollection {
8
63
  private engine;
@@ -1 +1 @@
1
- {"version":3,"file":"CardCollection.d.ts","sourceRoot":"","sources":["../../src/model/CardCollection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CardCollection.d.ts","sourceRoot":"","sources":["../../src/model/CardCollection.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,61 @@ import { MCard } from './MCard';
2
2
  import { Maybe } from '../monads/Maybe';
3
3
  /**
4
4
  * CardCollection - High-level interface for MCard operations with monadic API
5
+ *
6
+ * ## DOTS Vocabulary Role: CARRIER CATEGORY Car(S)
7
+ *
8
+ * CardCollection is the **Carrier Category** in the Double Operadic Theory of Systems.
9
+ * - **Objects**: Individual MCards (data artifacts)
10
+ * - **Morphisms**: Hash references between MCards (content-addressable links)
11
+ * - **Composition**: Morphisms compose via hash chains (Merkle-DAG structure)
12
+ *
13
+ * The Carrier is where **actual systems live**. While the Target (CLM design space)
14
+ * defines possible interfaces and interactions, the Carrier holds the real data.
15
+ *
16
+ * ## The Action: Loose(I) ⊛ Car(S) → Car(S)
17
+ *
18
+ * In DOTS, the **Action** is how interactions (from Target) act on systems (in Carrier)
19
+ * to produce new systems. For CardCollection:
20
+ * - PCard (Chart/Lens) defines the interaction pattern
21
+ * - CardCollection.add() produces new MCard in the Carrier
22
+ * - The result is a new Object in Car(S)
23
+ *
24
+ * ## Empty Schema Principle
25
+ *
26
+ * CardCollection embodies the Wordless Book principle:
27
+ * - At t₀: Empty collection = "Wordless Book"
28
+ * - At t_n: Billions of cards = "Infinite Library"
29
+ * - Schema (structure) never changes; only data (content) grows
30
+ *
31
+ * ## CRD-Only Operations (No UPDATE)
32
+ *
33
+ * Following MCard design principles, this collection supports only:
34
+ * - **C**reate: `add()`, `addWithHandle()`
35
+ * - **R**ead: `get()`, `getByHandle()`, `getPage()`, `search*()`
36
+ * - **D**elete: `delete()`, `clear()`
37
+ *
38
+ * There is NO `update()` method. Instead, to "update":
39
+ * 1. Create a new MCard with new content
40
+ * 2. Use `updateHandle()` to point the handle to the new hash
41
+ * 3. The old MCard remains in the collection (immutable history)
42
+ *
43
+ * ## CRDT Foundation (G-Set)
44
+ *
45
+ * CardCollection implements **Grow-Only Set (G-Set) CRDT** semantics:
46
+ * - **Commutative**: merge(A, B) = merge(B, A)
47
+ * - **Associative**: merge(A, merge(B, C)) = merge(merge(A, B), C)
48
+ * - **Idempotent**: merge(A, A) = A (same hash = same card)
49
+ *
50
+ * This enables **Strong Eventual Consistency** without coordination.
51
+ *
52
+ * ## Monadic API
53
+ *
54
+ * The `*M` methods (getM, getByHandleM, etc.) return Maybe<T> monads
55
+ * for composable, null-safe operations following functional programming patterns.
56
+ *
57
+ * @see {@link MCard} for the individual Carrier objects
58
+ * @see {@link DOTSRole.CARRIER} for DOTS vocabulary definition
59
+ * @see docs/WorkingNotes/Permanent/Projects/PKC Kernel/MCard.md for full specification
5
60
  */
6
61
  export class CardCollection {
7
62
  engine;
@@ -1 +1 @@
1
- {"version":3,"file":"CardCollection.js","sourceRoot":"","sources":["../../src/model/CardCollection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CardCollection.js","sourceRoot":"","sources":["../../src/model/CardCollection.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,65 @@
1
+ import { DOTSMetadata } from '../types/dots';
1
2
  /**
2
3
  * MCard - Content-addressable data container
3
4
  *
5
+ * ## DOTS Vocabulary Role: CARRIER
6
+ *
7
+ * MCard is the **Carrier** in the Double Operadic Theory of Systems (DOTS).
8
+ * - Each MCard is an **Object** in the Carrier category Car(S)
9
+ * - Hash-links between MCards are **Morphisms** in Car(S)
10
+ * - The Carrier is the category of all actual data/systems
11
+ *
12
+ * ## EOS Role: Invariant Content (Galois Root)
13
+ *
14
+ * MCard provides the **Invariant Substrate** in Experimental-Operational Symmetry:
15
+ * - `Hash(Content)` is a **pure function** with no side effects
16
+ * - Same content in Dev = Same hash in Prod (environment-invariant)
17
+ * - This is the "Joint Reality" P(H,E) = P(E,H) in Bayesian terms
18
+ *
19
+ * ## MVP Cards Architecture: Data Plane
20
+ *
21
+ * ```
22
+ * ┌───────────────────────────────────────────────────────┐
23
+ * │ APPLICATION PLANE (VCard) │
24
+ * │ Value Exchange / AuthN/AuthZ / Sovereign Memory │
25
+ * └─────────────────────────┬─────────────────────────────┘
26
+ * │ (Policy Triggers)
27
+ * ┌─────────────────────────▼─────────────────────────────┐
28
+ * │ CONTROL PLANE (PCard) │
29
+ * │ Polynomial Functor Composition / Monadic Execution │
30
+ * └─────────────────────────┬─────────────────────────────┘
31
+ * │ (Hash References)
32
+ * ┌─────────────────────────▼─────────────────────────────┐
33
+ * │ DATA PLANE (MCard) ◀── YOU ARE HERE │
34
+ * │ Immutable, Content-Addressable Storage / Monad │
35
+ * └───────────────────────────────────────────────────────┘
36
+ * ```
37
+ *
38
+ * ## The Empty Schema Principle
39
+ *
40
+ * MCard embodies the Empty Schema Principle from the Wordless Book:
41
+ * - Schema contains NO domain-specific terms (only hash, content, g_time)
42
+ * - Domain customization happens via data (INSERT), not schema changes
43
+ * - Universal applicability: same structure for ANY domain
44
+ *
45
+ * ## Functional Requirements (from design docs)
46
+ *
47
+ * | ID | Requirement | Implementation |
48
+ * |----|-------------|----------------|
49
+ * | M-1 | Content-addressable via hash | `this.hash = SHA-256(content)` |
50
+ * | M-2 | CRD-only (no UPDATE) | Immutable class, `readonly` fields |
51
+ * | M-3 | Include g_time for ordering | `this.g_time` field |
52
+ * | M-4 | Human-readable content | `getContentAsText()` method |
53
+ * | EOS-M1 | Hash is pure function | No side effects in hash computation |
54
+ * | EOS-M2 | Content is immutable | All fields are `readonly` |
55
+ *
56
+ * @see {@link DOTSRole.CARRIER} for DOTS vocabulary definition
57
+ * @see {@link EOSRole.INVARIANT_CONTENT} for EOS role definition
58
+ * @see docs/WorkingNotes/Permanent/Projects/PKC Kernel/MCard.md for full specification
59
+ *
4
60
  * Each MCard has:
5
61
  * - content: Raw bytes (Uint8Array)
6
- * - hash: SHA-256 cryptographic hash
62
+ * - hash: SHA-256 cryptographic hash (the Carrier Object identity)
7
63
  * - g_time: Global timestamp with algorithm identifier
8
64
  */
9
65
  export declare class MCard {
@@ -12,7 +68,7 @@ export declare class MCard {
12
68
  readonly g_time: string;
13
69
  readonly contentType: string;
14
70
  readonly hashFunction: string;
15
- private constructor();
71
+ protected constructor(content: Uint8Array, hash: string, g_time: string, contentType: string, hashFunction: string);
16
72
  /**
17
73
  * Create a new MCard from content
18
74
  */
@@ -39,5 +95,26 @@ export declare class MCard {
39
95
  contentType: string;
40
96
  hashFunction: string;
41
97
  };
98
+ /**
99
+ * Get DOTS vocabulary metadata for this MCard
100
+ *
101
+ * Returns the DOTS role information that positions this MCard
102
+ * in the Double Operadic Theory of Systems framework.
103
+ *
104
+ * MCard is always a CARRIER object in the Data Plane.
105
+ *
106
+ * @param tightRefs - Optional array of prerequisite MCard hashes (vertical composition)
107
+ * @param looseRefs - Optional array of alternative MCard hashes (horizontal composition)
108
+ * @returns DOTSMetadata describing this card's role in the compositional system
109
+ *
110
+ * @example
111
+ * ```typescript
112
+ * const card = await MCard.create('Hello World');
113
+ * const meta = card.getDOTSMetadata();
114
+ * console.log(meta.role); // 'Carrier'
115
+ * console.log(meta.plane); // 'Data'
116
+ * ```
117
+ */
118
+ getDOTSMetadata(tightRefs?: string[], looseRefs?: string[]): DOTSMetadata;
42
119
  }
43
120
  //# sourceMappingURL=MCard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MCard.d.ts","sourceRoot":"","sources":["../../src/model/MCard.ts"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AACH,qBAAa,KAAK;IACd,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAE9B,OAAO;IAQP;;OAEG;WACU,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,EAAE,aAAa,GAAE,MAAiB,GAAG,OAAO,CAAC,KAAK,CAAC;IAoBnG;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,KAAK;IAMzE;;OAEG;IACH,gBAAgB,IAAI,MAAM;IAI1B;;OAEG;IACH,UAAU,IAAI,UAAU;IAIxB;;OAEG;IACH,QAAQ,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE;CAS3G"}
1
+ {"version":3,"file":"MCard.d.ts","sourceRoot":"","sources":["../../src/model/MCard.ts"],"names":[],"mappings":"AAGA,OAAO,EAAgC,YAAY,EAA2B,MAAM,eAAe,CAAC;AAEpG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8DG;AACH,qBAAa,KAAK;IACd,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAE9B,SAAS,aAAa,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;IAQlH;;OAEG;WACU,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,EAAE,aAAa,GAAE,MAAiB,GAAG,OAAO,CAAC,KAAK,CAAC;IAoBnG;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,KAAK;IAMzE;;OAEG;IACH,gBAAgB,IAAI,MAAM;IAI1B;;OAEG;IACH,UAAU,IAAI,UAAU;IAIxB;;OAEG;IACH,QAAQ,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE;IAUxG;;;;;;;;;;;;;;;;;;;OAmBG;IACH,eAAe,CAAC,SAAS,GAAE,MAAM,EAAO,EAAE,SAAS,GAAE,MAAM,EAAO,GAAG,YAAY;CAGpF"}
@@ -1,12 +1,68 @@
1
1
  import { HashValidator } from '../hash/HashValidator';
2
2
  import { GTime } from './GTime';
3
3
  import { ContentTypeInterpreter } from './detectors/ContentTypeInterpreter';
4
+ import { createMCardDOTSMetadata } from '../types/dots';
4
5
  /**
5
6
  * MCard - Content-addressable data container
6
7
  *
8
+ * ## DOTS Vocabulary Role: CARRIER
9
+ *
10
+ * MCard is the **Carrier** in the Double Operadic Theory of Systems (DOTS).
11
+ * - Each MCard is an **Object** in the Carrier category Car(S)
12
+ * - Hash-links between MCards are **Morphisms** in Car(S)
13
+ * - The Carrier is the category of all actual data/systems
14
+ *
15
+ * ## EOS Role: Invariant Content (Galois Root)
16
+ *
17
+ * MCard provides the **Invariant Substrate** in Experimental-Operational Symmetry:
18
+ * - `Hash(Content)` is a **pure function** with no side effects
19
+ * - Same content in Dev = Same hash in Prod (environment-invariant)
20
+ * - This is the "Joint Reality" P(H,E) = P(E,H) in Bayesian terms
21
+ *
22
+ * ## MVP Cards Architecture: Data Plane
23
+ *
24
+ * ```
25
+ * ┌───────────────────────────────────────────────────────┐
26
+ * │ APPLICATION PLANE (VCard) │
27
+ * │ Value Exchange / AuthN/AuthZ / Sovereign Memory │
28
+ * └─────────────────────────┬─────────────────────────────┘
29
+ * │ (Policy Triggers)
30
+ * ┌─────────────────────────▼─────────────────────────────┐
31
+ * │ CONTROL PLANE (PCard) │
32
+ * │ Polynomial Functor Composition / Monadic Execution │
33
+ * └─────────────────────────┬─────────────────────────────┘
34
+ * │ (Hash References)
35
+ * ┌─────────────────────────▼─────────────────────────────┐
36
+ * │ DATA PLANE (MCard) ◀── YOU ARE HERE │
37
+ * │ Immutable, Content-Addressable Storage / Monad │
38
+ * └───────────────────────────────────────────────────────┘
39
+ * ```
40
+ *
41
+ * ## The Empty Schema Principle
42
+ *
43
+ * MCard embodies the Empty Schema Principle from the Wordless Book:
44
+ * - Schema contains NO domain-specific terms (only hash, content, g_time)
45
+ * - Domain customization happens via data (INSERT), not schema changes
46
+ * - Universal applicability: same structure for ANY domain
47
+ *
48
+ * ## Functional Requirements (from design docs)
49
+ *
50
+ * | ID | Requirement | Implementation |
51
+ * |----|-------------|----------------|
52
+ * | M-1 | Content-addressable via hash | `this.hash = SHA-256(content)` |
53
+ * | M-2 | CRD-only (no UPDATE) | Immutable class, `readonly` fields |
54
+ * | M-3 | Include g_time for ordering | `this.g_time` field |
55
+ * | M-4 | Human-readable content | `getContentAsText()` method |
56
+ * | EOS-M1 | Hash is pure function | No side effects in hash computation |
57
+ * | EOS-M2 | Content is immutable | All fields are `readonly` |
58
+ *
59
+ * @see {@link DOTSRole.CARRIER} for DOTS vocabulary definition
60
+ * @see {@link EOSRole.INVARIANT_CONTENT} for EOS role definition
61
+ * @see docs/WorkingNotes/Permanent/Projects/PKC Kernel/MCard.md for full specification
62
+ *
7
63
  * Each MCard has:
8
64
  * - content: Raw bytes (Uint8Array)
9
- * - hash: SHA-256 cryptographic hash
65
+ * - hash: SHA-256 cryptographic hash (the Carrier Object identity)
10
66
  * - g_time: Global timestamp with algorithm identifier
11
67
  */
12
68
  export class MCard {
@@ -72,5 +128,28 @@ export class MCard {
72
128
  hashFunction: this.hashFunction
73
129
  };
74
130
  }
131
+ /**
132
+ * Get DOTS vocabulary metadata for this MCard
133
+ *
134
+ * Returns the DOTS role information that positions this MCard
135
+ * in the Double Operadic Theory of Systems framework.
136
+ *
137
+ * MCard is always a CARRIER object in the Data Plane.
138
+ *
139
+ * @param tightRefs - Optional array of prerequisite MCard hashes (vertical composition)
140
+ * @param looseRefs - Optional array of alternative MCard hashes (horizontal composition)
141
+ * @returns DOTSMetadata describing this card's role in the compositional system
142
+ *
143
+ * @example
144
+ * ```typescript
145
+ * const card = await MCard.create('Hello World');
146
+ * const meta = card.getDOTSMetadata();
147
+ * console.log(meta.role); // 'Carrier'
148
+ * console.log(meta.plane); // 'Data'
149
+ * ```
150
+ */
151
+ getDOTSMetadata(tightRefs = [], looseRefs = []) {
152
+ return createMCardDOTSMetadata(tightRefs, looseRefs);
153
+ }
75
154
  }
76
155
  //# sourceMappingURL=MCard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MCard.js","sourceRoot":"","sources":["../../src/model/MCard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAE5E;;;;;;;GAOG;AACH,MAAM,OAAO,KAAK;IACL,OAAO,CAAa;IACpB,IAAI,CAAS;IACb,MAAM,CAAS;IACf,WAAW,CAAS,CAAC,wCAAwC;IAC7D,YAAY,CAAS;IAE9B,YAAoB,OAAmB,EAAE,IAAY,EAAE,MAAc,EAAE,WAAmB,EAAE,YAAoB;QAC5G,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAA4B,EAAE,gBAAwB,QAAQ;QAC9E,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAC3D,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,OAAO,KAAK,QAAQ;YACrC,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC;YACnC,CAAC,CAAC,OAAO,CAAC;QAEd,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC/C,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,WAAW,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;QACnE,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC7C,MAAM,WAAW,GAAG,sBAAsB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAEzD,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;IACtE,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,OAAmB,EAAE,IAAY,EAAE,MAAc;QAC7D,MAAM,GAAG,GAAG,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,WAAW,GAAG,sBAAsB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC3D,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC;IAC9D,CAAC;IAED;;OAEG;IACH,gBAAgB;QACZ,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,UAAU;QACN,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,QAAQ;QACJ,OAAO;YACH,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE;YAChC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;SAClC,CAAC;IACN,CAAC;CACJ"}
1
+ {"version":3,"file":"MCard.js","sourceRoot":"","sources":["../../src/model/MCard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * PCard Model (Control Plane) - Implementation of LENS/CHART.
3
+ *
4
+ * This module defines the PCard, which represents the execution unit in the DOTS framework.
5
+ * PCards are MCards that contain a valid CLM (Cubical Logic Model) specification.
6
+ */
7
+ import { MCard } from './MCard';
8
+ import { DOTSMetadata } from '../types/dots';
9
+ /**
10
+ * PCard - The Control Plane unit (Lens + Chart)
11
+ *
12
+ * A PCard is an MCard whose content is a valid CLM specification.
13
+ * It represents a transformation (Lens) with a specific interaction pattern (Chart).
14
+ */
15
+ export declare class PCard extends MCard {
16
+ private readonly parsedClm;
17
+ private readonly isLens;
18
+ protected constructor(content: Uint8Array, hash: string, g_time: string, contentType: string, hashFunction: string, parsedClm: any, isLens: boolean);
19
+ /**
20
+ * Create a new PCard from CLM content
21
+ *
22
+ * @param content - The CLM YAML string or bytes
23
+ * @param hashAlgorithm - Hash algorithm to use
24
+ * @param isLens - Whether this acts primarily as a Lens (default true)
25
+ */
26
+ static create(content: string | Uint8Array, hashAlgorithm?: string, isLens?: boolean): Promise<PCard>;
27
+ /**
28
+ * Get DOTS vocabulary metadata for this PCard
29
+ *
30
+ * Automatically extracts dependencies from the CLM structure if available.
31
+ */
32
+ getDOTSMetadata(): DOTSMetadata;
33
+ /**
34
+ * Get the parsed CLM object
35
+ */
36
+ get clm(): any;
37
+ /**
38
+ * Get the Abstract Specification section
39
+ */
40
+ get abstractSpec(): any;
41
+ /**
42
+ * Get the Concrete Implementation section
43
+ */
44
+ get concreteImpl(): any;
45
+ /**
46
+ * Get the Balanced Expectations (tests) section
47
+ */
48
+ get balancedExpectations(): any;
49
+ }
50
+ //# sourceMappingURL=PCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PCard.d.ts","sourceRoot":"","sources":["../../src/model/PCard.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAIhC,OAAO,EAAE,YAAY,EAA2B,MAAM,eAAe,CAAC;AAEtE;;;;;GAKG;AACH,qBAAa,KAAM,SAAQ,KAAK;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAM;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IAEjC,SAAS,aACL,OAAO,EAAE,UAAU,EACnB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,GAAG,EACd,MAAM,EAAE,OAAO;IAOnB;;;;;;OAMG;WACU,MAAM,CACf,OAAO,EAAE,MAAM,GAAG,UAAU,EAC5B,aAAa,GAAE,MAAiB,EAChC,MAAM,GAAE,OAAc,GACvB,OAAO,CAAC,KAAK,CAAC;IA+BjB;;;;OAIG;IACH,eAAe,IAAI,YAAY;IA0B/B;;OAEG;IACH,IAAI,GAAG,IAAI,GAAG,CAEb;IAED;;OAEG;IACH,IAAI,YAAY,IAAI,GAAG,CAEtB;IAED;;OAEG;IACH,IAAI,YAAY,IAAI,GAAG,CAEtB;IAED;;OAEG;IACH,IAAI,oBAAoB,IAAI,GAAG,CAE9B;CACJ"}
@@ -0,0 +1,110 @@
1
+ /**
2
+ * PCard Model (Control Plane) - Implementation of LENS/CHART.
3
+ *
4
+ * This module defines the PCard, which represents the execution unit in the DOTS framework.
5
+ * PCards are MCards that contain a valid CLM (Cubical Logic Model) specification.
6
+ */
7
+ import { parse } from 'yaml';
8
+ import { MCard } from './MCard';
9
+ import { HashValidator } from '../hash/HashValidator';
10
+ import { GTime } from './GTime';
11
+ import { ContentTypeInterpreter } from './detectors/ContentTypeInterpreter';
12
+ import { createPCardDOTSMetadata } from '../types/dots';
13
+ /**
14
+ * PCard - The Control Plane unit (Lens + Chart)
15
+ *
16
+ * A PCard is an MCard whose content is a valid CLM specification.
17
+ * It represents a transformation (Lens) with a specific interaction pattern (Chart).
18
+ */
19
+ export class PCard extends MCard {
20
+ parsedClm;
21
+ isLens;
22
+ constructor(content, hash, g_time, contentType, hashFunction, parsedClm, isLens) {
23
+ super(content, hash, g_time, contentType, hashFunction);
24
+ this.parsedClm = parsedClm;
25
+ this.isLens = isLens;
26
+ }
27
+ /**
28
+ * Create a new PCard from CLM content
29
+ *
30
+ * @param content - The CLM YAML string or bytes
31
+ * @param hashAlgorithm - Hash algorithm to use
32
+ * @param isLens - Whether this acts primarily as a Lens (default true)
33
+ */
34
+ static async create(content, hashAlgorithm = 'sha256', isLens = true) {
35
+ let textContent;
36
+ let bytes;
37
+ // Ensure we have both text and bytes
38
+ if (typeof content === 'string') {
39
+ textContent = content;
40
+ bytes = new TextEncoder().encode(content);
41
+ }
42
+ else {
43
+ bytes = content;
44
+ textContent = new TextDecoder().decode(content);
45
+ }
46
+ // Validate YAML and CLM structure
47
+ let parsedClm;
48
+ try {
49
+ parsedClm = parse(textContent);
50
+ if (typeof parsedClm !== 'object' || parsedClm === null) {
51
+ throw new Error('PCard content must be a YAML dictionary');
52
+ }
53
+ }
54
+ catch (e) {
55
+ throw new Error(`Invalid YAML content for PCard: ${e.message}`);
56
+ }
57
+ const hash = await HashValidator.computeHash(bytes, hashAlgorithm);
58
+ const g_time = GTime.stampNow(hashAlgorithm);
59
+ const contentType = ContentTypeInterpreter.detect(bytes);
60
+ return new PCard(bytes, hash, g_time, contentType, hashAlgorithm, parsedClm, isLens);
61
+ }
62
+ /**
63
+ * Get DOTS vocabulary metadata for this PCard
64
+ *
65
+ * Automatically extracts dependencies from the CLM structure if available.
66
+ */
67
+ getDOTSMetadata() {
68
+ const tightRefs = [];
69
+ const looseRefs = [];
70
+ // Extract dependencies from standard CLM fields
71
+ if (Array.isArray(this.parsedClm.tight_deps)) {
72
+ tightRefs.push(...this.parsedClm.tight_deps);
73
+ }
74
+ if (Array.isArray(this.parsedClm.dependencies)) {
75
+ tightRefs.push(...this.parsedClm.dependencies);
76
+ }
77
+ if (Array.isArray(this.parsedClm.loose_deps)) {
78
+ looseRefs.push(...this.parsedClm.loose_deps);
79
+ }
80
+ if (Array.isArray(this.parsedClm.alternatives)) {
81
+ looseRefs.push(...this.parsedClm.alternatives);
82
+ }
83
+ return createPCardDOTSMetadata(this.isLens, tightRefs, looseRefs);
84
+ }
85
+ /**
86
+ * Get the parsed CLM object
87
+ */
88
+ get clm() {
89
+ return this.parsedClm;
90
+ }
91
+ /**
92
+ * Get the Abstract Specification section
93
+ */
94
+ get abstractSpec() {
95
+ return this.parsedClm.abstract_spec;
96
+ }
97
+ /**
98
+ * Get the Concrete Implementation section
99
+ */
100
+ get concreteImpl() {
101
+ return this.parsedClm.concrete_impl || this.parsedClm.impl;
102
+ }
103
+ /**
104
+ * Get the Balanced Expectations (tests) section
105
+ */
106
+ get balancedExpectations() {
107
+ return this.parsedClm.balanced_expectations || this.parsedClm.expectations;
108
+ }
109
+ }
110
+ //# sourceMappingURL=PCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PCard.js","sourceRoot":"","sources":["../../src/model/PCard.ts"],"names":[],"mappings":"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"}