@momentiq/dark-factory-cli 2.0.0 → 2.1.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 (49) hide show
  1. package/dist/cli.d.ts.map +1 -1
  2. package/dist/cli.js +18 -1
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/onboard.d.ts +6 -0
  5. package/dist/commands/onboard.d.ts.map +1 -0
  6. package/dist/commands/onboard.js +111 -0
  7. package/dist/commands/onboard.js.map +1 -0
  8. package/dist/cycle-doc-validator/validate_cycle_doc.py +131 -60
  9. package/dist/onboard/analyze.d.ts +7 -0
  10. package/dist/onboard/analyze.d.ts.map +1 -0
  11. package/dist/onboard/analyze.js +86 -0
  12. package/dist/onboard/analyze.js.map +1 -0
  13. package/dist/onboard/analyzer.d.ts +15 -0
  14. package/dist/onboard/analyzer.d.ts.map +1 -0
  15. package/dist/onboard/analyzer.js +52 -0
  16. package/dist/onboard/analyzer.js.map +1 -0
  17. package/dist/onboard/analyzers/ci.d.ts +3 -0
  18. package/dist/onboard/analyzers/ci.d.ts.map +1 -0
  19. package/dist/onboard/analyzers/ci.js +112 -0
  20. package/dist/onboard/analyzers/ci.js.map +1 -0
  21. package/dist/onboard/analyzers/docs.d.ts +3 -0
  22. package/dist/onboard/analyzers/docs.d.ts.map +1 -0
  23. package/dist/onboard/analyzers/docs.js +151 -0
  24. package/dist/onboard/analyzers/docs.js.map +1 -0
  25. package/dist/onboard/analyzers/git.d.ts +3 -0
  26. package/dist/onboard/analyzers/git.d.ts.map +1 -0
  27. package/dist/onboard/analyzers/git.js +87 -0
  28. package/dist/onboard/analyzers/git.js.map +1 -0
  29. package/dist/onboard/analyzers/lockfile.d.ts +3 -0
  30. package/dist/onboard/analyzers/lockfile.d.ts.map +1 -0
  31. package/dist/onboard/analyzers/lockfile.js +285 -0
  32. package/dist/onboard/analyzers/lockfile.js.map +1 -0
  33. package/dist/onboard/analyzers/manifest.d.ts +3 -0
  34. package/dist/onboard/analyzers/manifest.d.ts.map +1 -0
  35. package/dist/onboard/analyzers/manifest.js +228 -0
  36. package/dist/onboard/analyzers/manifest.js.map +1 -0
  37. package/dist/onboard/analyzers/tree.d.ts +3 -0
  38. package/dist/onboard/analyzers/tree.d.ts.map +1 -0
  39. package/dist/onboard/analyzers/tree.js +196 -0
  40. package/dist/onboard/analyzers/tree.js.map +1 -0
  41. package/dist/onboard/fixtures/replay-git-history.d.ts +20 -0
  42. package/dist/onboard/fixtures/replay-git-history.d.ts.map +1 -0
  43. package/dist/onboard/fixtures/replay-git-history.js +91 -0
  44. package/dist/onboard/fixtures/replay-git-history.js.map +1 -0
  45. package/dist/onboard/schema.d.ts +545 -0
  46. package/dist/onboard/schema.d.ts.map +1 -0
  47. package/dist/onboard/schema.js +142 -0
  48. package/dist/onboard/schema.js.map +1 -0
  49. package/package.json +5 -1
