@medicine-wheel/developer-repository-mapping 0.0.0-stage → 0.22.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.
Files changed (74) hide show
  1. package/README.md +68 -2
  2. package/dist/check.d.ts +28 -0
  3. package/dist/check.d.ts.map +1 -0
  4. package/dist/check.js +111 -0
  5. package/dist/check.js.map +1 -0
  6. package/dist/cli.d.ts +26 -0
  7. package/dist/cli.d.ts.map +1 -0
  8. package/dist/cli.js +408 -0
  9. package/dist/cli.js.map +1 -0
  10. package/dist/ids.d.ts +28 -0
  11. package/dist/ids.d.ts.map +1 -0
  12. package/dist/ids.js +68 -0
  13. package/dist/ids.js.map +1 -0
  14. package/dist/index.d.ts +40 -0
  15. package/dist/index.d.ts.map +1 -0
  16. package/dist/index.js +89 -0
  17. package/dist/index.js.map +1 -0
  18. package/dist/jsonl.d.ts +19 -0
  19. package/dist/jsonl.d.ts.map +1 -0
  20. package/dist/jsonl.js +63 -0
  21. package/dist/jsonl.js.map +1 -0
  22. package/dist/lifecycle.d.ts +53 -0
  23. package/dist/lifecycle.d.ts.map +1 -0
  24. package/dist/lifecycle.js +78 -0
  25. package/dist/lifecycle.js.map +1 -0
  26. package/dist/merge.d.ts +30 -0
  27. package/dist/merge.d.ts.map +1 -0
  28. package/dist/merge.js +94 -0
  29. package/dist/merge.js.map +1 -0
  30. package/dist/node/fs.d.ts +28 -0
  31. package/dist/node/fs.d.ts.map +1 -0
  32. package/dist/node/fs.js +162 -0
  33. package/dist/node/fs.js.map +1 -0
  34. package/dist/node/git.d.ts +15 -0
  35. package/dist/node/git.d.ts.map +1 -0
  36. package/dist/node/git.js +73 -0
  37. package/dist/node/git.js.map +1 -0
  38. package/dist/node/hub.d.ts +45 -0
  39. package/dist/node/hub.d.ts.map +1 -0
  40. package/dist/node/hub.js +113 -0
  41. package/dist/node/hub.js.map +1 -0
  42. package/dist/node/index.d.ts +16 -0
  43. package/dist/node/index.d.ts.map +1 -0
  44. package/dist/node/index.js +30 -0
  45. package/dist/node/index.js.map +1 -0
  46. package/dist/node/page.d.ts +9 -0
  47. package/dist/node/page.d.ts.map +1 -0
  48. package/dist/node/page.js +219 -0
  49. package/dist/node/page.js.map +1 -0
  50. package/dist/node/server.d.ts +33 -0
  51. package/dist/node/server.d.ts.map +1 -0
  52. package/dist/node/server.js +111 -0
  53. package/dist/node/server.js.map +1 -0
  54. package/dist/read.d.ts +13 -0
  55. package/dist/read.d.ts.map +1 -0
  56. package/dist/read.js +38 -0
  57. package/dist/read.js.map +1 -0
  58. package/dist/schemas.d.ts +409 -0
  59. package/dist/schemas.d.ts.map +1 -0
  60. package/dist/schemas.js +160 -0
  61. package/dist/schemas.js.map +1 -0
  62. package/dist/summary.d.ts +31 -0
  63. package/dist/summary.d.ts.map +1 -0
  64. package/dist/summary.js +64 -0
  65. package/dist/summary.js.map +1 -0
  66. package/dist/types.d.ts +184 -0
  67. package/dist/types.d.ts.map +1 -0
  68. package/dist/types.js +36 -0
  69. package/dist/types.js.map +1 -0
  70. package/dist/wheel.d.ts +14 -0
  71. package/dist/wheel.d.ts.map +1 -0
  72. package/dist/wheel.js +74 -0
  73. package/dist/wheel.js.map +1 -0
  74. package/package.json +63 -4
