specweave 0.28.68 → 0.29.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/CLAUDE.md +3 -2
- package/README.md +19 -2
- package/dist/src/cli/commands/discrepancies.d.ts +89 -0
- package/dist/src/cli/commands/discrepancies.d.ts.map +1 -0
- package/dist/src/cli/commands/discrepancies.js +385 -0
- package/dist/src/cli/commands/discrepancies.js.map +1 -0
- package/dist/src/cli/commands/notifications.d.ts +70 -0
- package/dist/src/cli/commands/notifications.d.ts.map +1 -0
- package/dist/src/cli/commands/notifications.js +236 -0
- package/dist/src/cli/commands/notifications.js.map +1 -0
- package/dist/src/cli/commands/sync-logs.d.ts +54 -0
- package/dist/src/cli/commands/sync-logs.d.ts.map +1 -0
- package/dist/src/cli/commands/sync-logs.js +240 -0
- package/dist/src/cli/commands/sync-logs.js.map +1 -0
- package/dist/src/cli/commands/sync-monitor.d.ts +42 -0
- package/dist/src/cli/commands/sync-monitor.d.ts.map +1 -0
- package/dist/src/cli/commands/sync-monitor.js +191 -0
- package/dist/src/cli/commands/sync-monitor.js.map +1 -0
- package/dist/src/cli/helpers/init/brownfield-analysis.d.ts +45 -0
- package/dist/src/cli/helpers/init/brownfield-analysis.d.ts.map +1 -0
- package/dist/src/cli/helpers/init/brownfield-analysis.js +431 -0
- package/dist/src/cli/helpers/init/brownfield-analysis.js.map +1 -0
- package/dist/src/cli/helpers/init/index.d.ts +1 -0
- package/dist/src/cli/helpers/init/index.d.ts.map +1 -1
- package/dist/src/cli/helpers/init/index.js +2 -0
- package/dist/src/cli/helpers/init/index.js.map +1 -1
- package/dist/src/cli/workers/brownfield-worker.d.ts +66 -0
- package/dist/src/cli/workers/brownfield-worker.d.ts.map +1 -0
- package/dist/src/cli/workers/brownfield-worker.js +417 -0
- package/dist/src/cli/workers/brownfield-worker.js.map +1 -0
- package/dist/src/core/background/brownfield-launcher.d.ts +86 -0
- package/dist/src/core/background/brownfield-launcher.d.ts.map +1 -0
- package/dist/src/core/background/brownfield-launcher.js +295 -0
- package/dist/src/core/background/brownfield-launcher.js.map +1 -0
- package/dist/src/core/background/index.d.ts +2 -0
- package/dist/src/core/background/index.d.ts.map +1 -1
- package/dist/src/core/background/index.js +2 -0
- package/dist/src/core/background/index.js.map +1 -1
- package/dist/src/core/background/types.d.ts +23 -2
- package/dist/src/core/background/types.d.ts.map +1 -1
- package/dist/src/core/config/index.d.ts +1 -0
- package/dist/src/core/config/index.d.ts.map +1 -1
- package/dist/src/core/config/index.js +1 -0
- package/dist/src/core/config/index.js.map +1 -1
- package/dist/src/core/config/types.d.ts +6 -0
- package/dist/src/core/config/types.d.ts.map +1 -1
- package/dist/src/core/config/types.js.map +1 -1
- package/dist/src/core/dashboard/dashboard-data.d.ts +156 -0
- package/dist/src/core/dashboard/dashboard-data.d.ts.map +1 -0
- package/dist/src/core/dashboard/dashboard-data.js +191 -0
- package/dist/src/core/dashboard/dashboard-data.js.map +1 -0
- package/dist/src/core/dashboard/index.d.ts +9 -0
- package/dist/src/core/dashboard/index.d.ts.map +1 -0
- package/dist/src/core/dashboard/index.js +9 -0
- package/dist/src/core/dashboard/index.js.map +1 -0
- package/dist/src/core/discrepancy/analyzers/api-route-analyzer.d.ts +77 -0
- package/dist/src/core/discrepancy/analyzers/api-route-analyzer.d.ts.map +1 -0
- package/dist/src/core/discrepancy/analyzers/api-route-analyzer.js +286 -0
- package/dist/src/core/discrepancy/analyzers/api-route-analyzer.js.map +1 -0
- package/dist/src/core/discrepancy/analyzers/index.d.ts +8 -0
- package/dist/src/core/discrepancy/analyzers/index.d.ts.map +1 -0
- package/dist/src/core/discrepancy/analyzers/index.js +8 -0
- package/dist/src/core/discrepancy/analyzers/index.js.map +1 -0
- package/dist/src/core/discrepancy/analyzers/typescript-analyzer.d.ts +96 -0
- package/dist/src/core/discrepancy/analyzers/typescript-analyzer.d.ts.map +1 -0
- package/dist/src/core/discrepancy/analyzers/typescript-analyzer.js +247 -0
- package/dist/src/core/discrepancy/analyzers/typescript-analyzer.js.map +1 -0
- package/dist/src/core/discrepancy/brownfield-manager.d.ts +88 -0
- package/dist/src/core/discrepancy/brownfield-manager.d.ts.map +1 -0
- package/dist/src/core/discrepancy/brownfield-manager.js +520 -0
- package/dist/src/core/discrepancy/brownfield-manager.js.map +1 -0
- package/dist/src/core/discrepancy/brownfield-types.d.ts +174 -0
- package/dist/src/core/discrepancy/brownfield-types.d.ts.map +1 -0
- package/dist/src/core/discrepancy/brownfield-types.js +11 -0
- package/dist/src/core/discrepancy/brownfield-types.js.map +1 -0
- package/dist/src/core/discrepancy/detector.d.ts +92 -0
- package/dist/src/core/discrepancy/detector.d.ts.map +1 -0
- package/dist/src/core/discrepancy/detector.js +346 -0
- package/dist/src/core/discrepancy/detector.js.map +1 -0
- package/dist/src/core/discrepancy/increment-generator.d.ts +51 -0
- package/dist/src/core/discrepancy/increment-generator.d.ts.map +1 -0
- package/dist/src/core/discrepancy/increment-generator.js +234 -0
- package/dist/src/core/discrepancy/increment-generator.js.map +1 -0
- package/dist/src/core/discrepancy/index.d.ts +18 -0
- package/dist/src/core/discrepancy/index.d.ts.map +1 -0
- package/dist/src/core/discrepancy/index.js +24 -0
- package/dist/src/core/discrepancy/index.js.map +1 -0
- package/dist/src/core/discrepancy/severity-classifier.d.ts +81 -0
- package/dist/src/core/discrepancy/severity-classifier.d.ts.map +1 -0
- package/dist/src/core/discrepancy/severity-classifier.js +289 -0
- package/dist/src/core/discrepancy/severity-classifier.js.map +1 -0
- package/dist/src/core/discrepancy/spec-parser.d.ts +74 -0
- package/dist/src/core/discrepancy/spec-parser.d.ts.map +1 -0
- package/dist/src/core/discrepancy/spec-parser.js +213 -0
- package/dist/src/core/discrepancy/spec-parser.js.map +1 -0
- package/dist/src/core/discrepancy/update-recommender.d.ts +77 -0
- package/dist/src/core/discrepancy/update-recommender.d.ts.map +1 -0
- package/dist/src/core/discrepancy/update-recommender.js +323 -0
- package/dist/src/core/discrepancy/update-recommender.js.map +1 -0
- package/dist/src/core/living-docs/living-docs-sync.d.ts +13 -16
- package/dist/src/core/living-docs/living-docs-sync.d.ts.map +1 -1
- package/dist/src/core/living-docs/living-docs-sync.js +31 -112
- package/dist/src/core/living-docs/living-docs-sync.js.map +1 -1
- package/dist/src/core/logs/index.d.ts +10 -0
- package/dist/src/core/logs/index.d.ts.map +1 -0
- package/dist/src/core/logs/index.js +10 -0
- package/dist/src/core/logs/index.js.map +1 -0
- package/dist/src/core/logs/log-aggregator.d.ts +130 -0
- package/dist/src/core/logs/log-aggregator.d.ts.map +1 -0
- package/dist/src/core/logs/log-aggregator.js +206 -0
- package/dist/src/core/logs/log-aggregator.js.map +1 -0
- package/dist/src/core/logs/log-exporter.d.ts +81 -0
- package/dist/src/core/logs/log-exporter.d.ts.map +1 -0
- package/dist/src/core/logs/log-exporter.js +141 -0
- package/dist/src/core/logs/log-exporter.js.map +1 -0
- package/dist/src/core/notifications/command-integration.d.ts +82 -0
- package/dist/src/core/notifications/command-integration.d.ts.map +1 -0
- package/dist/src/core/notifications/command-integration.js +80 -0
- package/dist/src/core/notifications/command-integration.js.map +1 -0
- package/dist/src/core/notifications/index.d.ts +12 -0
- package/dist/src/core/notifications/index.d.ts.map +1 -0
- package/dist/src/core/notifications/index.js +12 -0
- package/dist/src/core/notifications/index.js.map +1 -0
- package/dist/src/core/notifications/notification-display.d.ts +70 -0
- package/dist/src/core/notifications/notification-display.d.ts.map +1 -0
- package/dist/src/core/notifications/notification-display.js +177 -0
- package/dist/src/core/notifications/notification-display.js.map +1 -0
- package/dist/src/core/notifications/notification-manager.d.ts +126 -0
- package/dist/src/core/notifications/notification-manager.d.ts.map +1 -0
- package/dist/src/core/notifications/notification-manager.js +287 -0
- package/dist/src/core/notifications/notification-manager.js.map +1 -0
- package/dist/src/core/notifications/notification-types.d.ts +159 -0
- package/dist/src/core/notifications/notification-types.d.ts.map +1 -0
- package/dist/src/core/notifications/notification-types.js +93 -0
- package/dist/src/core/notifications/notification-types.js.map +1 -0
- package/dist/src/core/scheduler/index.d.ts +11 -0
- package/dist/src/core/scheduler/index.d.ts.map +1 -0
- package/dist/src/core/scheduler/index.js +11 -0
- package/dist/src/core/scheduler/index.js.map +1 -0
- package/dist/src/core/scheduler/job-scheduler.d.ts +179 -0
- package/dist/src/core/scheduler/job-scheduler.d.ts.map +1 -0
- package/dist/src/core/scheduler/job-scheduler.js +282 -0
- package/dist/src/core/scheduler/job-scheduler.js.map +1 -0
- package/dist/src/core/scheduler/schedule-persistence.d.ts +83 -0
- package/dist/src/core/scheduler/schedule-persistence.d.ts.map +1 -0
- package/dist/src/core/scheduler/schedule-persistence.js +180 -0
- package/dist/src/core/scheduler/schedule-persistence.js.map +1 -0
- package/dist/src/core/scheduler/scheduled-job.d.ts +188 -0
- package/dist/src/core/scheduler/scheduled-job.d.ts.map +1 -0
- package/dist/src/core/scheduler/scheduled-job.js +182 -0
- package/dist/src/core/scheduler/scheduled-job.js.map +1 -0
- package/dist/src/core/sync/permission-enforcer.d.ts +206 -0
- package/dist/src/core/sync/permission-enforcer.d.ts.map +1 -0
- package/dist/src/core/sync/permission-enforcer.js +268 -0
- package/dist/src/core/sync/permission-enforcer.js.map +1 -0
- package/dist/src/core/sync/sync-audit-logger.d.ts +217 -0
- package/dist/src/core/sync/sync-audit-logger.d.ts.map +1 -0
- package/dist/src/core/sync/sync-audit-logger.js +327 -0
- package/dist/src/core/sync/sync-audit-logger.js.map +1 -0
- package/dist/src/core/sync/sync-interceptor.d.ts +190 -0
- package/dist/src/core/sync/sync-interceptor.d.ts.map +1 -0
- package/dist/src/core/sync/sync-interceptor.js +224 -0
- package/dist/src/core/sync/sync-interceptor.js.map +1 -0
- package/dist/src/core/types/increment-metadata.d.ts +5 -2
- package/dist/src/core/types/increment-metadata.d.ts.map +1 -1
- package/dist/src/core/types/sync-config.d.ts +267 -0
- package/dist/src/core/types/sync-config.d.ts.map +1 -0
- package/dist/src/core/types/sync-config.js +304 -0
- package/dist/src/core/types/sync-config.js.map +1 -0
- package/dist/src/hooks/index.d.ts +11 -0
- package/dist/src/hooks/index.d.ts.map +1 -0
- package/dist/src/hooks/index.js +11 -0
- package/dist/src/hooks/index.js.map +1 -0
- package/dist/src/hooks/platform.d.ts +125 -0
- package/dist/src/hooks/platform.d.ts.map +1 -0
- package/dist/src/hooks/platform.js +325 -0
- package/dist/src/hooks/platform.js.map +1 -0
- package/dist/src/hooks/processor.d.ts +20 -0
- package/dist/src/hooks/processor.d.ts.map +1 -0
- package/dist/src/hooks/processor.js +317 -0
- package/dist/src/hooks/processor.js.map +1 -0
- package/dist/src/hooks/scheduler-startup.d.ts +19 -0
- package/dist/src/hooks/scheduler-startup.d.ts.map +1 -0
- package/dist/src/hooks/scheduler-startup.js +92 -0
- package/dist/src/hooks/scheduler-startup.js.map +1 -0
- package/dist/src/hooks/session-start.d.ts +16 -0
- package/dist/src/hooks/session-start.d.ts.map +1 -0
- package/dist/src/hooks/session-start.js +92 -0
- package/dist/src/hooks/session-start.js.map +1 -0
- package/dist/src/importers/duplicate-detector.d.ts +13 -2
- package/dist/src/importers/duplicate-detector.d.ts.map +1 -1
- package/dist/src/importers/duplicate-detector.js +21 -2
- package/dist/src/importers/duplicate-detector.js.map +1 -1
- package/dist/src/importers/item-converter.d.ts +41 -2
- package/dist/src/importers/item-converter.d.ts.map +1 -1
- package/dist/src/importers/item-converter.js +225 -38
- package/dist/src/importers/item-converter.js.map +1 -1
- package/dist/src/living-docs/fs-id-allocator.d.ts +7 -0
- package/dist/src/living-docs/fs-id-allocator.d.ts.map +1 -1
- package/dist/src/living-docs/fs-id-allocator.js +30 -4
- package/dist/src/living-docs/fs-id-allocator.js.map +1 -1
- package/dist/src/sync/ado-sync-wrapper.d.ts +137 -0
- package/dist/src/sync/ado-sync-wrapper.d.ts.map +1 -0
- package/dist/src/sync/ado-sync-wrapper.js +148 -0
- package/dist/src/sync/ado-sync-wrapper.js.map +1 -0
- package/dist/src/sync/github-sync-wrapper.d.ts +195 -0
- package/dist/src/sync/github-sync-wrapper.d.ts.map +1 -0
- package/dist/src/sync/github-sync-wrapper.js +220 -0
- package/dist/src/sync/github-sync-wrapper.js.map +1 -0
- package/dist/src/sync/jira-sync-wrapper.d.ts +155 -0
- package/dist/src/sync/jira-sync-wrapper.d.ts.map +1 -0
- package/dist/src/sync/jira-sync-wrapper.js +175 -0
- package/dist/src/sync/jira-sync-wrapper.js.map +1 -0
- package/dist/src/utils/feature-id-derivation.d.ts +58 -0
- package/dist/src/utils/feature-id-derivation.d.ts.map +1 -0
- package/dist/src/utils/feature-id-derivation.js +77 -0
- package/dist/src/utils/feature-id-derivation.js.map +1 -0
- package/package.json +1 -1
- package/plugins/specweave/commands/specweave-discrepancies.md +141 -0
- package/plugins/specweave/commands/specweave-discrepancy-to-increment.md +160 -0
- package/plugins/specweave/commands/specweave-jobs.md +45 -2
- package/plugins/specweave/commands/specweave-notifications.md +92 -0
- package/plugins/specweave/commands/specweave-sync-logs.md +131 -0
- package/plugins/specweave/commands/specweave-sync-monitor.md +57 -0
- package/plugins/specweave/hooks/hooks.json +3 -3
- package/plugins/specweave/hooks/lib/scheduler-startup.sh +72 -0
- package/plugins/specweave/hooks/universal/dispatcher.mjs +246 -0
- package/plugins/specweave/hooks/universal/session-start.cmd +16 -0
- package/plugins/specweave/hooks/universal/session-start.ps1 +16 -0
- package/plugins/specweave/hooks/v2/dispatchers/session-start.sh +14 -5
- package/plugins/specweave/lib/vendor/core/types/increment-metadata.d.ts +5 -2
- package/plugins/specweave/skills/discrepancy-viewer.md +154 -0
- package/plugins/specweave-github/hooks/.specweave/logs/hooks-debug.log +34 -0
- package/plugins/specweave-release/hooks/.specweave/logs/dora-tracking.log +51 -0
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sync Configuration Types
|
|
3
|
+
*
|
|
4
|
+
* Extended sync configuration for the Unified Sync Orchestration feature.
|
|
5
|
+
* Supports job scheduling, permission enforcement, discrepancy detection,
|
|
6
|
+
* and proactive notifications.
|
|
7
|
+
*
|
|
8
|
+
* @module core/types/sync-config
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Platform types for sync operations
|
|
12
|
+
*/
|
|
13
|
+
export type SyncPlatform = 'github' | 'jira' | 'ado';
|
|
14
|
+
/**
|
|
15
|
+
* Scheduler configuration - controls recurring background jobs
|
|
16
|
+
*/
|
|
17
|
+
export interface SyncSchedulerConfig {
|
|
18
|
+
/**
|
|
19
|
+
* Master switch for scheduler
|
|
20
|
+
* @default false
|
|
21
|
+
*/
|
|
22
|
+
enabled: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Run sync check on session start
|
|
25
|
+
* @default true (when scheduler enabled)
|
|
26
|
+
*/
|
|
27
|
+
runOnStartup: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Individual job configurations
|
|
30
|
+
*/
|
|
31
|
+
jobs: {
|
|
32
|
+
/**
|
|
33
|
+
* External tool sync (GitHub/JIRA/ADO)
|
|
34
|
+
*/
|
|
35
|
+
externalSync: {
|
|
36
|
+
enabled: boolean;
|
|
37
|
+
/** Interval in minutes between sync runs */
|
|
38
|
+
intervalMinutes: number;
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Code-to-spec discrepancy detection
|
|
42
|
+
*/
|
|
43
|
+
discrepancyCheck: {
|
|
44
|
+
enabled: boolean;
|
|
45
|
+
/** Interval in minutes between checks */
|
|
46
|
+
intervalMinutes: number;
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Living docs synchronization
|
|
50
|
+
*/
|
|
51
|
+
livingDocsSync: {
|
|
52
|
+
enabled: boolean;
|
|
53
|
+
/** Interval in minutes between syncs */
|
|
54
|
+
intervalMinutes: number;
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* Notification cleanup
|
|
58
|
+
*/
|
|
59
|
+
notificationCleanup: {
|
|
60
|
+
enabled: boolean;
|
|
61
|
+
/** Interval in minutes between cleanups */
|
|
62
|
+
intervalMinutes: number;
|
|
63
|
+
};
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Per-platform sync permissions
|
|
68
|
+
*/
|
|
69
|
+
export interface PlatformSyncPermissions {
|
|
70
|
+
/**
|
|
71
|
+
* Can read/pull changes from external tool
|
|
72
|
+
* @default true
|
|
73
|
+
*/
|
|
74
|
+
canRead: boolean;
|
|
75
|
+
/**
|
|
76
|
+
* Can update status field only
|
|
77
|
+
* @default false
|
|
78
|
+
*/
|
|
79
|
+
canUpdateStatus: boolean;
|
|
80
|
+
/**
|
|
81
|
+
* Can create/update (upsert) items
|
|
82
|
+
* @default false
|
|
83
|
+
*/
|
|
84
|
+
canUpsert: boolean;
|
|
85
|
+
/**
|
|
86
|
+
* Can delete items (dangerous!)
|
|
87
|
+
* @default false
|
|
88
|
+
*/
|
|
89
|
+
canDelete: boolean;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Sync permissions configuration - per-platform permission control
|
|
93
|
+
*/
|
|
94
|
+
export interface SyncPermissionsConfig {
|
|
95
|
+
/**
|
|
96
|
+
* GitHub permissions
|
|
97
|
+
*/
|
|
98
|
+
github: PlatformSyncPermissions;
|
|
99
|
+
/**
|
|
100
|
+
* JIRA permissions
|
|
101
|
+
*/
|
|
102
|
+
jira: PlatformSyncPermissions;
|
|
103
|
+
/**
|
|
104
|
+
* Azure DevOps permissions
|
|
105
|
+
*/
|
|
106
|
+
ado: PlatformSyncPermissions;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Discrepancy detection configuration
|
|
110
|
+
*/
|
|
111
|
+
export interface SyncDiscrepancyConfig {
|
|
112
|
+
/**
|
|
113
|
+
* Enable discrepancy detection
|
|
114
|
+
* @default false
|
|
115
|
+
*/
|
|
116
|
+
enabled: boolean;
|
|
117
|
+
/**
|
|
118
|
+
* Automatically update trivial changes (typos, formatting)
|
|
119
|
+
* @default false
|
|
120
|
+
*/
|
|
121
|
+
autoUpdateTrivial: boolean;
|
|
122
|
+
/**
|
|
123
|
+
* Severity levels that require manual review
|
|
124
|
+
* @default ['major', 'breaking']
|
|
125
|
+
*/
|
|
126
|
+
requireReviewFor: Array<'trivial' | 'minor' | 'major' | 'breaking'>;
|
|
127
|
+
/**
|
|
128
|
+
* Types of checks to run
|
|
129
|
+
* @default ['api-routes', 'types', 'functions']
|
|
130
|
+
*/
|
|
131
|
+
checkTypes: Array<'api-routes' | 'types' | 'functions' | 'config'>;
|
|
132
|
+
/**
|
|
133
|
+
* Glob patterns for paths to ignore
|
|
134
|
+
* @default ['node_modules/**', 'dist/**', '*.test.ts']
|
|
135
|
+
*/
|
|
136
|
+
ignorePaths: string[];
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Notification type
|
|
140
|
+
*/
|
|
141
|
+
export type NotificationType = 'import-complete' | 'discrepancy' | 'sync-failure' | 'drift' | 'job-complete';
|
|
142
|
+
/**
|
|
143
|
+
* Notification preferences configuration
|
|
144
|
+
*/
|
|
145
|
+
export interface SyncNotificationsConfig {
|
|
146
|
+
/**
|
|
147
|
+
* Enable notification system
|
|
148
|
+
* @default true
|
|
149
|
+
*/
|
|
150
|
+
enabled: boolean;
|
|
151
|
+
/**
|
|
152
|
+
* Commands that trigger notification display
|
|
153
|
+
* @default ['next', 'progress', 'status', 'done']
|
|
154
|
+
*/
|
|
155
|
+
showOnCommands: string[];
|
|
156
|
+
/**
|
|
157
|
+
* Per-type notification settings
|
|
158
|
+
*/
|
|
159
|
+
types: {
|
|
160
|
+
importComplete: boolean;
|
|
161
|
+
discrepancy: boolean;
|
|
162
|
+
syncFailure: boolean;
|
|
163
|
+
drift: boolean;
|
|
164
|
+
jobComplete: boolean;
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Logging verbosity levels
|
|
169
|
+
*/
|
|
170
|
+
export type SyncLoggingVerbosity = 'minimal' | 'normal' | 'verbose';
|
|
171
|
+
/**
|
|
172
|
+
* Sync logging configuration
|
|
173
|
+
*/
|
|
174
|
+
export interface SyncLoggingConfig {
|
|
175
|
+
/**
|
|
176
|
+
* Logging verbosity level
|
|
177
|
+
* @default 'normal'
|
|
178
|
+
*/
|
|
179
|
+
verbosity: SyncLoggingVerbosity;
|
|
180
|
+
/**
|
|
181
|
+
* Days to retain logs before cleanup
|
|
182
|
+
* @default 30
|
|
183
|
+
*/
|
|
184
|
+
retentionDays: number;
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Complete sync configuration
|
|
188
|
+
*
|
|
189
|
+
* This is the root configuration under `config.json -> sync.orchestration`
|
|
190
|
+
*/
|
|
191
|
+
export interface SyncOrchestrationConfig {
|
|
192
|
+
/**
|
|
193
|
+
* Scheduler settings for recurring jobs
|
|
194
|
+
*/
|
|
195
|
+
scheduler: SyncSchedulerConfig;
|
|
196
|
+
/**
|
|
197
|
+
* Per-platform permissions
|
|
198
|
+
*/
|
|
199
|
+
permissions: SyncPermissionsConfig;
|
|
200
|
+
/**
|
|
201
|
+
* Discrepancy detection settings
|
|
202
|
+
*/
|
|
203
|
+
discrepancy: SyncDiscrepancyConfig;
|
|
204
|
+
/**
|
|
205
|
+
* Notification preferences
|
|
206
|
+
*/
|
|
207
|
+
notifications: SyncNotificationsConfig;
|
|
208
|
+
/**
|
|
209
|
+
* Logging settings
|
|
210
|
+
*/
|
|
211
|
+
logging: SyncLoggingConfig;
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Default platform permissions (safe defaults - read-only)
|
|
215
|
+
*/
|
|
216
|
+
export declare const DEFAULT_PLATFORM_PERMISSIONS: PlatformSyncPermissions;
|
|
217
|
+
/**
|
|
218
|
+
* Default scheduler configuration (disabled by default)
|
|
219
|
+
*/
|
|
220
|
+
export declare const DEFAULT_SCHEDULER_CONFIG: SyncSchedulerConfig;
|
|
221
|
+
/**
|
|
222
|
+
* Default permissions configuration (all platforms read-only)
|
|
223
|
+
*/
|
|
224
|
+
export declare const DEFAULT_PERMISSIONS_CONFIG: SyncPermissionsConfig;
|
|
225
|
+
/**
|
|
226
|
+
* Default discrepancy configuration (disabled)
|
|
227
|
+
*/
|
|
228
|
+
export declare const DEFAULT_DISCREPANCY_CONFIG: SyncDiscrepancyConfig;
|
|
229
|
+
/**
|
|
230
|
+
* Default notifications configuration (enabled)
|
|
231
|
+
*/
|
|
232
|
+
export declare const DEFAULT_NOTIFICATIONS_CONFIG: SyncNotificationsConfig;
|
|
233
|
+
/**
|
|
234
|
+
* Default logging configuration
|
|
235
|
+
*/
|
|
236
|
+
export declare const DEFAULT_LOGGING_CONFIG: SyncLoggingConfig;
|
|
237
|
+
/**
|
|
238
|
+
* Get default sync orchestration configuration
|
|
239
|
+
*
|
|
240
|
+
* All scheduler features disabled by default for safety.
|
|
241
|
+
* Notifications enabled for user awareness.
|
|
242
|
+
*/
|
|
243
|
+
export declare function getDefaultSyncOrchestrationConfig(): SyncOrchestrationConfig;
|
|
244
|
+
/**
|
|
245
|
+
* Validation error for sync config
|
|
246
|
+
*/
|
|
247
|
+
export interface SyncConfigValidationError {
|
|
248
|
+
path: string;
|
|
249
|
+
message: string;
|
|
250
|
+
value?: unknown;
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Validate sync orchestration configuration
|
|
254
|
+
*
|
|
255
|
+
* @param config - Partial configuration to validate
|
|
256
|
+
* @returns Array of validation errors (empty if valid)
|
|
257
|
+
*/
|
|
258
|
+
export declare function validateSyncOrchestrationConfig(config: Partial<SyncOrchestrationConfig>): SyncConfigValidationError[];
|
|
259
|
+
/**
|
|
260
|
+
* Deep merge sync orchestration configs
|
|
261
|
+
*
|
|
262
|
+
* @param base - Base configuration
|
|
263
|
+
* @param override - Override configuration (partial)
|
|
264
|
+
* @returns Merged configuration
|
|
265
|
+
*/
|
|
266
|
+
export declare function mergeSyncOrchestrationConfig(base: SyncOrchestrationConfig, override: Partial<SyncOrchestrationConfig>): SyncOrchestrationConfig;
|
|
267
|
+
//# sourceMappingURL=sync-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-config.d.ts","sourceRoot":"","sources":["../../../../src/core/types/sync-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sync Configuration Types
|
|
3
|
+
*
|
|
4
|
+
* Extended sync configuration for the Unified Sync Orchestration feature.
|
|
5
|
+
* Supports job scheduling, permission enforcement, discrepancy detection,
|
|
6
|
+
* and proactive notifications.
|
|
7
|
+
*
|
|
8
|
+
* @module core/types/sync-config
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Default platform permissions (safe defaults - read-only)
|
|
12
|
+
*/
|
|
13
|
+
export const DEFAULT_PLATFORM_PERMISSIONS = {
|
|
14
|
+
canRead: true,
|
|
15
|
+
canUpdateStatus: false,
|
|
16
|
+
canUpsert: false,
|
|
17
|
+
canDelete: false,
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Default scheduler configuration (disabled by default)
|
|
21
|
+
*/
|
|
22
|
+
export const DEFAULT_SCHEDULER_CONFIG = {
|
|
23
|
+
enabled: false,
|
|
24
|
+
runOnStartup: true,
|
|
25
|
+
jobs: {
|
|
26
|
+
externalSync: {
|
|
27
|
+
enabled: true,
|
|
28
|
+
intervalMinutes: 15,
|
|
29
|
+
},
|
|
30
|
+
discrepancyCheck: {
|
|
31
|
+
enabled: false,
|
|
32
|
+
intervalMinutes: 60,
|
|
33
|
+
},
|
|
34
|
+
livingDocsSync: {
|
|
35
|
+
enabled: false,
|
|
36
|
+
intervalMinutes: 30,
|
|
37
|
+
},
|
|
38
|
+
notificationCleanup: {
|
|
39
|
+
enabled: true,
|
|
40
|
+
intervalMinutes: 1440, // Once per day
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Default permissions configuration (all platforms read-only)
|
|
46
|
+
*/
|
|
47
|
+
export const DEFAULT_PERMISSIONS_CONFIG = {
|
|
48
|
+
github: { ...DEFAULT_PLATFORM_PERMISSIONS },
|
|
49
|
+
jira: { ...DEFAULT_PLATFORM_PERMISSIONS },
|
|
50
|
+
ado: { ...DEFAULT_PLATFORM_PERMISSIONS },
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* Default discrepancy configuration (disabled)
|
|
54
|
+
*/
|
|
55
|
+
export const DEFAULT_DISCREPANCY_CONFIG = {
|
|
56
|
+
enabled: false,
|
|
57
|
+
autoUpdateTrivial: false,
|
|
58
|
+
requireReviewFor: ['major', 'breaking'],
|
|
59
|
+
checkTypes: ['api-routes', 'types', 'functions'],
|
|
60
|
+
ignorePaths: ['node_modules/**', 'dist/**', '*.test.ts', '*.spec.ts'],
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* Default notifications configuration (enabled)
|
|
64
|
+
*/
|
|
65
|
+
export const DEFAULT_NOTIFICATIONS_CONFIG = {
|
|
66
|
+
enabled: true,
|
|
67
|
+
showOnCommands: ['next', 'progress', 'status', 'done'],
|
|
68
|
+
types: {
|
|
69
|
+
importComplete: true,
|
|
70
|
+
discrepancy: true,
|
|
71
|
+
syncFailure: true,
|
|
72
|
+
drift: true,
|
|
73
|
+
jobComplete: false, // Too noisy by default
|
|
74
|
+
},
|
|
75
|
+
};
|
|
76
|
+
/**
|
|
77
|
+
* Default logging configuration
|
|
78
|
+
*/
|
|
79
|
+
export const DEFAULT_LOGGING_CONFIG = {
|
|
80
|
+
verbosity: 'normal',
|
|
81
|
+
retentionDays: 30,
|
|
82
|
+
};
|
|
83
|
+
/**
|
|
84
|
+
* Get default sync orchestration configuration
|
|
85
|
+
*
|
|
86
|
+
* All scheduler features disabled by default for safety.
|
|
87
|
+
* Notifications enabled for user awareness.
|
|
88
|
+
*/
|
|
89
|
+
export function getDefaultSyncOrchestrationConfig() {
|
|
90
|
+
return {
|
|
91
|
+
scheduler: { ...DEFAULT_SCHEDULER_CONFIG },
|
|
92
|
+
permissions: {
|
|
93
|
+
github: { ...DEFAULT_PLATFORM_PERMISSIONS },
|
|
94
|
+
jira: { ...DEFAULT_PLATFORM_PERMISSIONS },
|
|
95
|
+
ado: { ...DEFAULT_PLATFORM_PERMISSIONS },
|
|
96
|
+
},
|
|
97
|
+
discrepancy: { ...DEFAULT_DISCREPANCY_CONFIG },
|
|
98
|
+
notifications: { ...DEFAULT_NOTIFICATIONS_CONFIG },
|
|
99
|
+
logging: { ...DEFAULT_LOGGING_CONFIG },
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Validate scheduler configuration
|
|
104
|
+
*/
|
|
105
|
+
function validateSchedulerConfig(config, errors) {
|
|
106
|
+
if (config.enabled !== undefined && typeof config.enabled !== 'boolean') {
|
|
107
|
+
errors.push({
|
|
108
|
+
path: 'scheduler.enabled',
|
|
109
|
+
message: 'Must be a boolean',
|
|
110
|
+
value: config.enabled,
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
if (config.jobs) {
|
|
114
|
+
const jobTypes = ['externalSync', 'discrepancyCheck', 'livingDocsSync', 'notificationCleanup'];
|
|
115
|
+
for (const jobType of jobTypes) {
|
|
116
|
+
const job = config.jobs[jobType];
|
|
117
|
+
if (job?.intervalMinutes !== undefined) {
|
|
118
|
+
if (typeof job.intervalMinutes !== 'number' || job.intervalMinutes < 1) {
|
|
119
|
+
errors.push({
|
|
120
|
+
path: `scheduler.jobs.${jobType}.intervalMinutes`,
|
|
121
|
+
message: 'Must be a positive number (minutes)',
|
|
122
|
+
value: job.intervalMinutes,
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Validate permissions configuration
|
|
131
|
+
*/
|
|
132
|
+
function validatePermissionsConfig(config, errors) {
|
|
133
|
+
const platforms = ['github', 'jira', 'ado'];
|
|
134
|
+
const permissionFields = ['canRead', 'canUpdateStatus', 'canUpsert', 'canDelete'];
|
|
135
|
+
for (const platform of platforms) {
|
|
136
|
+
const platformConfig = config[platform];
|
|
137
|
+
if (platformConfig) {
|
|
138
|
+
for (const field of permissionFields) {
|
|
139
|
+
const value = platformConfig[field];
|
|
140
|
+
if (value !== undefined && typeof value !== 'boolean') {
|
|
141
|
+
errors.push({
|
|
142
|
+
path: `permissions.${platform}.${field}`,
|
|
143
|
+
message: 'Must be a boolean',
|
|
144
|
+
value,
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Validate discrepancy configuration
|
|
153
|
+
*/
|
|
154
|
+
function validateDiscrepancyConfig(config, errors) {
|
|
155
|
+
const validSeverities = ['trivial', 'minor', 'major', 'breaking'];
|
|
156
|
+
const validCheckTypes = ['api-routes', 'types', 'functions', 'config'];
|
|
157
|
+
if (config.requireReviewFor) {
|
|
158
|
+
for (const severity of config.requireReviewFor) {
|
|
159
|
+
if (!validSeverities.includes(severity)) {
|
|
160
|
+
errors.push({
|
|
161
|
+
path: 'discrepancy.requireReviewFor',
|
|
162
|
+
message: `Invalid severity: ${severity}. Valid: ${validSeverities.join(', ')}`,
|
|
163
|
+
value: severity,
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
if (config.checkTypes) {
|
|
169
|
+
for (const checkType of config.checkTypes) {
|
|
170
|
+
if (!validCheckTypes.includes(checkType)) {
|
|
171
|
+
errors.push({
|
|
172
|
+
path: 'discrepancy.checkTypes',
|
|
173
|
+
message: `Invalid check type: ${checkType}. Valid: ${validCheckTypes.join(', ')}`,
|
|
174
|
+
value: checkType,
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Validate notifications configuration
|
|
182
|
+
*/
|
|
183
|
+
function validateNotificationsConfig(config, errors) {
|
|
184
|
+
if (config.showOnCommands && !Array.isArray(config.showOnCommands)) {
|
|
185
|
+
errors.push({
|
|
186
|
+
path: 'notifications.showOnCommands',
|
|
187
|
+
message: 'Must be an array of command names',
|
|
188
|
+
value: config.showOnCommands,
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Validate logging configuration
|
|
194
|
+
*/
|
|
195
|
+
function validateLoggingConfig(config, errors) {
|
|
196
|
+
const validVerbosities = ['minimal', 'normal', 'verbose'];
|
|
197
|
+
if (config.verbosity && !validVerbosities.includes(config.verbosity)) {
|
|
198
|
+
errors.push({
|
|
199
|
+
path: 'logging.verbosity',
|
|
200
|
+
message: `Invalid verbosity: ${config.verbosity}. Valid: ${validVerbosities.join(', ')}`,
|
|
201
|
+
value: config.verbosity,
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
if (config.retentionDays !== undefined) {
|
|
205
|
+
if (typeof config.retentionDays !== 'number' || config.retentionDays < 1) {
|
|
206
|
+
errors.push({
|
|
207
|
+
path: 'logging.retentionDays',
|
|
208
|
+
message: 'Must be a positive number (days)',
|
|
209
|
+
value: config.retentionDays,
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Validate sync orchestration configuration
|
|
216
|
+
*
|
|
217
|
+
* @param config - Partial configuration to validate
|
|
218
|
+
* @returns Array of validation errors (empty if valid)
|
|
219
|
+
*/
|
|
220
|
+
export function validateSyncOrchestrationConfig(config) {
|
|
221
|
+
const errors = [];
|
|
222
|
+
if (config.scheduler) {
|
|
223
|
+
validateSchedulerConfig(config.scheduler, errors);
|
|
224
|
+
}
|
|
225
|
+
if (config.permissions) {
|
|
226
|
+
validatePermissionsConfig(config.permissions, errors);
|
|
227
|
+
}
|
|
228
|
+
if (config.discrepancy) {
|
|
229
|
+
validateDiscrepancyConfig(config.discrepancy, errors);
|
|
230
|
+
}
|
|
231
|
+
if (config.notifications) {
|
|
232
|
+
validateNotificationsConfig(config.notifications, errors);
|
|
233
|
+
}
|
|
234
|
+
if (config.logging) {
|
|
235
|
+
validateLoggingConfig(config.logging, errors);
|
|
236
|
+
}
|
|
237
|
+
return errors;
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Deep merge sync orchestration configs
|
|
241
|
+
*
|
|
242
|
+
* @param base - Base configuration
|
|
243
|
+
* @param override - Override configuration (partial)
|
|
244
|
+
* @returns Merged configuration
|
|
245
|
+
*/
|
|
246
|
+
export function mergeSyncOrchestrationConfig(base, override) {
|
|
247
|
+
return {
|
|
248
|
+
scheduler: {
|
|
249
|
+
...base.scheduler,
|
|
250
|
+
...override.scheduler,
|
|
251
|
+
jobs: {
|
|
252
|
+
...base.scheduler.jobs,
|
|
253
|
+
...override.scheduler?.jobs,
|
|
254
|
+
externalSync: {
|
|
255
|
+
...base.scheduler.jobs.externalSync,
|
|
256
|
+
...override.scheduler?.jobs?.externalSync,
|
|
257
|
+
},
|
|
258
|
+
discrepancyCheck: {
|
|
259
|
+
...base.scheduler.jobs.discrepancyCheck,
|
|
260
|
+
...override.scheduler?.jobs?.discrepancyCheck,
|
|
261
|
+
},
|
|
262
|
+
livingDocsSync: {
|
|
263
|
+
...base.scheduler.jobs.livingDocsSync,
|
|
264
|
+
...override.scheduler?.jobs?.livingDocsSync,
|
|
265
|
+
},
|
|
266
|
+
notificationCleanup: {
|
|
267
|
+
...base.scheduler.jobs.notificationCleanup,
|
|
268
|
+
...override.scheduler?.jobs?.notificationCleanup,
|
|
269
|
+
},
|
|
270
|
+
},
|
|
271
|
+
},
|
|
272
|
+
permissions: {
|
|
273
|
+
github: {
|
|
274
|
+
...base.permissions.github,
|
|
275
|
+
...override.permissions?.github,
|
|
276
|
+
},
|
|
277
|
+
jira: {
|
|
278
|
+
...base.permissions.jira,
|
|
279
|
+
...override.permissions?.jira,
|
|
280
|
+
},
|
|
281
|
+
ado: {
|
|
282
|
+
...base.permissions.ado,
|
|
283
|
+
...override.permissions?.ado,
|
|
284
|
+
},
|
|
285
|
+
},
|
|
286
|
+
discrepancy: {
|
|
287
|
+
...base.discrepancy,
|
|
288
|
+
...override.discrepancy,
|
|
289
|
+
},
|
|
290
|
+
notifications: {
|
|
291
|
+
...base.notifications,
|
|
292
|
+
...override.notifications,
|
|
293
|
+
types: {
|
|
294
|
+
...base.notifications.types,
|
|
295
|
+
...override.notifications?.types,
|
|
296
|
+
},
|
|
297
|
+
},
|
|
298
|
+
logging: {
|
|
299
|
+
...base.logging,
|
|
300
|
+
...override.logging,
|
|
301
|
+
},
|
|
302
|
+
};
|
|
303
|
+
}
|
|
304
|
+
//# sourceMappingURL=sync-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-config.js","sourceRoot":"","sources":["../../../../src/core/types/sync-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cross-Platform Hooks Module
|
|
3
|
+
*
|
|
4
|
+
* Provides platform-independent hook implementations for SpecWeave.
|
|
5
|
+
* Works on Windows (native), macOS, and Linux.
|
|
6
|
+
*
|
|
7
|
+
* @module hooks
|
|
8
|
+
*/
|
|
9
|
+
export * from './platform.js';
|
|
10
|
+
export { checkScheduledJobs } from './scheduler-startup.js';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cross-Platform Hooks Module
|
|
3
|
+
*
|
|
4
|
+
* Provides platform-independent hook implementations for SpecWeave.
|
|
5
|
+
* Works on Windows (native), macOS, and Linux.
|
|
6
|
+
*
|
|
7
|
+
* @module hooks
|
|
8
|
+
*/
|
|
9
|
+
export * from './platform.js';
|
|
10
|
+
export { checkScheduledJobs } from './scheduler-startup.js';
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC"}
|