work-chronicler 0.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 (112) hide show
  1. package/README.md +432 -0
  2. package/bin/mcp.js +6 -0
  3. package/bin/work-chronicler.js +3 -0
  4. package/dist/cli/analyzer/classifier.d.ts +31 -0
  5. package/dist/cli/analyzer/classifier.d.ts.map +1 -0
  6. package/dist/cli/analyzer/classifier.js +171 -0
  7. package/dist/cli/analyzer/index.d.ts +5 -0
  8. package/dist/cli/analyzer/index.d.ts.map +1 -0
  9. package/dist/cli/analyzer/index.js +4 -0
  10. package/dist/cli/analyzer/projects.d.ts +10 -0
  11. package/dist/cli/analyzer/projects.d.ts.map +1 -0
  12. package/dist/cli/analyzer/projects.js +228 -0
  13. package/dist/cli/analyzer/stats.d.ts +30 -0
  14. package/dist/cli/analyzer/stats.d.ts.map +1 -0
  15. package/dist/cli/analyzer/stats.js +80 -0
  16. package/dist/cli/analyzer/timeline.d.ts +6 -0
  17. package/dist/cli/analyzer/timeline.d.ts.map +1 -0
  18. package/dist/cli/analyzer/timeline.js +224 -0
  19. package/dist/cli/commands/analyze.d.ts +3 -0
  20. package/dist/cli/commands/analyze.d.ts.map +1 -0
  21. package/dist/cli/commands/analyze.js +216 -0
  22. package/dist/cli/commands/fetch/all.d.ts +3 -0
  23. package/dist/cli/commands/fetch/all.d.ts.map +1 -0
  24. package/dist/cli/commands/fetch/all.js +91 -0
  25. package/dist/cli/commands/fetch/github.d.ts +3 -0
  26. package/dist/cli/commands/fetch/github.d.ts.map +1 -0
  27. package/dist/cli/commands/fetch/github.js +39 -0
  28. package/dist/cli/commands/fetch/jira.d.ts +3 -0
  29. package/dist/cli/commands/fetch/jira.d.ts.map +1 -0
  30. package/dist/cli/commands/fetch/jira.js +39 -0
  31. package/dist/cli/commands/filter.d.ts +3 -0
  32. package/dist/cli/commands/filter.d.ts.map +1 -0
  33. package/dist/cli/commands/filter.js +247 -0
  34. package/dist/cli/commands/init.d.ts +3 -0
  35. package/dist/cli/commands/init.d.ts.map +1 -0
  36. package/dist/cli/commands/init.js +47 -0
  37. package/dist/cli/commands/link.d.ts +3 -0
  38. package/dist/cli/commands/link.d.ts.map +1 -0
  39. package/dist/cli/commands/link.js +25 -0
  40. package/dist/cli/commands/mcp.d.ts +3 -0
  41. package/dist/cli/commands/mcp.d.ts.map +1 -0
  42. package/dist/cli/commands/mcp.js +43 -0
  43. package/dist/cli/commands/status.d.ts +3 -0
  44. package/dist/cli/commands/status.d.ts.map +1 -0
  45. package/dist/cli/commands/status.js +28 -0
  46. package/dist/cli/fetchers/github.d.ts +20 -0
  47. package/dist/cli/fetchers/github.d.ts.map +1 -0
  48. package/dist/cli/fetchers/github.js +345 -0
  49. package/dist/cli/fetchers/jira.d.ts +20 -0
  50. package/dist/cli/fetchers/jira.d.ts.map +1 -0
  51. package/dist/cli/fetchers/jira.js +268 -0
  52. package/dist/cli/index.d.ts +3 -0
  53. package/dist/cli/index.d.ts.map +1 -0
  54. package/dist/cli/index.js +43 -0
  55. package/dist/cli/linker/index.d.ts +17 -0
  56. package/dist/cli/linker/index.d.ts.map +1 -0
  57. package/dist/cli/linker/index.js +129 -0
  58. package/dist/cli/prompts/index.d.ts +61 -0
  59. package/dist/cli/prompts/index.d.ts.map +1 -0
  60. package/dist/cli/prompts/index.js +258 -0
  61. package/dist/core/config/loader.d.ts +61 -0
  62. package/dist/core/config/loader.d.ts.map +1 -0
  63. package/dist/core/config/loader.js +146 -0
  64. package/dist/core/config/schema.d.ts +587 -0
  65. package/dist/core/config/schema.d.ts.map +1 -0
  66. package/dist/core/config/schema.js +95 -0
  67. package/dist/core/index.d.ts +5 -0
  68. package/dist/core/index.d.ts.map +1 -0
  69. package/dist/core/index.js +7 -0
  70. package/dist/core/storage/index.d.ts +4 -0
  71. package/dist/core/storage/index.d.ts.map +1 -0
  72. package/dist/core/storage/index.js +3 -0
  73. package/dist/core/storage/paths.d.ts +85 -0
  74. package/dist/core/storage/paths.d.ts.map +1 -0
  75. package/dist/core/storage/paths.js +110 -0
  76. package/dist/core/storage/reader.d.ts +69 -0
  77. package/dist/core/storage/reader.d.ts.map +1 -0
  78. package/dist/core/storage/reader.js +181 -0
  79. package/dist/core/storage/writer.d.ts +41 -0
  80. package/dist/core/storage/writer.d.ts.map +1 -0
  81. package/dist/core/storage/writer.js +50 -0
  82. package/dist/core/types/index.d.ts +5 -0
  83. package/dist/core/types/index.d.ts.map +1 -0
  84. package/dist/core/types/index.js +4 -0
  85. package/dist/core/types/pr.d.ts +75 -0
  86. package/dist/core/types/pr.d.ts.map +1 -0
  87. package/dist/core/types/pr.js +35 -0
  88. package/dist/core/types/project.d.ts +450 -0
  89. package/dist/core/types/project.d.ts.map +1 -0
  90. package/dist/core/types/project.js +75 -0
  91. package/dist/core/types/ticket.d.ts +51 -0
  92. package/dist/core/types/ticket.d.ts.map +1 -0
  93. package/dist/core/types/ticket.js +17 -0
  94. package/dist/core/types/timeline.d.ts +1177 -0
  95. package/dist/core/types/timeline.d.ts.map +1 -0
  96. package/dist/core/types/timeline.js +100 -0
  97. package/dist/mcp/index.d.ts +15 -0
  98. package/dist/mcp/index.d.ts.map +1 -0
  99. package/dist/mcp/index.js +26 -0
  100. package/dist/mcp/server.d.ts +22 -0
  101. package/dist/mcp/server.d.ts.map +1 -0
  102. package/dist/mcp/server.js +584 -0
  103. package/dist/mcp/tools/get-stats.d.ts +26 -0
  104. package/dist/mcp/tools/get-stats.d.ts.map +1 -0
  105. package/dist/mcp/tools/get-stats.js +64 -0
  106. package/dist/mcp/tools/search-prs.d.ts +18 -0
  107. package/dist/mcp/tools/search-prs.d.ts.map +1 -0
  108. package/dist/mcp/tools/search-prs.js +44 -0
  109. package/dist/mcp/tools/search-tickets.d.ts +19 -0
  110. package/dist/mcp/tools/search-tickets.d.ts.map +1 -0
  111. package/dist/mcp/tools/search-tickets.js +49 -0
  112. package/package.json +79 -0