@@ -0,0 +1,409 @@
1
+ /**
2
+ * Zod schemas for every row a mapping folder holds.
3
+ *
4
+ * Strict objects, for the reason `@medicine-wheel/capabilities` gives: in rows
5
+ * written by models, an unknown key is far more often a misspelling than a new
6
+ * field. Endpoint kinds are checked per relation name, so a `realizes` that
7
+ * starts from a repository fails on its own line, not later in a graph.
8
+ *
9
+ * Each shape lists the row's identity first and its attribution last. Parsing
10
+ * returns keys in shape order, so a row read and written back comes out in the
11
+ * same order every time, and rewriting one row leaves the others' lines as they were.
12
+ */
13
+ import { z } from 'zod';
14
+ export declare const LifecycleSchema: z.ZodEnum<["unclassified", "prototype", "implementation", "maintained", "archived"]>;
15
+ export declare const LifecycleEventSchema: z.ZodEnum<["explore", "implement", "concretize", "release", "archive", "reopen"]>;
16
+ export declare const OriginSchema: z.ZodEnum<["own", "agent", "community-fork"]>;
17
+ export declare const DeveloperEdgeNameSchema: z.ZodEnum<["forked-from", "grew-into", "provides", "realizes", "consumes", "field-aligns-with"]>;
18
+ export declare const RepositoryNodeIdSchema: z.ZodString;
19
+ export declare const FeatureNodeIdSchema: z.ZodString;
20
+ export declare const ResearchFieldNodeIdSchema: z.ZodString;
21
+ export declare const PrototypeNodeIdSchema: z.ZodString;
22
+ export declare const ActivityReadingSchema: z.ZodObject<{
23
+ observedBy: z.ZodString;
24
+ observedAt: z.ZodString;
25
+ commits: z.ZodNumber;
26
+ commitsLast90Days: z.ZodNumber;
27
+ firstCommitAt: z.ZodOptional<z.ZodString>;
28
+ lastCommitAt: z.ZodOptional<z.ZodString>;
29
+ tags: z.ZodNumber;
30
+ branch: z.ZodOptional<z.ZodString>;
31
+ head: z.ZodOptional<z.ZodString>;
32
+ }, "strict", z.ZodTypeAny, {
33
+ observedBy: string;
34
+ observedAt: string;
35
+ commits: number;
36
+ commitsLast90Days: number;
37
+ tags: number;
38
+ firstCommitAt?: string | undefined;
39
+ lastCommitAt?: string | undefined;
40
+ branch?: string | undefined;
41
+ head?: string | undefined;
42
+ }, {
43
+ observedBy: string;
44
+ observedAt: string;
45
+ commits: number;
46
+ commitsLast90Days: number;
47
+ tags: number;
48
+ firstCommitAt?: string | undefined;
49
+ lastCommitAt?: string | undefined;
50
+ branch?: string | undefined;
51
+ head?: string | undefined;
52
+ }>;
53
+ export declare const RepositoryFacetSchema: z.ZodEffects<z.ZodObject<{
54
+ statedBy: z.ZodString;
55
+ statedAt: z.ZodString;
56
+ grounding: z.ZodArray<z.ZodString, "many">;
57
+ revision: z.ZodEnum<["pending", "revised", "affirmed"]>;
58
+ revisedBy: z.ZodOptional<z.ZodString>;
59
+ revisedAt: z.ZodOptional<z.ZodString>;
60
+ nodeId: z.ZodString;
61
+ origin: z.ZodEnum<["own", "agent", "community-fork"]>;
62
+ lifecycle: z.ZodEnum<["unclassified", "prototype", "implementation", "maintained", "archived"]>;
63
+ purpose: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
64
+ horizon: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
65
+ status: z.ZodEnum<["clear", "unclear", "undefinable", "needs-resolution"]>;
66
+ fields: z.ZodArray<z.ZodString, "many">;
67
+ prototypes: z.ZodArray<z.ZodString, "many">;
68
+ holder: z.ZodOptional<z.ZodString>;
69
+ observed: z.ZodOptional<z.ZodObject<{
70
+ observedBy: z.ZodString;
71
+ observedAt: z.ZodString;
72
+ commits: z.ZodNumber;
73
+ commitsLast90Days: z.ZodNumber;
74
+ firstCommitAt: z.ZodOptional<z.ZodString>;
75
+ lastCommitAt: z.ZodOptional<z.ZodString>;
76
+ tags: z.ZodNumber;
77
+ branch: z.ZodOptional<z.ZodString>;
78
+ head: z.ZodOptional<z.ZodString>;
79
+ }, "strict", z.ZodTypeAny, {
80
+ observedBy: string;
81
+ observedAt: string;
82
+ commits: number;
83
+ commitsLast90Days: number;
84
+ tags: number;
85
+ firstCommitAt?: string | undefined;
86
+ lastCommitAt?: string | undefined;
87
+ branch?: string | undefined;
88
+ head?: string | undefined;
89
+ }, {
90
+ observedBy: string;
91
+ observedAt: string;
92
+ commits: number;
93
+ commitsLast90Days: number;
94
+ tags: number;
95
+ firstCommitAt?: string | undefined;
96
+ lastCommitAt?: string | undefined;
97
+ branch?: string | undefined;
98
+ head?: string | undefined;
99
+ }>>;
100
+ }, "strict", z.ZodTypeAny, {
101
+ nodeId: string;
102
+ lifecycle: "unclassified" | "prototype" | "implementation" | "maintained" | "archived";
103
+ origin: "own" | "agent" | "community-fork";
104
+ status: "clear" | "unclear" | "undefinable" | "needs-resolution";
105
+ fields: string[];
106
+ prototypes: string[];
107
+ statedBy: string;
108
+ statedAt: string;
109
+ grounding: string[];
110
+ revision: "pending" | "revised" | "affirmed";
111
+ observed?: {
112
+ observedBy: string;
113
+ observedAt: string;
114
+ commits: number;
115
+ commitsLast90Days: number;
116
+ tags: number;
117
+ firstCommitAt?: string | undefined;
118
+ lastCommitAt?: string | undefined;
119
+ branch?: string | undefined;
120
+ head?: string | undefined;
121
+ } | undefined;
122
+ purpose?: string | undefined;
123
+ horizon?: string | undefined;
124
+ holder?: string | undefined;
125
+ revisedBy?: string | undefined;
126
+ revisedAt?: string | undefined;
127
+ }, {
128
+ nodeId: string;
129
+ lifecycle: "unclassified" | "prototype" | "implementation" | "maintained" | "archived";
130
+ origin: "own" | "agent" | "community-fork";
131
+ status: "clear" | "unclear" | "undefinable" | "needs-resolution";
132
+ fields: string[];
133
+ prototypes: string[];
134
+ statedBy: string;
135
+ statedAt: string;
136
+ grounding: string[];
137
+ revision: "pending" | "revised" | "affirmed";
138
+ observed?: {
139
+ observedBy: string;
140
+ observedAt: string;
141
+ commits: number;
142
+ commitsLast90Days: number;
143
+ tags: number;
144
+ firstCommitAt?: string | undefined;
145
+ lastCommitAt?: string | undefined;
146
+ branch?: string | undefined;
147
+ head?: string | undefined;
148
+ } | undefined;
149
+ purpose?: string | undefined;
150
+ horizon?: string | undefined;
151
+ holder?: string | undefined;
152
+ revisedBy?: string | undefined;
153
+ revisedAt?: string | undefined;
154
+ }>, {
155
+ nodeId: string;
156
+ lifecycle: "unclassified" | "prototype" | "implementation" | "maintained" | "archived";
157
+ origin: "own" | "agent" | "community-fork";
158
+ status: "clear" | "unclear" | "undefinable" | "needs-resolution";
159
+ fields: string[];
160
+ prototypes: string[];
161
+ statedBy: string;
162
+ statedAt: string;
163
+ grounding: string[];
164
+ revision: "pending" | "revised" | "affirmed";
165
+ observed?: {
166
+ observedBy: string;
167
+ observedAt: string;
168
+ commits: number;
169
+ commitsLast90Days: number;
170
+ tags: number;
171
+ firstCommitAt?: string | undefined;
172
+ lastCommitAt?: string | undefined;
173
+ branch?: string | undefined;
174
+ head?: string | undefined;
175
+ } | undefined;
176
+ purpose?: string | undefined;
177
+ horizon?: string | undefined;
178
+ holder?: string | undefined;
179
+ revisedBy?: string | undefined;
180
+ revisedAt?: string | undefined;
181
+ }, {
182
+ nodeId: string;
183
+ lifecycle: "unclassified" | "prototype" | "implementation" | "maintained" | "archived";
184
+ origin: "own" | "agent" | "community-fork";
185
+ status: "clear" | "unclear" | "undefinable" | "needs-resolution";
186
+ fields: string[];
187
+ prototypes: string[];
188
+ statedBy: string;
189
+ statedAt: string;
190
+ grounding: string[];
191
+ revision: "pending" | "revised" | "affirmed";
192
+ observed?: {
193
+ observedBy: string;
194
+ observedAt: string;
195
+ commits: number;
196
+ commitsLast90Days: number;
197
+ tags: number;
198
+ firstCommitAt?: string | undefined;
199
+ lastCommitAt?: string | undefined;
200
+ branch?: string | undefined;
201
+ head?: string | undefined;
202
+ } | undefined;
203
+ purpose?: string | undefined;
204
+ horizon?: string | undefined;
205
+ holder?: string | undefined;
206
+ revisedBy?: string | undefined;
207
+ revisedAt?: string | undefined;
208
+ }>;
209
+ export declare const FeatureFacetSchema: z.ZodEffects<z.ZodObject<{
210
+ statedBy: z.ZodString;
211
+ statedAt: z.ZodString;
212
+ grounding: z.ZodArray<z.ZodString, "many">;
213
+ revision: z.ZodEnum<["pending", "revised", "affirmed"]>;
214
+ revisedBy: z.ZodOptional<z.ZodString>;
215
+ revisedAt: z.ZodOptional<z.ZodString>;
216
+ nodeId: z.ZodString;
217
+ repository: z.ZodString;
218
+ name: z.ZodString;
219
+ statement: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
220
+ status: z.ZodEnum<["clear", "unclear", "undefinable", "needs-resolution"]>;
221
+ realizes: z.ZodOptional<z.ZodString>;
222
+ }, "strict", z.ZodTypeAny, {
223
+ nodeId: string;
224
+ repository: string;
225
+ status: "clear" | "unclear" | "undefinable" | "needs-resolution";
226
+ statedBy: string;
227
+ statedAt: string;
228
+ grounding: string[];
229
+ revision: "pending" | "revised" | "affirmed";
230
+ name: string;
231
+ realizes?: string | undefined;
232
+ revisedBy?: string | undefined;
233
+ revisedAt?: string | undefined;
234
+ statement?: string | undefined;
235
+ }, {
236
+ nodeId: string;
237
+ repository: string;
238
+ status: "clear" | "unclear" | "undefinable" | "needs-resolution";
239
+ statedBy: string;
240
+ statedAt: string;
241
+ grounding: string[];
242
+ revision: "pending" | "revised" | "affirmed";
243
+ name: string;
244
+ realizes?: string | undefined;
245
+ revisedBy?: string | undefined;
246
+ revisedAt?: string | undefined;
247
+ statement?: string | undefined;
248
+ }>, {
249
+ nodeId: string;
250
+ repository: string;
251
+ status: "clear" | "unclear" | "undefinable" | "needs-resolution";
252
+ statedBy: string;
253
+ statedAt: string;
254
+ grounding: string[];
255
+ revision: "pending" | "revised" | "affirmed";
256
+ name: string;
257
+ realizes?: string | undefined;
258
+ revisedBy?: string | undefined;
259
+ revisedAt?: string | undefined;
260
+ statement?: string | undefined;
261
+ }, {
262
+ nodeId: string;
263
+ repository: string;
264
+ status: "clear" | "unclear" | "undefinable" | "needs-resolution";
265
+ statedBy: string;
266
+ statedAt: string;
267
+ grounding: string[];
268
+ revision: "pending" | "revised" | "affirmed";
269
+ name: string;
270
+ realizes?: string | undefined;
271
+ revisedBy?: string | undefined;
272
+ revisedAt?: string | undefined;
273
+ statement?: string | undefined;
274
+ }>;
275
+ export declare const RelationRowSchema: z.ZodEffects<z.ZodObject<{
276
+ statedBy: z.ZodString;
277
+ statedAt: z.ZodString;
278
+ grounding: z.ZodArray<z.ZodString, "many">;
279
+ revision: z.ZodEnum<["pending", "revised", "affirmed"]>;
280
+ revisedBy: z.ZodOptional<z.ZodString>;
281
+ revisedAt: z.ZodOptional<z.ZodString>;
282
+ from: z.ZodString;
283
+ to: z.ZodString;
284
+ type: z.ZodEnum<["forked-from", "grew-into", "provides", "realizes", "consumes", "field-aligns-with"]>;
285
+ description: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
286
+ }, "strict", z.ZodTypeAny, {
287
+ to: string;
288
+ statedBy: string;
289
+ statedAt: string;
290
+ grounding: string[];
291
+ revision: "pending" | "revised" | "affirmed";
292
+ type: "forked-from" | "grew-into" | "provides" | "realizes" | "consumes" | "field-aligns-with";
293
+ from: string;
294
+ revisedBy?: string | undefined;
295
+ revisedAt?: string | undefined;
296
+ description?: string | undefined;
297
+ }, {
298
+ to: string;
299
+ statedBy: string;
300
+ statedAt: string;
301
+ grounding: string[];
302
+ revision: "pending" | "revised" | "affirmed";
303
+ type: "forked-from" | "grew-into" | "provides" | "realizes" | "consumes" | "field-aligns-with";
304
+ from: string;
305
+ revisedBy?: string | undefined;
306
+ revisedAt?: string | undefined;
307
+ description?: string | undefined;
308
+ }>, {
309
+ to: string;
310
+ statedBy: string;
311
+ statedAt: string;
312
+ grounding: string[];
313
+ revision: "pending" | "revised" | "affirmed";
314
+ type: "forked-from" | "grew-into" | "provides" | "realizes" | "consumes" | "field-aligns-with";
315
+ from: string;
316
+ revisedBy?: string | undefined;
317
+ revisedAt?: string | undefined;
318
+ description?: string | undefined;
319
+ }, {
320
+ to: string;
321
+ statedBy: string;
322
+ statedAt: string;
323
+ grounding: string[];
324
+ revision: "pending" | "revised" | "affirmed";
325
+ type: "forked-from" | "grew-into" | "provides" | "realizes" | "consumes" | "field-aligns-with";
326
+ from: string;
327
+ revisedBy?: string | undefined;
328
+ revisedAt?: string | undefined;
329
+ description?: string | undefined;
330
+ }>;
331
+ export declare const OwnerRegistrationSchema: z.ZodEffects<z.ZodObject<{
332
+ owner: z.ZodString;
333
+ hub: z.ZodString;
334
+ source: z.ZodOptional<z.ZodString>;
335
+ holder: z.ZodOptional<z.ZodString>;
336
+ registeredBy: z.ZodString;
337
+ registeredAt: z.ZodString;
338
+ }, "strict", z.ZodTypeAny, {
339
+ owner: string;
340
+ hub: string;
341
+ registeredBy: string;
342
+ registeredAt: string;
343
+ holder?: string | undefined;
344
+ source?: string | undefined;
345
+ }, {
346
+ owner: string;
347
+ hub: string;
348
+ registeredBy: string;
349
+ registeredAt: string;
350
+ holder?: string | undefined;
351
+ source?: string | undefined;
352
+ }>, {
353
+ owner: string;
354
+ hub: string;
355
+ registeredBy: string;
356
+ registeredAt: string;
357
+ holder?: string | undefined;
358
+ source?: string | undefined;
359
+ }, {
360
+ owner: string;
361
+ hub: string;
362
+ registeredBy: string;
363
+ registeredAt: string;
364
+ holder?: string | undefined;
365
+ source?: string | undefined;
366
+ }>;
367
+ export declare const MappingManifestSchema: z.ZodEffects<z.ZodObject<{
368
+ schema: z.ZodLiteral<"medicine-wheel/repository-mapping">;
369
+ version: z.ZodLiteral<1>;
370
+ owner: z.ZodString;
371
+ hub: z.ZodString;
372
+ kind: z.ZodEnum<["owner", "meta"]>;
373
+ description: z.ZodOptional<z.ZodString>;
374
+ }, "strict", z.ZodTypeAny, {
375
+ owner: string;
376
+ hub: string;
377
+ schema: "medicine-wheel/repository-mapping";
378
+ version: 1;
379
+ kind: "owner" | "meta";
380
+ description?: string | undefined;
381
+ }, {
382
+ owner: string;
383
+ hub: string;
384
+ schema: "medicine-wheel/repository-mapping";
385
+ version: 1;
386
+ kind: "owner" | "meta";
387
+ description?: string | undefined;
388
+ }>, {
389
+ owner: string;
390
+ hub: string;
391
+ schema: "medicine-wheel/repository-mapping";
392
+ version: 1;
393
+ kind: "owner" | "meta";
394
+ description?: string | undefined;
395
+ }, {
396
+ owner: string;
397
+ hub: string;
398
+ schema: "medicine-wheel/repository-mapping";
399
+ version: 1;
400
+ kind: "owner" | "meta";
401
+ description?: string | undefined;
402
+ }>;
403
+ export type ValidatedActivityReading = z.infer<typeof ActivityReadingSchema>;
404
+ export type ValidatedRepositoryFacet = z.infer<typeof RepositoryFacetSchema>;
405
+ export type ValidatedFeatureFacet = z.infer<typeof FeatureFacetSchema>;
406
+ export type ValidatedRelationRow = z.infer<typeof RelationRowSchema>;
407
+ export type ValidatedOwnerRegistration = z.infer<typeof OwnerRegistrationSchema>;
408
+ export type ValidatedMappingManifest = z.infer<typeof MappingManifestSchema>;
409
+ //# sourceMappingURL=schemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAaxB,eAAO,MAAM,eAAe,sFAAoF,CAAC;AAEjH,eAAO,MAAM,oBAAoB,mFAAiF,CAAC;AAEnH,eAAO,MAAM,YAAY,+CAA6C,CAAC;AAEvE,eAAO,MAAM,uBAAuB,kGAOlC,CAAC;AAEH,eAAO,MAAM,sBAAsB,aAAkF,CAAC;AACtH,eAAO,MAAM,mBAAmB,aAEgD,CAAC;AACjF,eAAO,MAAM,yBAAyB,aAEgD,CAAC;AACvF,eAAO,MAAM,qBAAqB,aAAuE,CAAC;AAE1G,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYvB,CAAC;AAEZ,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkB9B,CAAC;AAEL,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqB3B,CAAC;AAsBL,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkB1B,CAAC;AAEL,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAchC,CAAC;AAEL,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAc9B,CAAC;AAEL,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAC7E,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAC7E,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AACvE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AACrE,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACjF,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
@@ -0,0 +1,160 @@
1
+ "use strict";
2
+ /**
3
+ * Zod schemas for every row a mapping folder holds.
4
+ *
5
+ * Strict objects, for the reason `@medicine-wheel/capabilities` gives: in rows
6
+ * written by models, an unknown key is far more often a misspelling than a new
7
+ * field. Endpoint kinds are checked per relation name, so a `realizes` that
8
+ * starts from a repository fails on its own line, not later in a graph.
9
+ *
10
+ * Each shape lists the row's identity first and its attribution last. Parsing
11
+ * returns keys in shape order, so a row read and written back comes out in the
12
+ * same order every time, and rewriting one row leaves the others' lines as they were.
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.MappingManifestSchema = exports.OwnerRegistrationSchema = exports.RelationRowSchema = exports.FeatureFacetSchema = exports.RepositoryFacetSchema = exports.ActivityReadingSchema = exports.PrototypeNodeIdSchema = exports.ResearchFieldNodeIdSchema = exports.FeatureNodeIdSchema = exports.RepositoryNodeIdSchema = exports.DeveloperEdgeNameSchema = exports.OriginSchema = exports.LifecycleEventSchema = exports.LifecycleSchema = void 0;
16
+ const zod_1 = require("zod");
17
+ const capabilities_1 = require("@medicine-wheel/capabilities");
18
+ const ids_1 = require("./ids");
19
+ const types_1 = require("./types");
20
+ exports.LifecycleSchema = zod_1.z.enum(['unclassified', 'prototype', 'implementation', 'maintained', 'archived']);
21
+ exports.LifecycleEventSchema = zod_1.z.enum(['explore', 'implement', 'concretize', 'release', 'archive', 'reopen']);
22
+ exports.OriginSchema = zod_1.z.enum(['own', 'agent', 'community-fork']);
23
+ exports.DeveloperEdgeNameSchema = zod_1.z.enum([
24
+ 'forked-from',
25
+ 'grew-into',
26
+ 'provides',
27
+ 'realizes',
28
+ 'consumes',
29
+ 'field-aligns-with',
30
+ ]);
31
+ exports.RepositoryNodeIdSchema = zod_1.z.string().regex(ids_1.REPOSITORY_ID, 'a repository id is repository:<owner>/<name>');
32
+ exports.FeatureNodeIdSchema = zod_1.z
33
+ .string()
34
+ .regex(ids_1.FEATURE_ID, 'a feature id is feature:<owner>/<name>#<kebab-case-slug>');
35
+ exports.ResearchFieldNodeIdSchema = zod_1.z
36
+ .string()
37
+ .regex(ids_1.RESEARCH_FIELD_ID, 'a research field id is research-field:<kebab-case-slug>');
38
+ exports.PrototypeNodeIdSchema = zod_1.z.string().regex(ids_1.PROTOTYPE_ID, 'a prototype id is prototype:<slug>');
39
+ exports.ActivityReadingSchema = zod_1.z
40
+ .object({
41
+ observedBy: zod_1.z.string().min(1),
42
+ observedAt: capabilities_1.TimestampSchema,
43
+ commits: zod_1.z.number().int().nonnegative(),
44
+ commitsLast90Days: zod_1.z.number().int().nonnegative(),
45
+ firstCommitAt: capabilities_1.TimestampSchema.optional(),
46
+ lastCommitAt: capabilities_1.TimestampSchema.optional(),
47
+ tags: zod_1.z.number().int().nonnegative(),
48
+ branch: zod_1.z.string().min(1).optional(),
49
+ head: zod_1.z.string().min(1).optional(),
50
+ })
51
+ .strict();
52
+ exports.RepositoryFacetSchema = zod_1.z
53
+ .object({
54
+ nodeId: exports.RepositoryNodeIdSchema,
55
+ origin: exports.OriginSchema,
56
+ lifecycle: exports.LifecycleSchema,
57
+ purpose: capabilities_1.StatementSchema.optional(),
58
+ horizon: capabilities_1.StatementSchema.optional(),
59
+ status: capabilities_1.StatementStatusSchema,
60
+ fields: zod_1.z.array(exports.ResearchFieldNodeIdSchema),
61
+ prototypes: zod_1.z.array(exports.PrototypeNodeIdSchema),
62
+ holder: zod_1.z.string().min(1).optional(),
63
+ observed: exports.ActivityReadingSchema.optional(),
64
+ ...capabilities_1.attributionShape,
65
+ })
66
+ .strict()
67
+ .superRefine((row, ctx) => {
68
+ (0, capabilities_1.refineAttribution)(row, ctx);
69
+ (0, capabilities_1.refineStatementPresence)(row.status, row.purpose, 'purpose', ctx);
70
+ });
71
+ exports.FeatureFacetSchema = zod_1.z
72
+ .object({
73
+ nodeId: exports.FeatureNodeIdSchema,
74
+ repository: exports.RepositoryNodeIdSchema,
75
+ name: zod_1.z.string().min(1),
76
+ statement: capabilities_1.StatementSchema.optional(),
77
+ status: capabilities_1.StatementStatusSchema,
78
+ realizes: capabilities_1.CapabilityNodeIdSchema.optional(),
79
+ ...capabilities_1.attributionShape,
80
+ })
81
+ .strict()
82
+ .superRefine((row, ctx) => {
83
+ (0, capabilities_1.refineAttribution)(row, ctx);
84
+ (0, capabilities_1.refineStatementPresence)(row.status, row.statement, 'statement', ctx);
85
+ if ((0, ids_1.featureRepository)(row.nodeId) !== row.repository) {
86
+ ctx.addIssue({
87
+ code: zod_1.z.ZodIssueCode.custom,
88
+ path: ['nodeId'],
89
+ message: `a feature id names its repository: ${row.nodeId} is not in ${row.repository}`,
90
+ });
91
+ }
92
+ });
93
+ const isRepository = (id) => ids_1.REPOSITORY_ID.test(id);
94
+ const isFeature = (id) => ids_1.FEATURE_ID.test(id);
95
+ /** Prefixes this mapping gives a meaning to. A service node id is anything else that is namespaced. */
96
+ const MAPPING_PREFIXES = ['repository:', 'feature:', 'capability:', 'research-field:', 'prototype:'];
97
+ const isService = (id) => /^[^\s:]+:\S+$/.test(id) && !MAPPING_PREFIXES.some((p) => id.startsWith(p));
98
+ /** Which endpoints each relation name joins. */
99
+ const ENDPOINTS = {
100
+ 'forked-from': { from: isRepository, to: isRepository, reads: 'repository → repository' },
101
+ 'grew-into': { from: isRepository, to: isRepository, reads: 'repository → repository' },
102
+ consumes: { from: isRepository, to: isRepository, reads: 'repository → repository' },
103
+ provides: {
104
+ from: (id) => isRepository(id) || isService(id),
105
+ to: (id) => capabilities_1.CapabilityNodeIdSchema.safeParse(id).success,
106
+ reads: 'repository or service → capability',
107
+ },
108
+ realizes: { from: isFeature, to: (id) => capabilities_1.CapabilityNodeIdSchema.safeParse(id).success, reads: 'feature → capability' },
109
+ 'field-aligns-with': { from: isRepository, to: (id) => ids_1.RESEARCH_FIELD_ID.test(id), reads: 'repository → research-field' },
110
+ };
111
+ exports.RelationRowSchema = zod_1.z
112
+ .object({
113
+ from: zod_1.z.string().min(1),
114
+ to: zod_1.z.string().min(1),
115
+ type: exports.DeveloperEdgeNameSchema,
116
+ description: capabilities_1.StatementSchema.optional(),
117
+ ...capabilities_1.attributionShape,
118
+ })
119
+ .strict()
120
+ .superRefine((row, ctx) => {
121
+ (0, capabilities_1.refineAttribution)(row, ctx);
122
+ const ends = ENDPOINTS[row.type];
123
+ if (!ends.from(row.from) || !ends.to(row.to)) {
124
+ ctx.addIssue({ code: zod_1.z.ZodIssueCode.custom, path: ['type'], message: `${row.type} joins ${ends.reads}` });
125
+ }
126
+ if (row.from === row.to) {
127
+ ctx.addIssue({ code: zod_1.z.ZodIssueCode.custom, path: ['to'], message: 'a relation joins two different nodes' });
128
+ }
129
+ });
130
+ exports.OwnerRegistrationSchema = zod_1.z
131
+ .object({
132
+ owner: zod_1.z.string().regex(ids_1.OWNER_LOGIN, 'a GitHub login'),
133
+ hub: zod_1.z.string().min(3),
134
+ source: zod_1.z.string().min(1).optional(),
135
+ holder: zod_1.z.string().min(1).optional(),
136
+ registeredBy: zod_1.z.string().min(1),
137
+ registeredAt: capabilities_1.TimestampSchema,
138
+ })
139
+ .strict()
140
+ .superRefine((row, ctx) => {
141
+ if (row.hub !== `${row.owner}/${row.owner}`) {
142
+ ctx.addIssue({ code: zod_1.z.ZodIssueCode.custom, path: ['hub'], message: `an owner hub is <owner>/<owner>: ${row.owner}/${row.owner}` });
143
+ }
144
+ });
145
+ exports.MappingManifestSchema = zod_1.z
146
+ .object({
147
+ schema: zod_1.z.literal(types_1.MAPPING_SCHEMA),
148
+ version: zod_1.z.literal(1),
149
+ owner: zod_1.z.string().regex(ids_1.OWNER_LOGIN, 'a GitHub login'),
150
+ hub: zod_1.z.string().min(3),
151
+ kind: zod_1.z.enum(['owner', 'meta']),
152
+ description: zod_1.z.string().min(1).optional(),
153
+ })
154
+ .strict()
155
+ .superRefine((row, ctx) => {
156
+ if (row.hub !== `${row.owner}/${row.owner}`) {
157
+ ctx.addIssue({ code: zod_1.z.ZodIssueCode.custom, path: ['hub'], message: `an owner hub is <owner>/<owner>: ${row.owner}/${row.owner}` });
158
+ }
159
+ });
160
+ //# sourceMappingURL=schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Counts a person reads first, and the capability claims of a whole mapping.
3
+ */
4
+ import { type CapabilityClaim, type RevisionState, type SharedCapability, type StatementStatus } from '@medicine-wheel/capabilities';
5
+ import { type ActivityThresholds, type LifecycleReading } from './lifecycle';
6
+ import type { Lifecycle, LifecycleDrift, RepositoryMapping } from './types';
7
+ /**
8
+ * Every claim a mapping makes on a capability: a capability's own
9
+ * `providedBy`, each feature that realizes one — through its `realizes` field
10
+ * or a `realizes` relation — claimed for the feature's repository, and each
11
+ * `provides` relation.
12
+ */
13
+ export declare function mappingCapabilityClaims(mapping: RepositoryMapping): CapabilityClaim[];
14
+ export interface MappingSummary {
15
+ repositories: number;
16
+ features: number;
17
+ capabilities: number;
18
+ relations: number;
19
+ owners: number;
20
+ byLifecycle: Record<Lifecycle, number>;
21
+ byDrift: Record<LifecycleDrift, number>;
22
+ byRevision: Record<RevisionState, number>;
23
+ /** Of repository purposes. */
24
+ byStatus: Record<StatementStatus, number>;
25
+ /** research-field id → repositories aligned with it. */
26
+ fields: Record<string, number>;
27
+ shared: SharedCapability[];
28
+ readings: LifecycleReading[];
29
+ }
30
+ export declare function summarize(mapping: RepositoryMapping, thresholds?: ActivityThresholds): MappingSummary;
31
+ //# sourceMappingURL=summary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"summary.d.ts","sourceRoot":"","sources":["../src/summary.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACrB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAA2C,KAAK,kBAAkB,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACtH,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE5E;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,iBAAiB,GAAG,eAAe,EAAE,CAarF;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACvC,OAAO,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IACxC,UAAU,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAC1C,8BAA8B;IAC9B,QAAQ,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IAC1C,wDAAwD;IACxD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,QAAQ,EAAE,gBAAgB,EAAE,CAAC;CAC9B;AAED,wBAAgB,SAAS,CACvB,OAAO,EAAE,iBAAiB,EAC1B,UAAU,GAAE,kBAAwC,GACnD,cAAc,CAgChB"}