@gitgov/core 2.2.0 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -84,16 +84,19 @@ await batchStore.putMany([
84
84
  graph LR
85
85
  subgraph "@gitgov/core — Pure Logic"
86
86
  Adapters["Adapters (10)"]
87
- Modules["Modules (24)"]
87
+ Modules["Modules (26)"]
88
88
  Records["Record System"]
89
+ Projection["RecordProjector + IRecordProjection"]
89
90
 
90
91
  Adapters --> Modules
91
92
  Adapters --> Records
92
93
  Modules --> Records
94
+ Modules --> Projection
93
95
  end
94
96
 
95
97
  subgraph "@gitgov/core/fs — Local I/O"
96
98
  FsStore["FsRecordStore"]
99
+ FsProjection["FsRecordProjection"]
97
100
  FsGit["LocalGitModule"]
98
101
  FsLint["FsLintModule"]
99
102
  FsOther["FsKeyProvider, FsFileLister, ..."]
@@ -108,13 +111,21 @@ graph LR
108
111
 
109
112
  subgraph "@gitgov/core/memory — Testing"
110
113
  MemStore["MemoryRecordStore"]
114
+ MemProjection["MemoryRecordProjection"]
111
115
  MemGit["MemoryGitModule"]
112
116
  MemOther["MockKeyProvider, MemoryFileLister"]
113
117
  end
114
118
 
119
+ subgraph "@gitgov/core/prisma — Database"
120
+ PrismaProjection["PrismaRecordProjection"]
121
+ end
122
+
115
123
  Adapters -.->|DI| FsStore
116
124
  Adapters -.->|DI| GhStore
117
125
  Adapters -.->|DI| MemStore
126
+ Projection -.->|sink| FsProjection
127
+ Projection -.->|sink| MemProjection
128
+ Projection -.->|sink| PrismaProjection
118
129
 
119
130
  CLI["@gitgov/cli"] --> Adapters
120
131
  SaaS["@gitgov/saas-api"] --> Adapters
@@ -124,18 +135,20 @@ graph LR
124
135
  style FsStore fill:#e3f2fd,stroke:#1976d2
125
136
  style GhStore fill:#f3e5f5,stroke:#7b1fa2
126
137
  style MemStore fill:#fff3e0,stroke:#f57c00
138
+ style PrismaProjection fill:#fce4ec,stroke:#c62828
127
139
  ```
128
140
 
129
- ### 4 Export Paths
141
+ ### 5 Export Paths
130
142
 
131
143
  | Import | Contents | I/O |
132
144
  |--------|----------|-----|
133
145
  | `@gitgov/core` | Interfaces, types, pure logic, factories, validators | No |
134
- | `@gitgov/core/fs` | Filesystem implementations (FsRecordStore, LocalGitModule, FsLintModule, ...) | Local |
146
+ | `@gitgov/core/fs` | Filesystem implementations (FsRecordStore, FsRecordProjection, LocalGitModule, FsLintModule, ...) | Local |
135
147
  | `@gitgov/core/github` | GitHub API implementations (GitHubRecordStore, GitHubGitModule, GitHubConfigStore, GitHubFileLister) | Remote |
136
- | `@gitgov/core/memory` | In-memory implementations for testing (MemoryRecordStore, MemoryGitModule, ...) | No |
148
+ | `@gitgov/core/memory` | In-memory implementations for testing (MemoryRecordStore, MemoryRecordProjection, MemoryGitModule, ...) | No |
149
+ | `@gitgov/core/prisma` | Database-backed implementations via Prisma-compatible client (PrismaRecordProjection) | Remote |
137
150
 
138
- The root import (`@gitgov/core`) never imports `fs`, `path`, `child_process`, or `@octokit/rest`.
151
+ The root import (`@gitgov/core`) never imports `fs`, `path`, `child_process`, `@octokit/rest`, or `@prisma/client`.
139
152
 
140
153
  ### Record Symmetry
141
154
 
@@ -176,6 +189,8 @@ Adapters are orchestrators that compose modules. All receive dependencies via co
176
189
  | `record_validations/` | Business validators (above schema) |
177
190
  | `record_schemas/` | JSON Schemas + schema cache + errors |
178
191
  | `record_store/` | `RecordStore<V, R, O>` interface (impl in fs/memory/github) |
192
+ | `record_projection/` | `IRecordProjection` interface + RecordProjector engine (drivers: fs/memory/prisma) |
193
+ | `record_metrics/` | RecordMetrics calculation engine (system status, productivity, collaboration) |
179
194
  | `config_store/` | Storage for project config.json (impl in fs/github) |
180
195
  | `config_manager/` | Typed access to config.json (versioned in git) |
181
196
  | `session_store/` | Storage for .session.json |