@@ -0,0 +1,587 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * GitHub organization configuration
4
+ */
5
+ export declare const GitHubOrgConfigSchema: z.ZodObject<{
6
+ name: z.ZodString;
7
+ repos: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
8
+ }, "strip", z.ZodTypeAny, {
9
+ name: string;
10
+ repos: string[];
11
+ }, {
12
+ name: string;
13
+ repos?: string[] | undefined;
14
+ }>;
15
+ /**
16
+ * GitHub configuration
17
+ */
18
+ export declare const GitHubConfigSchema: z.ZodObject<{
19
+ username: z.ZodString;
20
+ token: z.ZodOptional<z.ZodString>;
21
+ orgs: z.ZodDefault<z.ZodArray<z.ZodObject<{
22
+ name: z.ZodString;
23
+ repos: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
24
+ }, "strip", z.ZodTypeAny, {
25
+ name: string;
26
+ repos: string[];
27
+ }, {
28
+ name: string;
29
+ repos?: string[] | undefined;
30
+ }>, "many">>;
31
+ }, "strip", z.ZodTypeAny, {
32
+ username: string;
33
+ orgs: {
34
+ name: string;
35
+ repos: string[];
36
+ }[];
37
+ token?: string | undefined;
38
+ }, {
39
+ username: string;
40
+ token?: string | undefined;
41
+ orgs?: {
42
+ name: string;
43
+ repos?: string[] | undefined;
44
+ }[] | undefined;
45
+ }>;
46
+ /**
47
+ * JIRA instance configuration
48
+ */
49
+ export declare const JiraInstanceConfigSchema: z.ZodObject<{
50
+ name: z.ZodString;
51
+ url: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
52
+ email: z.ZodOptional<z.ZodString>;
53
+ token: z.ZodOptional<z.ZodString>;
54
+ projects: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
55
+ }, "strip", z.ZodTypeAny, {
56
+ name: string;
57
+ url: string;
58
+ projects: string[];
59
+ token?: string | undefined;
60
+ email?: string | undefined;
61
+ }, {
62
+ name: string;
63
+ url: string;
64
+ token?: string | undefined;
65
+ email?: string | undefined;
66
+ projects?: string[] | undefined;
67
+ }>;
68
+ /**
69
+ * JIRA configuration
70
+ */
71
+ export declare const JiraConfigSchema: z.ZodObject<{
72
+ instances: z.ZodDefault<z.ZodArray<z.ZodObject<{
73
+ name: z.ZodString;
74
+ url: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
75
+ email: z.ZodOptional<z.ZodString>;
76
+ token: z.ZodOptional<z.ZodString>;
77
+ projects: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
78
+ }, "strip", z.ZodTypeAny, {
79
+ name: string;
80
+ url: string;
81
+ projects: string[];
82
+ token?: string | undefined;
83
+ email?: string | undefined;
84
+ }, {
85
+ name: string;
86
+ url: string;
87
+ token?: string | undefined;
88
+ email?: string | undefined;
89
+ projects?: string[] | undefined;
90
+ }>, "many">>;
91
+ }, "strip", z.ZodTypeAny, {
92
+ instances: {
93
+ name: string;
94
+ url: string;
95
+ projects: string[];
96
+ token?: string | undefined;
97
+ email?: string | undefined;
98
+ }[];
99
+ }, {
100
+ instances?: {
101
+ name: string;
102
+ url: string;
103
+ token?: string | undefined;
104
+ email?: string | undefined;
105
+ projects?: string[] | undefined;
106
+ }[] | undefined;
107
+ }>;
108
+ /**
109
+ * Output configuration
110
+ */
111
+ export declare const OutputConfigSchema: z.ZodObject<{
112
+ directory: z.ZodDefault<z.ZodString>;
113
+ }, "strip", z.ZodTypeAny, {
114
+ directory: string;
115
+ }, {
116
+ directory?: string | undefined;
117
+ }>;
118
+ /**
119
+ * Fetch configuration
120
+ */
121
+ export declare const FetchConfigSchema: z.ZodObject<{
122
+ since: z.ZodString;
123
+ until: z.ZodDefault<z.ZodNullable<z.ZodString>>;
124
+ }, "strip", z.ZodTypeAny, {
125
+ since: string;
126
+ until: string | null;
127
+ }, {
128
+ since: string;
129
+ until?: string | null | undefined;
130
+ }>;
131
+ /**
132
+ * Analysis configuration with impact thresholds
133
+ */
134
+ export declare const AnalysisConfigSchema: z.ZodObject<{
135
+ thresholds: z.ZodDefault<z.ZodObject<{
136
+ minor: z.ZodDefault<z.ZodObject<{
137
+ minLines: z.ZodOptional<z.ZodNumber>;
138
+ maxLines: z.ZodOptional<z.ZodNumber>;
139
+ minFiles: z.ZodOptional<z.ZodNumber>;
140
+ maxFiles: z.ZodOptional<z.ZodNumber>;
141
+ }, "strip", z.ZodTypeAny, {
142
+ minLines?: number | undefined;
143
+ maxLines?: number | undefined;
144
+ minFiles?: number | undefined;
145
+ maxFiles?: number | undefined;
146
+ }, {
147
+ minLines?: number | undefined;
148
+ maxLines?: number | undefined;
149
+ minFiles?: number | undefined;
150
+ maxFiles?: number | undefined;
151
+ }>>;
152
+ major: z.ZodDefault<z.ZodObject<{
153
+ minLines: z.ZodOptional<z.ZodNumber>;
154
+ maxLines: z.ZodOptional<z.ZodNumber>;
155
+ minFiles: z.ZodOptional<z.ZodNumber>;
156
+ maxFiles: z.ZodOptional<z.ZodNumber>;
157
+ }, "strip", z.ZodTypeAny, {
158
+ minLines?: number | undefined;
159
+ maxLines?: number | undefined;
160
+ minFiles?: number | undefined;
161
+ maxFiles?: number | undefined;
162
+ }, {
163
+ minLines?: number | undefined;
164
+ maxLines?: number | undefined;
165
+ minFiles?: number | undefined;
166
+ maxFiles?: number | undefined;
167
+ }>>;
168
+ flagship: z.ZodDefault<z.ZodObject<{
169
+ minLines: z.ZodOptional<z.ZodNumber>;
170
+ maxLines: z.ZodOptional<z.ZodNumber>;
171
+ minFiles: z.ZodOptional<z.ZodNumber>;
172
+ maxFiles: z.ZodOptional<z.ZodNumber>;
173
+ }, "strip", z.ZodTypeAny, {
174
+ minLines?: number | undefined;
175
+ maxLines?: number | undefined;
176
+ minFiles?: number | undefined;
177
+ maxFiles?: number | undefined;
178
+ }, {
179
+ minLines?: number | undefined;
180
+ maxLines?: number | undefined;
181
+ minFiles?: number | undefined;
182
+ maxFiles?: number | undefined;
183
+ }>>;
184
+ }, "strip", z.ZodTypeAny, {
185
+ minor: {
186
+ minLines?: number | undefined;
187
+ maxLines?: number | undefined;
188
+ minFiles?: number | undefined;
189
+ maxFiles?: number | undefined;
190
+ };
191
+ major: {
192
+ minLines?: number | undefined;
193
+ maxLines?: number | undefined;
194
+ minFiles?: number | undefined;
195
+ maxFiles?: number | undefined;
196
+ };
197
+ flagship: {
198
+ minLines?: number | undefined;
199
+ maxLines?: number | undefined;
200
+ minFiles?: number | undefined;
201
+ maxFiles?: number | undefined;
202
+ };
203
+ }, {
204
+ minor?: {
205
+ minLines?: number | undefined;
206
+ maxLines?: number | undefined;
207
+ minFiles?: number | undefined;
208
+ maxFiles?: number | undefined;
209
+ } | undefined;
210
+ major?: {
211
+ minLines?: number | undefined;
212
+ maxLines?: number | undefined;
213
+ minFiles?: number | undefined;
214
+ maxFiles?: number | undefined;
215
+ } | undefined;
216
+ flagship?: {
217
+ minLines?: number | undefined;
218
+ maxLines?: number | undefined;
219
+ minFiles?: number | undefined;
220
+ maxFiles?: number | undefined;
221
+ } | undefined;
222
+ }>>;
223
+ }, "strip", z.ZodTypeAny, {
224
+ thresholds: {
225
+ minor: {
226
+ minLines?: number | undefined;
227
+ maxLines?: number | undefined;
228
+ minFiles?: number | undefined;
229
+ maxFiles?: number | undefined;
230
+ };
231
+ major: {
232
+ minLines?: number | undefined;
233
+ maxLines?: number | undefined;
234
+ minFiles?: number | undefined;
235
+ maxFiles?: number | undefined;
236
+ };
237
+ flagship: {
238
+ minLines?: number | undefined;
239
+ maxLines?: number | undefined;
240
+ minFiles?: number | undefined;
241
+ maxFiles?: number | undefined;
242
+ };
243
+ };
244
+ }, {
245
+ thresholds?: {
246
+ minor?: {
247
+ minLines?: number | undefined;
248
+ maxLines?: number | undefined;
249
+ minFiles?: number | undefined;
250
+ maxFiles?: number | undefined;
251
+ } | undefined;
252
+ major?: {
253
+ minLines?: number | undefined;
254
+ maxLines?: number | undefined;
255
+ minFiles?: number | undefined;
256
+ maxFiles?: number | undefined;
257
+ } | undefined;
258
+ flagship?: {
259
+ minLines?: number | undefined;
260
+ maxLines?: number | undefined;
261
+ minFiles?: number | undefined;
262
+ maxFiles?: number | undefined;
263
+ } | undefined;
264
+ } | undefined;
265
+ }>;
266
+ /**
267
+ * Root configuration schema
268
+ */
269
+ export declare const ConfigSchema: z.ZodObject<{
270
+ github: z.ZodObject<{
271
+ username: z.ZodString;
272
+ token: z.ZodOptional<z.ZodString>;
273
+ orgs: z.ZodDefault<z.ZodArray<z.ZodObject<{
274
+ name: z.ZodString;
275
+ repos: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
276
+ }, "strip", z.ZodTypeAny, {
277
+ name: string;
278
+ repos: string[];
279
+ }, {
280
+ name: string;
281
+ repos?: string[] | undefined;
282
+ }>, "many">>;
283
+ }, "strip", z.ZodTypeAny, {
284
+ username: string;
285
+ orgs: {
286
+ name: string;
287
+ repos: string[];
288
+ }[];
289
+ token?: string | undefined;
290
+ }, {
291
+ username: string;
292
+ token?: string | undefined;
293
+ orgs?: {
294
+ name: string;
295
+ repos?: string[] | undefined;
296
+ }[] | undefined;
297
+ }>;
298
+ jira: z.ZodOptional<z.ZodObject<{
299
+ instances: z.ZodDefault<z.ZodArray<z.ZodObject<{
300
+ name: z.ZodString;
301
+ url: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
302
+ email: z.ZodOptional<z.ZodString>;
303
+ token: z.ZodOptional<z.ZodString>;
304
+ projects: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
305
+ }, "strip", z.ZodTypeAny, {
306
+ name: string;
307
+ url: string;
308
+ projects: string[];
309
+ token?: string | undefined;
310
+ email?: string | undefined;
311
+ }, {
312
+ name: string;
313
+ url: string;
314
+ token?: string | undefined;
315
+ email?: string | undefined;
316
+ projects?: string[] | undefined;
317
+ }>, "many">>;
318
+ }, "strip", z.ZodTypeAny, {
319
+ instances: {
320
+ name: string;
321
+ url: string;
322
+ projects: string[];
323
+ token?: string | undefined;
324
+ email?: string | undefined;
325
+ }[];
326
+ }, {
327
+ instances?: {
328
+ name: string;
329
+ url: string;
330
+ token?: string | undefined;
331
+ email?: string | undefined;
332
+ projects?: string[] | undefined;
333
+ }[] | undefined;
334
+ }>>;
335
+ output: z.ZodDefault<z.ZodObject<{
336
+ directory: z.ZodDefault<z.ZodString>;
337
+ }, "strip", z.ZodTypeAny, {
338
+ directory: string;
339
+ }, {
340
+ directory?: string | undefined;
341
+ }>>;
342
+ fetch: z.ZodObject<{
343
+ since: z.ZodString;
344
+ until: z.ZodDefault<z.ZodNullable<z.ZodString>>;
345
+ }, "strip", z.ZodTypeAny, {
346
+ since: string;
347
+ until: string | null;
348
+ }, {
349
+ since: string;
350
+ until?: string | null | undefined;
351
+ }>;
352
+ analysis: z.ZodDefault<z.ZodObject<{
353
+ thresholds: z.ZodDefault<z.ZodObject<{
354
+ minor: z.ZodDefault<z.ZodObject<{
355
+ minLines: z.ZodOptional<z.ZodNumber>;
356
+ maxLines: z.ZodOptional<z.ZodNumber>;
357
+ minFiles: z.ZodOptional<z.ZodNumber>;
358
+ maxFiles: z.ZodOptional<z.ZodNumber>;
359
+ }, "strip", z.ZodTypeAny, {
360
+ minLines?: number | undefined;
361
+ maxLines?: number | undefined;
362
+ minFiles?: number | undefined;
363
+ maxFiles?: number | undefined;
364
+ }, {
365
+ minLines?: number | undefined;
366
+ maxLines?: number | undefined;
367
+ minFiles?: number | undefined;
368
+ maxFiles?: number | undefined;
369
+ }>>;
370
+ major: z.ZodDefault<z.ZodObject<{
371
+ minLines: z.ZodOptional<z.ZodNumber>;
372
+ maxLines: z.ZodOptional<z.ZodNumber>;
373
+ minFiles: z.ZodOptional<z.ZodNumber>;
374
+ maxFiles: z.ZodOptional<z.ZodNumber>;
375
+ }, "strip", z.ZodTypeAny, {
376
+ minLines?: number | undefined;
377
+ maxLines?: number | undefined;
378
+ minFiles?: number | undefined;
379
+ maxFiles?: number | undefined;
380
+ }, {
381
+ minLines?: number | undefined;
382
+ maxLines?: number | undefined;
383
+ minFiles?: number | undefined;
384
+ maxFiles?: number | undefined;
385
+ }>>;
386
+ flagship: z.ZodDefault<z.ZodObject<{
387
+ minLines: z.ZodOptional<z.ZodNumber>;
388
+ maxLines: z.ZodOptional<z.ZodNumber>;
389
+ minFiles: z.ZodOptional<z.ZodNumber>;
390
+ maxFiles: z.ZodOptional<z.ZodNumber>;
391
+ }, "strip", z.ZodTypeAny, {
392
+ minLines?: number | undefined;
393
+ maxLines?: number | undefined;
394
+ minFiles?: number | undefined;
395
+ maxFiles?: number | undefined;
396
+ }, {
397
+ minLines?: number | undefined;
398
+ maxLines?: number | undefined;
399
+ minFiles?: number | undefined;
400
+ maxFiles?: number | undefined;
401
+ }>>;
402
+ }, "strip", z.ZodTypeAny, {
403
+ minor: {
404
+ minLines?: number | undefined;
405
+ maxLines?: number | undefined;
406
+ minFiles?: number | undefined;
407
+ maxFiles?: number | undefined;
408
+ };
409
+ major: {
410
+ minLines?: number | undefined;
411
+ maxLines?: number | undefined;
412
+ minFiles?: number | undefined;
413
+ maxFiles?: number | undefined;
414
+ };
415
+ flagship: {
416
+ minLines?: number | undefined;
417
+ maxLines?: number | undefined;
418
+ minFiles?: number | undefined;
419
+ maxFiles?: number | undefined;
420
+ };
421
+ }, {
422
+ minor?: {
423
+ minLines?: number | undefined;
424
+ maxLines?: number | undefined;
425
+ minFiles?: number | undefined;
426
+ maxFiles?: number | undefined;
427
+ } | undefined;
428
+ major?: {
429
+ minLines?: number | undefined;
430
+ maxLines?: number | undefined;
431
+ minFiles?: number | undefined;
432
+ maxFiles?: number | undefined;
433
+ } | undefined;
434
+ flagship?: {
435
+ minLines?: number | undefined;
436
+ maxLines?: number | undefined;
437
+ minFiles?: number | undefined;
438
+ maxFiles?: number | undefined;
439
+ } | undefined;
440
+ }>>;
441
+ }, "strip", z.ZodTypeAny, {
442
+ thresholds: {
443
+ minor: {
444
+ minLines?: number | undefined;
445
+ maxLines?: number | undefined;
446
+ minFiles?: number | undefined;
447
+ maxFiles?: number | undefined;
448
+ };
449
+ major: {
450
+ minLines?: number | undefined;
451
+ maxLines?: number | undefined;
452
+ minFiles?: number | undefined;
453
+ maxFiles?: number | undefined;
454
+ };
455
+ flagship: {
456
+ minLines?: number | undefined;
457
+ maxLines?: number | undefined;
458
+ minFiles?: number | undefined;
459
+ maxFiles?: number | undefined;
460
+ };
461
+ };
462
+ }, {
463
+ thresholds?: {
464
+ minor?: {
465
+ minLines?: number | undefined;
466
+ maxLines?: number | undefined;
467
+ minFiles?: number | undefined;
468
+ maxFiles?: number | undefined;
469
+ } | undefined;
470
+ major?: {
471
+ minLines?: number | undefined;
472
+ maxLines?: number | undefined;
473
+ minFiles?: number | undefined;
474
+ maxFiles?: number | undefined;
475
+ } | undefined;
476
+ flagship?: {
477
+ minLines?: number | undefined;
478
+ maxLines?: number | undefined;
479
+ minFiles?: number | undefined;
480
+ maxFiles?: number | undefined;
481
+ } | undefined;
482
+ } | undefined;
483
+ }>>;
484
+ }, "strip", z.ZodTypeAny, {
485
+ github: {
486
+ username: string;
487
+ orgs: {
488
+ name: string;
489
+ repos: string[];
490
+ }[];
491
+ token?: string | undefined;
492
+ };
493
+ output: {
494
+ directory: string;
495
+ };
496
+ fetch: {
497
+ since: string;
498
+ until: string | null;
499
+ };
500
+ analysis: {
501
+ thresholds: {
502
+ minor: {
503
+ minLines?: number | undefined;
504
+ maxLines?: number | undefined;
505
+ minFiles?: number | undefined;
506
+ maxFiles?: number | undefined;
507
+ };
508
+ major: {
509
+ minLines?: number | undefined;
510
+ maxLines?: number | undefined;
511
+ minFiles?: number | undefined;
512
+ maxFiles?: number | undefined;
513
+ };
514
+ flagship: {
515
+ minLines?: number | undefined;
516
+ maxLines?: number | undefined;
517
+ minFiles?: number | undefined;
518
+ maxFiles?: number | undefined;
519
+ };
520
+ };
521
+ };
522
+ jira?: {
523
+ instances: {
524
+ name: string;
525
+ url: string;
526
+ projects: string[];
527
+ token?: string | undefined;
528
+ email?: string | undefined;
529
+ }[];
530
+ } | undefined;
531
+ }, {
532
+ github: {
533
+ username: string;
534
+ token?: string | undefined;
535
+ orgs?: {
536
+ name: string;
537
+ repos?: string[] | undefined;
538
+ }[] | undefined;
539
+ };
540
+ fetch: {
541
+ since: string;
542
+ until?: string | null | undefined;
543
+ };
544
+ jira?: {
545
+ instances?: {
546
+ name: string;
547
+ url: string;
548
+ token?: string | undefined;
549
+ email?: string | undefined;
550
+ projects?: string[] | undefined;
551
+ }[] | undefined;
552
+ } | undefined;
553
+ output?: {
554
+ directory?: string | undefined;
555
+ } | undefined;
556
+ analysis?: {
557
+ thresholds?: {
558
+ minor?: {
559
+ minLines?: number | undefined;
560
+ maxLines?: number | undefined;
561
+ minFiles?: number | undefined;
562
+ maxFiles?: number | undefined;
563
+ } | undefined;
564
+ major?: {
565
+ minLines?: number | undefined;
566
+ maxLines?: number | undefined;
567
+ minFiles?: number | undefined;
568
+ maxFiles?: number | undefined;
569
+ } | undefined;
570
+ flagship?: {
571
+ minLines?: number | undefined;
572
+ maxLines?: number | undefined;
573
+ minFiles?: number | undefined;
574
+ maxFiles?: number | undefined;
575
+ } | undefined;
576
+ } | undefined;
577
+ } | undefined;
578
+ }>;
579
+ export type GitHubOrgConfig = z.infer<typeof GitHubOrgConfigSchema>;
580
+ export type GitHubConfig = z.infer<typeof GitHubConfigSchema>;
581
+ export type JiraInstanceConfig = z.infer<typeof JiraInstanceConfigSchema>;
582
+ export type JiraConfig = z.infer<typeof JiraConfigSchema>;
583
+ export type OutputConfig = z.infer<typeof OutputConfigSchema>;
584
+ export type FetchConfig = z.infer<typeof FetchConfigSchema>;
585
+ export type AnalysisConfig = z.infer<typeof AnalysisConfigSchema>;
586
+ export type Config = z.infer<typeof ConfigSchema>;
587
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/core/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAyBxB;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;EAGhC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;EAI7B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;EAMnC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAE3B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;EAE7B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;EAG5B,CAAC;AAYH;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQ/B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMvB,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAC1E,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC"}
@@ -0,0 +1,95 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Custom URL validator that ensures proper format (catches https:/example.com typos)
4
+ */
5
+ const httpsUrl = z
6
+ .string()
7
+ .refine((url) => url.startsWith('https://'), {
8
+ message: 'URL must start with https://',
9
+ })
10
+ .refine((url) => {
11
+ try {
12
+ const parsed = new URL(url);
13
+ return parsed.host.includes('.');
14
+ }
15
+ catch {
16
+ return false;
17
+ }
18
+ }, {
19
+ message: 'Must be a valid HTTPS URL (e.g., https://example.atlassian.net)',
20
+ });
21
+ /**
22
+ * GitHub organization configuration
23
+ */
24
+ export const GitHubOrgConfigSchema = z.object({
25
+ name: z.string(),
26
+ repos: z.array(z.string()).default(['*']),
27
+ });
28
+ /**
29
+ * GitHub configuration
30
+ */
31
+ export const GitHubConfigSchema = z.object({
32
+ username: z.string(),
33
+ token: z.string().optional(),
34
+ orgs: z.array(GitHubOrgConfigSchema).default([]),
35
+ });
36
+ /**
37
+ * JIRA instance configuration
38
+ */
39
+ export const JiraInstanceConfigSchema = z.object({
40
+ name: z.string(),
41
+ url: httpsUrl,
42
+ email: z.string().email().optional(),
43
+ token: z.string().optional(),
44
+ projects: z.array(z.string()).default([]),
45
+ });
46
+ /**
47
+ * JIRA configuration
48
+ */
49
+ export const JiraConfigSchema = z.object({
50
+ instances: z.array(JiraInstanceConfigSchema).default([]),
51
+ });
52
+ /**
53
+ * Output configuration
54
+ */
55
+ export const OutputConfigSchema = z.object({
56
+ directory: z.string().default('./work-log'),
57
+ });
58
+ /**
59
+ * Fetch configuration
60
+ */
61
+ export const FetchConfigSchema = z.object({
62
+ since: z.string(),
63
+ until: z.string().nullable().default(null),
64
+ });
65
+ /**
66
+ * Impact threshold configuration for a single tier
67
+ */
68
+ const ImpactThresholdSchema = z.object({
69
+ minLines: z.number().optional(),
70
+ maxLines: z.number().optional(),
71
+ minFiles: z.number().optional(),
72
+ maxFiles: z.number().optional(),
73
+ });
74
+ /**
75
+ * Analysis configuration with impact thresholds
76
+ */
77
+ export const AnalysisConfigSchema = z.object({
78
+ thresholds: z
79
+ .object({
80
+ minor: ImpactThresholdSchema.default({ maxLines: 20, maxFiles: 3 }),
81
+ major: ImpactThresholdSchema.default({ minLines: 200, minFiles: 8 }),
82
+ flagship: ImpactThresholdSchema.default({ minLines: 500, minFiles: 15 }),
83
+ })
84
+ .default({}),
85
+ });
86
+ /**
87
+ * Root configuration schema
88
+ */
89
+ export const ConfigSchema = z.object({
90
+ github: GitHubConfigSchema,
91
+ jira: JiraConfigSchema.optional(),
92
+ output: OutputConfigSchema.default({ directory: './work-log' }),
93
+ fetch: FetchConfigSchema,
94
+ analysis: AnalysisConfigSchema.default({}),
95
+ });
@@ -0,0 +1,5 @@
1
+ export { findConfigPath, generateExampleConfig, getOutputDirectory, loadConfig, } from './config/loader.js';
2
+ export { type AnalysisConfig, AnalysisConfigSchema, type Config, ConfigSchema, type FetchConfig, type GitHubConfig, GitHubConfigSchema, type GitHubOrgConfig, type JiraConfig, JiraConfigSchema, type JiraInstanceConfig, type OutputConfig, } from './config/schema.js';
3
+ export { DIRECTORIES, ensureDirectory, getAnalysisFilePath, getEffectiveOutputDir, getJiraDirectory, getPRDirectory, getPRFilePath, getTicketFilePath, type MarkdownFrontmatter, readAllPRs, readAllTickets, readPR, readTicket, writeMarkdownFile, } from './storage/index.js';
4
+ export { type JiraTicket, type JiraTicketFile, JiraTicketSchema, type PRImpact, PRImpactSchema, type ProjectConfidence, ProjectConfidenceSchema, type ProjectGrouping, ProjectGroupingSchema, type ProjectSignal, ProjectSignalSchema, type ProjectSignals, ProjectSignalsSchema, type ProjectsAnalysis, ProjectsAnalysisSchema, type PullRequest, type PullRequestFile, PullRequestSchema, type TimelineAnalysis, TimelineAnalysisSchema, type TimelineMonth, TimelineMonthSchema, type TimelinePR, TimelinePRSchema, type TimelineTicket, TimelineTicketSchema, type TimelineWeek, TimelineWeekSchema, } from './types/index.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,kBAAkB,EAClB,UAAU,GACX,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,KAAK,cAAc,EACnB,oBAAoB,EACpB,KAAK,MAAM,EACX,YAAY,EACZ,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,kBAAkB,EAClB,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,gBAAgB,EAChB,KAAK,kBAAkB,EACvB,KAAK,YAAY,GAClB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,KAAK,mBAAmB,EACxB,UAAU,EACV,cAAc,EACd,MAAM,EACN,UAAU,EACV,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,gBAAgB,EAChB,KAAK,QAAQ,EACb,cAAc,EACd,KAAK,iBAAiB,EACtB,uBAAuB,EACvB,KAAK,eAAe,EACpB,qBAAqB,EACrB,KAAK,aAAa,EAClB,mBAAmB,EACnB,KAAK,cAAc,EACnB,oBAAoB,EACpB,KAAK,gBAAgB,EACrB,sBAAsB,EACtB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,iBAAiB,EACjB,KAAK,gBAAgB,EACrB,sBAAsB,EACtB,KAAK,aAAa,EAClB,mBAAmB,EACnB,KAAK,UAAU,EACf,gBAAgB,EAChB,KAAK,cAAc,EACnB,oBAAoB,EACpB,KAAK,YAAY,EACjB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC"}