@@ -0,0 +1,545 @@
1
+ import { z } from "zod";
2
+ export declare const AGENT_CONTEXT_SCHEMA_VERSION: 1;
3
+ declare const StackSchema: z.ZodObject<{
4
+ language: z.ZodEnum<["typescript", "javascript", "python", "go", "rust", "ruby", "elixir", "java", "kotlin", "csharp", "swift", "other"]>;
5
+ versionPin: z.ZodNullable<z.ZodString>;
6
+ manifestPath: z.ZodString;
7
+ }, "strip", z.ZodTypeAny, {
8
+ language: "other" | "typescript" | "javascript" | "python" | "go" | "rust" | "ruby" | "elixir" | "java" | "kotlin" | "csharp" | "swift";
9
+ versionPin: string | null;
10
+ manifestPath: string;
11
+ }, {
12
+ language: "other" | "typescript" | "javascript" | "python" | "go" | "rust" | "ruby" | "elixir" | "java" | "kotlin" | "csharp" | "swift";
13
+ versionPin: string | null;
14
+ manifestPath: string;
15
+ }>;
16
+ declare const ServiceSchema: z.ZodObject<{
17
+ name: z.ZodString;
18
+ path: z.ZodString;
19
+ stack: z.ZodNullable<z.ZodString>;
20
+ }, "strip", z.ZodTypeAny, {
21
+ path: string;
22
+ name: string;
23
+ stack: string | null;
24
+ }, {
25
+ path: string;
26
+ name: string;
27
+ stack: string | null;
28
+ }>;
29
+ declare const WorkflowSchema: z.ZodObject<{
30
+ name: z.ZodString;
31
+ path: z.ZodString;
32
+ triggers: z.ZodArray<z.ZodString, "many">;
33
+ jobs: z.ZodArray<z.ZodString, "many">;
34
+ matrixDimensions: z.ZodArray<z.ZodString, "many">;
35
+ }, "strip", z.ZodTypeAny, {
36
+ path: string;
37
+ name: string;
38
+ triggers: string[];
39
+ jobs: string[];
40
+ matrixDimensions: string[];
41
+ }, {
42
+ path: string;
43
+ name: string;
44
+ triggers: string[];
45
+ jobs: string[];
46
+ matrixDimensions: string[];
47
+ }>;
48
+ declare const DeployStorySchema: z.ZodObject<{
49
+ workflowPath: z.ZodString;
50
+ command: z.ZodString;
51
+ target: z.ZodEnum<["helm", "gh-release", "gcloud-run", "ecs", "vercel", "fly", "kubernetes", "other"]>;
52
+ }, "strip", z.ZodTypeAny, {
53
+ command: string;
54
+ target: "other" | "helm" | "gh-release" | "gcloud-run" | "ecs" | "vercel" | "fly" | "kubernetes";
55
+ workflowPath: string;
56
+ }, {
57
+ command: string;
58
+ target: "other" | "helm" | "gh-release" | "gcloud-run" | "ecs" | "vercel" | "fly" | "kubernetes";
59
+ workflowPath: string;
60
+ }>;
61
+ declare const TopLevelDirSchema: z.ZodObject<{
62
+ name: z.ZodString;
63
+ category: z.ZodEnum<["services", "apps", "packages", "src", "tests", "docs", "infra", "scripts", "other"]>;
64
+ fileCount: z.ZodNumber;
65
+ }, "strip", z.ZodTypeAny, {
66
+ category: "src" | "docs" | "other" | "services" | "apps" | "packages" | "tests" | "infra" | "scripts";
67
+ name: string;
68
+ fileCount: number;
69
+ }, {
70
+ category: "src" | "docs" | "other" | "services" | "apps" | "packages" | "tests" | "infra" | "scripts";
71
+ name: string;
72
+ fileCount: number;
73
+ }>;
74
+ declare const DecisionSchema: z.ZodObject<{
75
+ title: z.ZodString;
76
+ surface: z.ZodEnum<["stack", "test-framework", "deploy-target", "auth-model", "ci-platform", "other"]>;
77
+ evidence: z.ZodArray<z.ZodString, "many">;
78
+ }, "strip", z.ZodTypeAny, {
79
+ evidence: string[];
80
+ title: string;
81
+ surface: "other" | "stack" | "test-framework" | "deploy-target" | "auth-model" | "ci-platform";
82
+ }, {
83
+ evidence: string[];
84
+ title: string;
85
+ surface: "other" | "stack" | "test-framework" | "deploy-target" | "auth-model" | "ci-platform";
86
+ }>;
87
+ declare const AgentFileSchema: z.ZodObject<{
88
+ sizeBytes: z.ZodNumber;
89
+ headings: z.ZodArray<z.ZodString, "many">;
90
+ }, "strip", z.ZodTypeAny, {
91
+ sizeBytes: number;
92
+ headings: string[];
93
+ }, {
94
+ sizeBytes: number;
95
+ headings: string[];
96
+ }>;
97
+ declare const DependencySchema: z.ZodObject<{
98
+ name: z.ZodString;
99
+ version: z.ZodString;
100
+ manifestPath: z.ZodString;
101
+ }, "strip", z.ZodTypeAny, {
102
+ name: string;
103
+ version: string;
104
+ manifestPath: string;
105
+ }, {
106
+ name: string;
107
+ version: string;
108
+ manifestPath: string;
109
+ }>;
110
+ declare const AnalyzerErrorSchema: z.ZodObject<{
111
+ name: z.ZodString;
112
+ error: z.ZodString;
113
+ }, "strip", z.ZodTypeAny, {
114
+ error: string;
115
+ name: string;
116
+ }, {
117
+ error: string;
118
+ name: string;
119
+ }>;
120
+ export declare const RepoAnalysisSchema: z.ZodObject<{
121
+ schemaVersion: z.ZodLiteral<1>;
122
+ repoRoot: z.ZodString;
123
+ canonicalName: z.ZodString;
124
+ stacks: z.ZodArray<z.ZodObject<{
125
+ language: z.ZodEnum<["typescript", "javascript", "python", "go", "rust", "ruby", "elixir", "java", "kotlin", "csharp", "swift", "other"]>;
126
+ versionPin: z.ZodNullable<z.ZodString>;
127
+ manifestPath: z.ZodString;
128
+ }, "strip", z.ZodTypeAny, {
129
+ language: "other" | "typescript" | "javascript" | "python" | "go" | "rust" | "ruby" | "elixir" | "java" | "kotlin" | "csharp" | "swift";
130
+ versionPin: string | null;
131
+ manifestPath: string;
132
+ }, {
133
+ language: "other" | "typescript" | "javascript" | "python" | "go" | "rust" | "ruby" | "elixir" | "java" | "kotlin" | "csharp" | "swift";
134
+ versionPin: string | null;
135
+ manifestPath: string;
136
+ }>, "many">;
137
+ services: z.ZodArray<z.ZodObject<{
138
+ name: z.ZodString;
139
+ path: z.ZodString;
140
+ stack: z.ZodNullable<z.ZodString>;
141
+ }, "strip", z.ZodTypeAny, {
142
+ path: string;
143
+ name: string;
144
+ stack: string | null;
145
+ }, {
146
+ path: string;
147
+ name: string;
148
+ stack: string | null;
149
+ }>, "many">;
150
+ dependencies: z.ZodArray<z.ZodObject<{
151
+ name: z.ZodString;
152
+ version: z.ZodString;
153
+ manifestPath: z.ZodString;
154
+ }, "strip", z.ZodTypeAny, {
155
+ name: string;
156
+ version: string;
157
+ manifestPath: string;
158
+ }, {
159
+ name: string;
160
+ version: string;
161
+ manifestPath: string;
162
+ }>, "many">;
163
+ ci: z.ZodObject<{
164
+ workflows: z.ZodArray<z.ZodObject<{
165
+ name: z.ZodString;
166
+ path: z.ZodString;
167
+ triggers: z.ZodArray<z.ZodString, "many">;
168
+ jobs: z.ZodArray<z.ZodString, "many">;
169
+ matrixDimensions: z.ZodArray<z.ZodString, "many">;
170
+ }, "strip", z.ZodTypeAny, {
171
+ path: string;
172
+ name: string;
173
+ triggers: string[];
174
+ jobs: string[];
175
+ matrixDimensions: string[];
176
+ }, {
177
+ path: string;
178
+ name: string;
179
+ triggers: string[];
180
+ jobs: string[];
181
+ matrixDimensions: string[];
182
+ }>, "many">;
183
+ deployStory: z.ZodNullable<z.ZodObject<{
184
+ workflowPath: z.ZodString;
185
+ command: z.ZodString;
186
+ target: z.ZodEnum<["helm", "gh-release", "gcloud-run", "ecs", "vercel", "fly", "kubernetes", "other"]>;
187
+ }, "strip", z.ZodTypeAny, {
188
+ command: string;
189
+ target: "other" | "helm" | "gh-release" | "gcloud-run" | "ecs" | "vercel" | "fly" | "kubernetes";
190
+ workflowPath: string;
191
+ }, {
192
+ command: string;
193
+ target: "other" | "helm" | "gh-release" | "gcloud-run" | "ecs" | "vercel" | "fly" | "kubernetes";
194
+ workflowPath: string;
195
+ }>>;
196
+ }, "strip", z.ZodTypeAny, {
197
+ workflows: {
198
+ path: string;
199
+ name: string;
200
+ triggers: string[];
201
+ jobs: string[];
202
+ matrixDimensions: string[];
203
+ }[];
204
+ deployStory: {
205
+ command: string;
206
+ target: "other" | "helm" | "gh-release" | "gcloud-run" | "ecs" | "vercel" | "fly" | "kubernetes";
207
+ workflowPath: string;
208
+ } | null;
209
+ }, {
210
+ workflows: {
211
+ path: string;
212
+ name: string;
213
+ triggers: string[];
214
+ jobs: string[];
215
+ matrixDimensions: string[];
216
+ }[];
217
+ deployStory: {
218
+ command: string;
219
+ target: "other" | "helm" | "gh-release" | "gcloud-run" | "ecs" | "vercel" | "fly" | "kubernetes";
220
+ workflowPath: string;
221
+ } | null;
222
+ }>;
223
+ tree: z.ZodObject<{
224
+ topLevelDirs: z.ZodArray<z.ZodObject<{
225
+ name: z.ZodString;
226
+ category: z.ZodEnum<["services", "apps", "packages", "src", "tests", "docs", "infra", "scripts", "other"]>;
227
+ fileCount: z.ZodNumber;
228
+ }, "strip", z.ZodTypeAny, {
229
+ category: "src" | "docs" | "other" | "services" | "apps" | "packages" | "tests" | "infra" | "scripts";
230
+ name: string;
231
+ fileCount: number;
232
+ }, {
233
+ category: "src" | "docs" | "other" | "services" | "apps" | "packages" | "tests" | "infra" | "scripts";
234
+ name: string;
235
+ fileCount: number;
236
+ }>, "many">;
237
+ languageBreakdown: z.ZodRecord<z.ZodString, z.ZodNumber>;
238
+ testDirs: z.ZodArray<z.ZodString, "many">;
239
+ fileCount: z.ZodNumber;
240
+ }, "strip", z.ZodTypeAny, {
241
+ fileCount: number;
242
+ topLevelDirs: {
243
+ category: "src" | "docs" | "other" | "services" | "apps" | "packages" | "tests" | "infra" | "scripts";
244
+ name: string;
245
+ fileCount: number;
246
+ }[];
247
+ languageBreakdown: Record<string, number>;
248
+ testDirs: string[];
249
+ }, {
250
+ fileCount: number;
251
+ topLevelDirs: {
252
+ category: "src" | "docs" | "other" | "services" | "apps" | "packages" | "tests" | "infra" | "scripts";
253
+ name: string;
254
+ fileCount: number;
255
+ }[];
256
+ languageBreakdown: Record<string, number>;
257
+ testDirs: string[];
258
+ }>;
259
+ git: z.ZodObject<{
260
+ recentCommitConventions: z.ZodObject<{
261
+ conventional: z.ZodBoolean;
262
+ cycleReferenced: z.ZodBoolean;
263
+ }, "strip", z.ZodTypeAny, {
264
+ conventional: boolean;
265
+ cycleReferenced: boolean;
266
+ }, {
267
+ conventional: boolean;
268
+ cycleReferenced: boolean;
269
+ }>;
270
+ defaultBranch: z.ZodString;
271
+ }, "strip", z.ZodTypeAny, {
272
+ recentCommitConventions: {
273
+ conventional: boolean;
274
+ cycleReferenced: boolean;
275
+ };
276
+ defaultBranch: string;
277
+ }, {
278
+ recentCommitConventions: {
279
+ conventional: boolean;
280
+ cycleReferenced: boolean;
281
+ };
282
+ defaultBranch: string;
283
+ }>;
284
+ docs: z.ZodObject<{
285
+ existing: z.ZodArray<z.ZodString, "many">;
286
+ hasClaudeMd: z.ZodBoolean;
287
+ hasAgentsMd: z.ZodBoolean;
288
+ agentContextSetPresent: z.ZodBoolean;
289
+ claudeMd: z.ZodNullable<z.ZodObject<{
290
+ sizeBytes: z.ZodNumber;
291
+ headings: z.ZodArray<z.ZodString, "many">;
292
+ }, "strip", z.ZodTypeAny, {
293
+ sizeBytes: number;
294
+ headings: string[];
295
+ }, {
296
+ sizeBytes: number;
297
+ headings: string[];
298
+ }>>;
299
+ agentsMd: z.ZodNullable<z.ZodObject<{
300
+ sizeBytes: z.ZodNumber;
301
+ headings: z.ZodArray<z.ZodString, "many">;
302
+ }, "strip", z.ZodTypeAny, {
303
+ sizeBytes: number;
304
+ headings: string[];
305
+ }, {
306
+ sizeBytes: number;
307
+ headings: string[];
308
+ }>>;
309
+ }, "strip", z.ZodTypeAny, {
310
+ existing: string[];
311
+ hasClaudeMd: boolean;
312
+ hasAgentsMd: boolean;
313
+ agentContextSetPresent: boolean;
314
+ claudeMd: {
315
+ sizeBytes: number;
316
+ headings: string[];
317
+ } | null;
318
+ agentsMd: {
319
+ sizeBytes: number;
320
+ headings: string[];
321
+ } | null;
322
+ }, {
323
+ existing: string[];
324
+ hasClaudeMd: boolean;
325
+ hasAgentsMd: boolean;
326
+ agentContextSetPresent: boolean;
327
+ claudeMd: {
328
+ sizeBytes: number;
329
+ headings: string[];
330
+ } | null;
331
+ agentsMd: {
332
+ sizeBytes: number;
333
+ headings: string[];
334
+ } | null;
335
+ }>;
336
+ dfPresence: z.ZodObject<{
337
+ hooks: z.ZodBoolean;
338
+ configJson: z.ZodBoolean;
339
+ prWorkflow: z.ZodBoolean;
340
+ cliPin: z.ZodNullable<z.ZodString>;
341
+ }, "strip", z.ZodTypeAny, {
342
+ hooks: boolean;
343
+ configJson: boolean;
344
+ prWorkflow: boolean;
345
+ cliPin: string | null;
346
+ }, {
347
+ hooks: boolean;
348
+ configJson: boolean;
349
+ prWorkflow: boolean;
350
+ cliPin: string | null;
351
+ }>;
352
+ decisions: z.ZodArray<z.ZodObject<{
353
+ title: z.ZodString;
354
+ surface: z.ZodEnum<["stack", "test-framework", "deploy-target", "auth-model", "ci-platform", "other"]>;
355
+ evidence: z.ZodArray<z.ZodString, "many">;
356
+ }, "strip", z.ZodTypeAny, {
357
+ evidence: string[];
358
+ title: string;
359
+ surface: "other" | "stack" | "test-framework" | "deploy-target" | "auth-model" | "ci-platform";
360
+ }, {
361
+ evidence: string[];
362
+ title: string;
363
+ surface: "other" | "stack" | "test-framework" | "deploy-target" | "auth-model" | "ci-platform";
364
+ }>, "many">;
365
+ analyzerErrors: z.ZodDefault<z.ZodArray<z.ZodObject<{
366
+ name: z.ZodString;
367
+ error: z.ZodString;
368
+ }, "strip", z.ZodTypeAny, {
369
+ error: string;
370
+ name: string;
371
+ }, {
372
+ error: string;
373
+ name: string;
374
+ }>, "many">>;
375
+ }, "strict", z.ZodTypeAny, {
376
+ git: {
377
+ recentCommitConventions: {
378
+ conventional: boolean;
379
+ cycleReferenced: boolean;
380
+ };
381
+ defaultBranch: string;
382
+ };
383
+ repoRoot: string;
384
+ schemaVersion: 1;
385
+ docs: {
386
+ existing: string[];
387
+ hasClaudeMd: boolean;
388
+ hasAgentsMd: boolean;
389
+ agentContextSetPresent: boolean;
390
+ claudeMd: {
391
+ sizeBytes: number;
392
+ headings: string[];
393
+ } | null;
394
+ agentsMd: {
395
+ sizeBytes: number;
396
+ headings: string[];
397
+ } | null;
398
+ };
399
+ services: {
400
+ path: string;
401
+ name: string;
402
+ stack: string | null;
403
+ }[];
404
+ canonicalName: string;
405
+ stacks: {
406
+ language: "other" | "typescript" | "javascript" | "python" | "go" | "rust" | "ruby" | "elixir" | "java" | "kotlin" | "csharp" | "swift";
407
+ versionPin: string | null;
408
+ manifestPath: string;
409
+ }[];
410
+ dependencies: {
411
+ name: string;
412
+ version: string;
413
+ manifestPath: string;
414
+ }[];
415
+ ci: {
416
+ workflows: {
417
+ path: string;
418
+ name: string;
419
+ triggers: string[];
420
+ jobs: string[];
421
+ matrixDimensions: string[];
422
+ }[];
423
+ deployStory: {
424
+ command: string;
425
+ target: "other" | "helm" | "gh-release" | "gcloud-run" | "ecs" | "vercel" | "fly" | "kubernetes";
426
+ workflowPath: string;
427
+ } | null;
428
+ };
429
+ tree: {
430
+ fileCount: number;
431
+ topLevelDirs: {
432
+ category: "src" | "docs" | "other" | "services" | "apps" | "packages" | "tests" | "infra" | "scripts";
433
+ name: string;
434
+ fileCount: number;
435
+ }[];
436
+ languageBreakdown: Record<string, number>;
437
+ testDirs: string[];
438
+ };
439
+ dfPresence: {
440
+ hooks: boolean;
441
+ configJson: boolean;
442
+ prWorkflow: boolean;
443
+ cliPin: string | null;
444
+ };
445
+ decisions: {
446
+ evidence: string[];
447
+ title: string;
448
+ surface: "other" | "stack" | "test-framework" | "deploy-target" | "auth-model" | "ci-platform";
449
+ }[];
450
+ analyzerErrors: {
451
+ error: string;
452
+ name: string;
453
+ }[];
454
+ }, {
455
+ git: {
456
+ recentCommitConventions: {
457
+ conventional: boolean;
458
+ cycleReferenced: boolean;
459
+ };
460
+ defaultBranch: string;
461
+ };
462
+ repoRoot: string;
463
+ schemaVersion: 1;
464
+ docs: {
465
+ existing: string[];
466
+ hasClaudeMd: boolean;
467
+ hasAgentsMd: boolean;
468
+ agentContextSetPresent: boolean;
469
+ claudeMd: {
470
+ sizeBytes: number;
471
+ headings: string[];
472
+ } | null;
473
+ agentsMd: {
474
+ sizeBytes: number;
475
+ headings: string[];
476
+ } | null;
477
+ };
478
+ services: {
479
+ path: string;
480
+ name: string;
481
+ stack: string | null;
482
+ }[];
483
+ canonicalName: string;
484
+ stacks: {
485
+ language: "other" | "typescript" | "javascript" | "python" | "go" | "rust" | "ruby" | "elixir" | "java" | "kotlin" | "csharp" | "swift";
486
+ versionPin: string | null;
487
+ manifestPath: string;
488
+ }[];
489
+ dependencies: {
490
+ name: string;
491
+ version: string;
492
+ manifestPath: string;
493
+ }[];
494
+ ci: {
495
+ workflows: {
496
+ path: string;
497
+ name: string;
498
+ triggers: string[];
499
+ jobs: string[];
500
+ matrixDimensions: string[];
501
+ }[];
502
+ deployStory: {
503
+ command: string;
504
+ target: "other" | "helm" | "gh-release" | "gcloud-run" | "ecs" | "vercel" | "fly" | "kubernetes";
505
+ workflowPath: string;
506
+ } | null;
507
+ };
508
+ tree: {
509
+ fileCount: number;
510
+ topLevelDirs: {
511
+ category: "src" | "docs" | "other" | "services" | "apps" | "packages" | "tests" | "infra" | "scripts";
512
+ name: string;
513
+ fileCount: number;
514
+ }[];
515
+ languageBreakdown: Record<string, number>;
516
+ testDirs: string[];
517
+ };
518
+ dfPresence: {
519
+ hooks: boolean;
520
+ configJson: boolean;
521
+ prWorkflow: boolean;
522
+ cliPin: string | null;
523
+ };
524
+ decisions: {
525
+ evidence: string[];
526
+ title: string;
527
+ surface: "other" | "stack" | "test-framework" | "deploy-target" | "auth-model" | "ci-platform";
528
+ }[];
529
+ analyzerErrors?: {
530
+ error: string;
531
+ name: string;
532
+ }[] | undefined;
533
+ }>;
534
+ export type RepoAnalysis = z.infer<typeof RepoAnalysisSchema>;
535
+ export type Stack = z.infer<typeof StackSchema>;
536
+ export type Service = z.infer<typeof ServiceSchema>;
537
+ export type Workflow = z.infer<typeof WorkflowSchema>;
538
+ export type DeployStory = z.infer<typeof DeployStorySchema>;
539
+ export type TopLevelDir = z.infer<typeof TopLevelDirSchema>;
540
+ export type Decision = z.infer<typeof DecisionSchema>;
541
+ export type Dependency = z.infer<typeof DependencySchema>;
542
+ export type AgentFile = z.infer<typeof AgentFileSchema>;
543
+ export type AnalyzerError = z.infer<typeof AnalyzerErrorSchema>;
544
+ export {};
545
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/onboard/schema.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,4BAA4B,EAAG,CAAU,CAAC;AAEvD,QAAA,MAAM,WAAW;;;;;;;;;;;;EAiBf,CAAC;AAEH,QAAA,MAAM,aAAa;;;;;;;;;;;;EAIjB,CAAC;AAEH,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;EAMlB,CAAC;AAEH,QAAA,MAAM,iBAAiB;;;;;;;;;;;;EAarB,CAAC;AAEH,QAAA,MAAM,iBAAiB;;;;;;;;;;;;EAcrB,CAAC;AAEH,QAAA,MAAM,cAAc;;;;;;;;;;;;EAWlB,CAAC;AAKH,QAAA,MAAM,eAAe;;;;;;;;;EAGnB,CAAC;AAKH,QAAA,MAAM,gBAAgB;;;;;;;;;;;;EAIpB,CAAC;AAEH,QAAA,MAAM,mBAAmB;;;;;;;;;EAGvB,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0CpB,CAAC;AAEZ,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAChD,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AACpD,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AACtD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AACtD,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AACxD,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
@@ -0,0 +1,142 @@
1
+ // RepoAnalysis schema — cycle 15 Phase A.
2
+ //
3
+ // Bounded, schema-versioned envelope produced by the deterministic Stage A
4
+ // scanner. Phase B's LLM consumes this verbatim; the 16 KB serialized-size
5
+ // budget (enforced in analyze.ts) plus per-array .max() caps keep the
6
+ // envelope small enough to fit in a single LLM call's context.
7
+ import { z } from "zod";
8
+ export const AGENT_CONTEXT_SCHEMA_VERSION = 1;
9
+ const StackSchema = z.object({
10
+ language: z.enum([
11
+ "typescript",
12
+ "javascript",
13
+ "python",
14
+ "go",
15
+ "rust",
16
+ "ruby",
17
+ "elixir",
18
+ "java",
19
+ "kotlin",
20
+ "csharp",
21
+ "swift",
22
+ "other",
23
+ ]),
24
+ versionPin: z.string().nullable(),
25
+ manifestPath: z.string(),
26
+ });
27
+ const ServiceSchema = z.object({
28
+ name: z.string(),
29
+ path: z.string(),
30
+ stack: z.string().nullable(),
31
+ });
32
+ const WorkflowSchema = z.object({
33
+ name: z.string(),
34
+ path: z.string(),
35
+ triggers: z.array(z.string()),
36
+ jobs: z.array(z.string()),
37
+ matrixDimensions: z.array(z.string()),
38
+ });
39
+ const DeployStorySchema = z.object({
40
+ workflowPath: z.string(),
41
+ command: z.string(),
42
+ target: z.enum([
43
+ "helm",
44
+ "gh-release",
45
+ "gcloud-run",
46
+ "ecs",
47
+ "vercel",
48
+ "fly",
49
+ "kubernetes",
50
+ "other",
51
+ ]),
52
+ });
53
+ const TopLevelDirSchema = z.object({
54
+ name: z.string(),
55
+ category: z.enum([
56
+ "services",
57
+ "apps",
58
+ "packages",
59
+ "src",
60
+ "tests",
61
+ "docs",
62
+ "infra",
63
+ "scripts",
64
+ "other",
65
+ ]),
66
+ fileCount: z.number().int().nonnegative(),
67
+ });
68
+ const DecisionSchema = z.object({
69
+ title: z.string(),
70
+ surface: z.enum([
71
+ "stack",
72
+ "test-framework",
73
+ "deploy-target",
74
+ "auth-model",
75
+ "ci-platform",
76
+ "other",
77
+ ]),
78
+ evidence: z.array(z.string()),
79
+ });
80
+ // Per cycle 15 D2 lines 142–145: when CLAUDE.md / AGENTS.md exists, capture
81
+ // only sizeBytes + the ordered H1+H2 heading list (cap 50). Bodies are NEVER
82
+ // stored — Phase B reads them itself if it needs them.
83
+ const AgentFileSchema = z.object({
84
+ sizeBytes: z.number().int().nonnegative(),
85
+ headings: z.array(z.string()).max(50),
86
+ });
87
+ // Per cycle 15 D2 lines 132–134: capture exact versions of the top 20
88
+ // dependencies for the ADR seed. `decisions[]` is the heuristic narrative;
89
+ // `dependencies[]` is the deterministic name+version table the LLM cites.
90
+ const DependencySchema = z.object({
91
+ name: z.string(),
92
+ version: z.string(),
93
+ manifestPath: z.string(),
94
+ });
95
+ const AnalyzerErrorSchema = z.object({
96
+ name: z.string(),
97
+ error: z.string(),
98
+ });
99
+ export const RepoAnalysisSchema = z
100
+ .object({
101
+ schemaVersion: z.literal(AGENT_CONTEXT_SCHEMA_VERSION),
102
+ repoRoot: z.string(),
103
+ canonicalName: z.string(),
104
+ stacks: z.array(StackSchema).max(12),
105
+ services: z.array(ServiceSchema).max(30),
106
+ dependencies: z.array(DependencySchema).max(20),
107
+ ci: z.object({
108
+ workflows: z.array(WorkflowSchema).max(20),
109
+ deployStory: DeployStorySchema.nullable(),
110
+ }),
111
+ tree: z.object({
112
+ topLevelDirs: z.array(TopLevelDirSchema).max(30),
113
+ languageBreakdown: z.record(z.string(), z.number().int().nonnegative()),
114
+ testDirs: z.array(z.string()).max(20),
115
+ fileCount: z.number().int().nonnegative(),
116
+ }),
117
+ git: z.object({
118
+ recentCommitConventions: z.object({
119
+ conventional: z.boolean(),
120
+ cycleReferenced: z.boolean(),
121
+ }),
122
+ defaultBranch: z.string(),
123
+ }),
124
+ docs: z.object({
125
+ existing: z.array(z.string()).max(50),
126
+ hasClaudeMd: z.boolean(),
127
+ hasAgentsMd: z.boolean(),
128
+ agentContextSetPresent: z.boolean(),
129
+ claudeMd: AgentFileSchema.nullable(),
130
+ agentsMd: AgentFileSchema.nullable(),
131
+ }),
132
+ dfPresence: z.object({
133
+ hooks: z.boolean(),
134
+ configJson: z.boolean(),
135
+ prWorkflow: z.boolean(),
136
+ cliPin: z.string().nullable(),
137
+ }),
138
+ decisions: z.array(DecisionSchema).max(10),
139
+ analyzerErrors: z.array(AnalyzerErrorSchema).default([]),
140
+ })
141
+ .strict();
142
+ //# sourceMappingURL=schema.js.map