specweave 0.28.19 → 0.28.20
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/dist/plugins/specweave-ado/lib/ado-spec-sync.d.ts +16 -0
- package/dist/plugins/specweave-ado/lib/ado-spec-sync.d.ts.map +1 -1
- package/dist/plugins/specweave-ado/lib/ado-spec-sync.js +63 -3
- package/dist/plugins/specweave-ado/lib/ado-spec-sync.js.map +1 -1
- package/dist/plugins/specweave-ado/lib/ado-status-sync.d.ts +12 -3
- package/dist/plugins/specweave-ado/lib/ado-status-sync.d.ts.map +1 -1
- package/dist/plugins/specweave-ado/lib/ado-status-sync.js +37 -3
- package/dist/plugins/specweave-ado/lib/ado-status-sync.js.map +1 -1
- package/dist/plugins/specweave-github/lib/github-increment-sync-cli.d.ts +8 -6
- package/dist/plugins/specweave-github/lib/github-increment-sync-cli.d.ts.map +1 -1
- package/dist/plugins/specweave-github/lib/github-increment-sync-cli.js +230 -165
- package/dist/plugins/specweave-github/lib/github-increment-sync-cli.js.map +1 -1
- package/dist/plugins/specweave-github/lib/github-status-sync.d.ts +10 -0
- package/dist/plugins/specweave-github/lib/github-status-sync.d.ts.map +1 -1
- package/dist/plugins/specweave-github/lib/github-status-sync.js +40 -2
- package/dist/plugins/specweave-github/lib/github-status-sync.js.map +1 -1
- package/dist/plugins/specweave-github/lib/increment-issue-builder.d.ts +2 -0
- package/dist/plugins/specweave-github/lib/increment-issue-builder.d.ts.map +1 -1
- package/dist/plugins/specweave-github/lib/increment-issue-builder.js +25 -5
- package/dist/plugins/specweave-github/lib/increment-issue-builder.js.map +1 -1
- package/dist/plugins/specweave-jira/lib/jira-spec-sync.d.ts +12 -0
- package/dist/plugins/specweave-jira/lib/jira-spec-sync.d.ts.map +1 -1
- package/dist/plugins/specweave-jira/lib/jira-spec-sync.js +57 -5
- package/dist/plugins/specweave-jira/lib/jira-spec-sync.js.map +1 -1
- package/dist/plugins/specweave-jira/lib/jira-status-sync.d.ts +5 -1
- package/dist/plugins/specweave-jira/lib/jira-status-sync.d.ts.map +1 -1
- package/dist/plugins/specweave-jira/lib/jira-status-sync.js +12 -4
- package/dist/plugins/specweave-jira/lib/jira-status-sync.js.map +1 -1
- package/dist/src/cli/helpers/init/external-import.d.ts.map +1 -1
- package/dist/src/cli/helpers/init/external-import.js +186 -19
- package/dist/src/cli/helpers/init/external-import.js.map +1 -1
- package/dist/src/cli/helpers/init/jira-ado-auto-detect.d.ts +115 -0
- package/dist/src/cli/helpers/init/jira-ado-auto-detect.d.ts.map +1 -0
- package/dist/src/cli/helpers/init/jira-ado-auto-detect.js +590 -0
- package/dist/src/cli/helpers/init/jira-ado-auto-detect.js.map +1 -0
- package/dist/src/config/types.d.ts +6 -6
- package/dist/src/core/background/index.d.ts +11 -0
- package/dist/src/core/background/index.d.ts.map +1 -0
- package/dist/src/core/background/index.js +11 -0
- package/dist/src/core/background/index.js.map +1 -0
- package/dist/src/core/background/job-manager.d.ts +65 -0
- package/dist/src/core/background/job-manager.d.ts.map +1 -0
- package/dist/src/core/background/job-manager.js +192 -0
- package/dist/src/core/background/job-manager.js.map +1 -0
- package/dist/src/core/background/types.d.ts +59 -0
- package/dist/src/core/background/types.d.ts.map +1 -0
- package/dist/src/core/background/types.js +8 -0
- package/dist/src/core/background/types.js.map +1 -0
- package/dist/src/core/repo-structure/multi-repo-configurator.d.ts +25 -0
- package/dist/src/core/repo-structure/multi-repo-configurator.d.ts.map +1 -0
- package/dist/src/core/repo-structure/multi-repo-configurator.js +614 -0
- package/dist/src/core/repo-structure/multi-repo-configurator.js.map +1 -0
- package/dist/src/core/repo-structure/repo-initializer.d.ts +40 -0
- package/dist/src/core/repo-structure/repo-initializer.d.ts.map +1 -0
- package/dist/src/core/repo-structure/repo-initializer.js +252 -0
- package/dist/src/core/repo-structure/repo-initializer.js.map +1 -0
- package/dist/src/core/repo-structure/repo-structure-manager.d.ts +3 -37
- package/dist/src/core/repo-structure/repo-structure-manager.d.ts.map +1 -1
- package/dist/src/core/repo-structure/repo-structure-manager.js +23 -803
- package/dist/src/core/repo-structure/repo-structure-manager.js.map +1 -1
- package/dist/src/core/types/spec-metadata.d.ts +2 -0
- package/dist/src/core/types/spec-metadata.d.ts.map +1 -1
- package/dist/src/importers/import-coordinator.d.ts +20 -0
- package/dist/src/importers/import-coordinator.d.ts.map +1 -1
- package/dist/src/importers/import-coordinator.js.map +1 -1
- package/dist/src/init/architecture/types.d.ts +2 -2
- package/dist/src/init/compliance/types.d.ts +1 -1
- package/package.json +1 -1
- package/plugins/specweave/commands/specweave-jobs.md +160 -0
- package/plugins/specweave-ado/lib/ado-spec-sync.js +59 -3
- package/plugins/specweave-ado/lib/ado-spec-sync.ts +72 -3
- package/plugins/specweave-ado/lib/ado-status-sync.js +35 -3
- package/plugins/specweave-ado/lib/ado-status-sync.ts +48 -4
- package/plugins/specweave-github/hooks/.specweave/logs/hooks-debug.log +6 -0
- package/plugins/specweave-github/lib/github-increment-sync-cli.js +268 -155
- package/plugins/specweave-github/lib/github-increment-sync-cli.ts +313 -209
- package/plugins/specweave-github/lib/github-status-sync.js +37 -1
- package/plugins/specweave-github/lib/github-status-sync.ts +60 -4
- package/plugins/specweave-github/lib/increment-issue-builder.js +26 -5
- package/plugins/specweave-github/lib/increment-issue-builder.ts +36 -5
- package/plugins/specweave-jira/lib/jira-spec-sync.js +53 -5
- package/plugins/specweave-jira/lib/jira-spec-sync.ts +87 -7
- package/plugins/specweave-jira/lib/jira-status-sync.js +9 -3
- package/plugins/specweave-jira/lib/jira-status-sync.ts +15 -6
- package/plugins/specweave-release/hooks/.specweave/logs/dora-tracking.log +9 -0
|
@@ -55,8 +55,8 @@ export declare const ResearchConfigSchema: z.ZodObject<{
|
|
|
55
55
|
dataTypes: z.ZodArray<z.ZodEnum<{
|
|
56
56
|
healthcare: "healthcare";
|
|
57
57
|
personal: "personal";
|
|
58
|
-
location: "location";
|
|
59
58
|
payment: "payment";
|
|
59
|
+
location: "location";
|
|
60
60
|
government: "government";
|
|
61
61
|
student: "student";
|
|
62
62
|
financial: "financial";
|
|
@@ -107,12 +107,12 @@ export declare const ResearchConfigSchema: z.ZodObject<{
|
|
|
107
107
|
}, z.core.$strip>>>;
|
|
108
108
|
architecture: z.ZodOptional<z.ZodObject<{
|
|
109
109
|
architecture: z.ZodEnum<{
|
|
110
|
+
hybrid: "hybrid";
|
|
110
111
|
microservices: "microservices";
|
|
111
112
|
serverless: "serverless";
|
|
112
113
|
"traditional-monolith": "traditional-monolith";
|
|
113
114
|
"modular-monolith": "modular-monolith";
|
|
114
115
|
jamstack: "jamstack";
|
|
115
|
-
hybrid: "hybrid";
|
|
116
116
|
}>;
|
|
117
117
|
infrastructure: z.ZodArray<z.ZodString>;
|
|
118
118
|
rationale: z.ZodString;
|
|
@@ -140,12 +140,12 @@ export declare const ResearchConfigSchema: z.ZodObject<{
|
|
|
140
140
|
}>;
|
|
141
141
|
alternatives: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
142
142
|
architecture: z.ZodEnum<{
|
|
143
|
+
hybrid: "hybrid";
|
|
143
144
|
microservices: "microservices";
|
|
144
145
|
serverless: "serverless";
|
|
145
146
|
"traditional-monolith": "traditional-monolith";
|
|
146
147
|
"modular-monolith": "modular-monolith";
|
|
147
148
|
jamstack: "jamstack";
|
|
148
|
-
hybrid: "hybrid";
|
|
149
149
|
}>;
|
|
150
150
|
pros: z.ZodArray<z.ZodString>;
|
|
151
151
|
cons: z.ZodArray<z.ZodString>;
|
|
@@ -226,8 +226,8 @@ export declare const SpecWeaveConfigSchema: z.ZodObject<{
|
|
|
226
226
|
dataTypes: z.ZodArray<z.ZodEnum<{
|
|
227
227
|
healthcare: "healthcare";
|
|
228
228
|
personal: "personal";
|
|
229
|
-
location: "location";
|
|
230
229
|
payment: "payment";
|
|
230
|
+
location: "location";
|
|
231
231
|
government: "government";
|
|
232
232
|
student: "student";
|
|
233
233
|
financial: "financial";
|
|
@@ -278,12 +278,12 @@ export declare const SpecWeaveConfigSchema: z.ZodObject<{
|
|
|
278
278
|
}, z.core.$strip>>>;
|
|
279
279
|
architecture: z.ZodOptional<z.ZodObject<{
|
|
280
280
|
architecture: z.ZodEnum<{
|
|
281
|
+
hybrid: "hybrid";
|
|
281
282
|
microservices: "microservices";
|
|
282
283
|
serverless: "serverless";
|
|
283
284
|
"traditional-monolith": "traditional-monolith";
|
|
284
285
|
"modular-monolith": "modular-monolith";
|
|
285
286
|
jamstack: "jamstack";
|
|
286
|
-
hybrid: "hybrid";
|
|
287
287
|
}>;
|
|
288
288
|
infrastructure: z.ZodArray<z.ZodString>;
|
|
289
289
|
rationale: z.ZodString;
|
|
@@ -311,12 +311,12 @@ export declare const SpecWeaveConfigSchema: z.ZodObject<{
|
|
|
311
311
|
}>;
|
|
312
312
|
alternatives: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
313
313
|
architecture: z.ZodEnum<{
|
|
314
|
+
hybrid: "hybrid";
|
|
314
315
|
microservices: "microservices";
|
|
315
316
|
serverless: "serverless";
|
|
316
317
|
"traditional-monolith": "traditional-monolith";
|
|
317
318
|
"modular-monolith": "modular-monolith";
|
|
318
319
|
jamstack: "jamstack";
|
|
319
|
-
hybrid: "hybrid";
|
|
320
320
|
}>;
|
|
321
321
|
pros: z.ZodArray<z.ZodString>;
|
|
322
322
|
cons: z.ZodArray<z.ZodString>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Background Jobs Module
|
|
3
|
+
*
|
|
4
|
+
* Long-running operations that can run in background:
|
|
5
|
+
* - Repository cloning (multi-repo setup)
|
|
6
|
+
* - Issue import (10K+ items from GitHub/JIRA/ADO)
|
|
7
|
+
* - External sync operations
|
|
8
|
+
*/
|
|
9
|
+
export * from './types.js';
|
|
10
|
+
export * from './job-manager.js';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/background/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Background Jobs Module
|
|
3
|
+
*
|
|
4
|
+
* Long-running operations that can run in background:
|
|
5
|
+
* - Repository cloning (multi-repo setup)
|
|
6
|
+
* - Issue import (10K+ items from GitHub/JIRA/ADO)
|
|
7
|
+
* - External sync operations
|
|
8
|
+
*/
|
|
9
|
+
export * from './types.js';
|
|
10
|
+
export * from './job-manager.js';
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/background/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Background Job Manager
|
|
3
|
+
*
|
|
4
|
+
* Manages long-running operations with persistent state.
|
|
5
|
+
* Jobs survive session restarts - can check progress later.
|
|
6
|
+
*/
|
|
7
|
+
import type { BackgroundJob, JobConfig, JobStatus, JobType } from './types.js';
|
|
8
|
+
export declare class BackgroundJobManager {
|
|
9
|
+
private projectPath;
|
|
10
|
+
private statePath;
|
|
11
|
+
constructor(projectPath: string);
|
|
12
|
+
/**
|
|
13
|
+
* Create a new background job
|
|
14
|
+
*/
|
|
15
|
+
createJob(type: JobType, config: JobConfig, totalItems: number): BackgroundJob;
|
|
16
|
+
/**
|
|
17
|
+
* Start a job (mark as running)
|
|
18
|
+
*/
|
|
19
|
+
startJob(jobId: string): BackgroundJob | null;
|
|
20
|
+
/**
|
|
21
|
+
* Update job progress
|
|
22
|
+
*/
|
|
23
|
+
updateProgress(jobId: string, current: number, currentItem?: string, completed?: string, failed?: string): BackgroundJob | null;
|
|
24
|
+
/**
|
|
25
|
+
* Complete a job
|
|
26
|
+
*/
|
|
27
|
+
completeJob(jobId: string, error?: string): BackgroundJob | null;
|
|
28
|
+
/**
|
|
29
|
+
* Pause a job (can resume later)
|
|
30
|
+
*/
|
|
31
|
+
pauseJob(jobId: string): BackgroundJob | null;
|
|
32
|
+
/**
|
|
33
|
+
* Get a specific job
|
|
34
|
+
*/
|
|
35
|
+
getJob(jobId: string): BackgroundJob | null;
|
|
36
|
+
/**
|
|
37
|
+
* Get all jobs (optionally filtered by type or status)
|
|
38
|
+
*/
|
|
39
|
+
getJobs(filter?: {
|
|
40
|
+
type?: JobType;
|
|
41
|
+
status?: JobStatus;
|
|
42
|
+
}): BackgroundJob[];
|
|
43
|
+
/**
|
|
44
|
+
* Get active (running/paused) jobs
|
|
45
|
+
*/
|
|
46
|
+
getActiveJobs(): BackgroundJob[];
|
|
47
|
+
/**
|
|
48
|
+
* Clean up old completed jobs (keep last 10)
|
|
49
|
+
*/
|
|
50
|
+
cleanup(): void;
|
|
51
|
+
/**
|
|
52
|
+
* Load state from disk
|
|
53
|
+
*/
|
|
54
|
+
private loadState;
|
|
55
|
+
/**
|
|
56
|
+
* Save state to disk
|
|
57
|
+
*/
|
|
58
|
+
private saveState;
|
|
59
|
+
/**
|
|
60
|
+
* Save a single job (merge into state)
|
|
61
|
+
*/
|
|
62
|
+
private saveJob;
|
|
63
|
+
}
|
|
64
|
+
export declare function getJobManager(projectPath: string): BackgroundJobManager;
|
|
65
|
+
//# sourceMappingURL=job-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"job-manager.d.ts","sourceRoot":"","sources":["../../../../src/core/background/job-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EACV,aAAa,EACb,SAAS,EAGT,SAAS,EACT,OAAO,EACR,MAAM,YAAY,CAAC;AAIpB,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,SAAS,CAAS;gBAEd,WAAW,EAAE,MAAM;IAK/B;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,GAAG,aAAa;IAqB9E;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI;IAU7C;;OAEG;IACH,cAAc,CACZ,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,MAAM,EACpB,SAAS,CAAC,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,MAAM,GACd,aAAa,GAAG,IAAI;IA4BvB;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI;IAahE;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI;IAU7C;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI;IAK3C;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,SAAS,CAAA;KAAE,GAAG,aAAa,EAAE;IAiBzE;;OAEG;IACH,aAAa,IAAI,aAAa,EAAE;IAMhC;;OAEG;IACH,OAAO,IAAI,IAAI;IAcf;;OAEG;IACH,OAAO,CAAC,SAAS;IAYjB;;OAEG;IACH,OAAO,CAAC,SAAS;IAKjB;;OAEG;IACH,OAAO,CAAC,OAAO;CAYhB;AAOD,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,oBAAoB,CAKvE"}
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Background Job Manager
|
|
3
|
+
*
|
|
4
|
+
* Manages long-running operations with persistent state.
|
|
5
|
+
* Jobs survive session restarts - can check progress later.
|
|
6
|
+
*/
|
|
7
|
+
import * as fs from '../../utils/fs-native.js';
|
|
8
|
+
import * as path from 'path';
|
|
9
|
+
import * as crypto from 'crypto';
|
|
10
|
+
const STATE_FILE = '.specweave/state/background-jobs.json';
|
|
11
|
+
export class BackgroundJobManager {
|
|
12
|
+
constructor(projectPath) {
|
|
13
|
+
this.projectPath = projectPath;
|
|
14
|
+
this.statePath = path.join(projectPath, STATE_FILE);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Create a new background job
|
|
18
|
+
*/
|
|
19
|
+
createJob(type, config, totalItems) {
|
|
20
|
+
const job = {
|
|
21
|
+
id: crypto.randomUUID().slice(0, 8),
|
|
22
|
+
type,
|
|
23
|
+
status: 'pending',
|
|
24
|
+
progress: {
|
|
25
|
+
current: 0,
|
|
26
|
+
total: totalItems,
|
|
27
|
+
percentage: 0,
|
|
28
|
+
itemsCompleted: [],
|
|
29
|
+
itemsFailed: []
|
|
30
|
+
},
|
|
31
|
+
startedAt: new Date(),
|
|
32
|
+
updatedAt: new Date(),
|
|
33
|
+
config
|
|
34
|
+
};
|
|
35
|
+
this.saveJob(job);
|
|
36
|
+
return job;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Start a job (mark as running)
|
|
40
|
+
*/
|
|
41
|
+
startJob(jobId) {
|
|
42
|
+
const job = this.getJob(jobId);
|
|
43
|
+
if (!job)
|
|
44
|
+
return null;
|
|
45
|
+
job.status = 'running';
|
|
46
|
+
job.updatedAt = new Date();
|
|
47
|
+
this.saveJob(job);
|
|
48
|
+
return job;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Update job progress
|
|
52
|
+
*/
|
|
53
|
+
updateProgress(jobId, current, currentItem, completed, failed) {
|
|
54
|
+
const job = this.getJob(jobId);
|
|
55
|
+
if (!job)
|
|
56
|
+
return null;
|
|
57
|
+
job.progress.current = current;
|
|
58
|
+
job.progress.percentage = Math.round((current / job.progress.total) * 100);
|
|
59
|
+
job.progress.currentItem = currentItem;
|
|
60
|
+
job.updatedAt = new Date();
|
|
61
|
+
if (completed) {
|
|
62
|
+
job.progress.itemsCompleted.push(completed);
|
|
63
|
+
}
|
|
64
|
+
if (failed) {
|
|
65
|
+
job.progress.itemsFailed.push(failed);
|
|
66
|
+
}
|
|
67
|
+
// Calculate rate and ETA
|
|
68
|
+
const elapsed = (Date.now() - new Date(job.startedAt).getTime()) / 1000;
|
|
69
|
+
if (elapsed > 0 && current > 0) {
|
|
70
|
+
job.progress.rate = Math.round((current / elapsed) * 10) / 10;
|
|
71
|
+
const remaining = job.progress.total - current;
|
|
72
|
+
job.progress.eta = Math.round(remaining / job.progress.rate);
|
|
73
|
+
}
|
|
74
|
+
this.saveJob(job);
|
|
75
|
+
return job;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Complete a job
|
|
79
|
+
*/
|
|
80
|
+
completeJob(jobId, error) {
|
|
81
|
+
const job = this.getJob(jobId);
|
|
82
|
+
if (!job)
|
|
83
|
+
return null;
|
|
84
|
+
job.status = error ? 'failed' : 'completed';
|
|
85
|
+
job.completedAt = new Date();
|
|
86
|
+
job.updatedAt = new Date();
|
|
87
|
+
if (error)
|
|
88
|
+
job.error = error;
|
|
89
|
+
this.saveJob(job);
|
|
90
|
+
return job;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Pause a job (can resume later)
|
|
94
|
+
*/
|
|
95
|
+
pauseJob(jobId) {
|
|
96
|
+
const job = this.getJob(jobId);
|
|
97
|
+
if (!job)
|
|
98
|
+
return null;
|
|
99
|
+
job.status = 'paused';
|
|
100
|
+
job.updatedAt = new Date();
|
|
101
|
+
this.saveJob(job);
|
|
102
|
+
return job;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Get a specific job
|
|
106
|
+
*/
|
|
107
|
+
getJob(jobId) {
|
|
108
|
+
const state = this.loadState();
|
|
109
|
+
return state.jobs.find(j => j.id === jobId) || null;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Get all jobs (optionally filtered by type or status)
|
|
113
|
+
*/
|
|
114
|
+
getJobs(filter) {
|
|
115
|
+
const state = this.loadState();
|
|
116
|
+
let jobs = state.jobs;
|
|
117
|
+
if (filter?.type) {
|
|
118
|
+
jobs = jobs.filter(j => j.type === filter.type);
|
|
119
|
+
}
|
|
120
|
+
if (filter?.status) {
|
|
121
|
+
jobs = jobs.filter(j => j.status === filter.status);
|
|
122
|
+
}
|
|
123
|
+
// Sort by most recent first
|
|
124
|
+
return jobs.sort((a, b) => new Date(b.updatedAt).getTime() - new Date(a.updatedAt).getTime());
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Get active (running/paused) jobs
|
|
128
|
+
*/
|
|
129
|
+
getActiveJobs() {
|
|
130
|
+
return this.getJobs().filter(j => j.status === 'running' || j.status === 'paused' || j.status === 'pending');
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Clean up old completed jobs (keep last 10)
|
|
134
|
+
*/
|
|
135
|
+
cleanup() {
|
|
136
|
+
const state = this.loadState();
|
|
137
|
+
const active = state.jobs.filter(j => j.status === 'running' || j.status === 'paused' || j.status === 'pending');
|
|
138
|
+
const completed = state.jobs
|
|
139
|
+
.filter(j => j.status === 'completed' || j.status === 'failed')
|
|
140
|
+
.sort((a, b) => new Date(b.updatedAt).getTime() - new Date(a.updatedAt).getTime())
|
|
141
|
+
.slice(0, 10);
|
|
142
|
+
state.jobs = [...active, ...completed];
|
|
143
|
+
this.saveState(state);
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Load state from disk
|
|
147
|
+
*/
|
|
148
|
+
loadState() {
|
|
149
|
+
try {
|
|
150
|
+
if (fs.existsSync(this.statePath)) {
|
|
151
|
+
const content = fs.readFileSync(this.statePath, 'utf-8');
|
|
152
|
+
return JSON.parse(content);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
catch {
|
|
156
|
+
// Corrupted state - start fresh
|
|
157
|
+
}
|
|
158
|
+
return { jobs: [] };
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Save state to disk
|
|
162
|
+
*/
|
|
163
|
+
saveState(state) {
|
|
164
|
+
fs.ensureDirSync(path.dirname(this.statePath));
|
|
165
|
+
fs.writeFileSync(this.statePath, JSON.stringify(state, null, 2));
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Save a single job (merge into state)
|
|
169
|
+
*/
|
|
170
|
+
saveJob(job) {
|
|
171
|
+
const state = this.loadState();
|
|
172
|
+
const index = state.jobs.findIndex(j => j.id === job.id);
|
|
173
|
+
if (index >= 0) {
|
|
174
|
+
state.jobs[index] = job;
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
state.jobs.push(job);
|
|
178
|
+
}
|
|
179
|
+
this.saveState(state);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Get job manager singleton for a project
|
|
184
|
+
*/
|
|
185
|
+
const managers = new Map();
|
|
186
|
+
export function getJobManager(projectPath) {
|
|
187
|
+
if (!managers.has(projectPath)) {
|
|
188
|
+
managers.set(projectPath, new BackgroundJobManager(projectPath));
|
|
189
|
+
}
|
|
190
|
+
return managers.get(projectPath);
|
|
191
|
+
}
|
|
192
|
+
//# sourceMappingURL=job-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"job-manager.js","sourceRoot":"","sources":["../../../../src/core/background/job-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Background Jobs - Type Definitions
|
|
3
|
+
*
|
|
4
|
+
* Supports long-running operations (repo cloning, issue import)
|
|
5
|
+
* that can run in background while user continues working.
|
|
6
|
+
*/
|
|
7
|
+
export type JobType = 'clone-repos' | 'import-issues' | 'sync-external';
|
|
8
|
+
export type JobStatus = 'pending' | 'running' | 'paused' | 'completed' | 'failed';
|
|
9
|
+
export interface JobProgress {
|
|
10
|
+
current: number;
|
|
11
|
+
total: number;
|
|
12
|
+
percentage: number;
|
|
13
|
+
currentItem?: string;
|
|
14
|
+
itemsCompleted: string[];
|
|
15
|
+
itemsFailed: string[];
|
|
16
|
+
rate?: number;
|
|
17
|
+
eta?: number;
|
|
18
|
+
}
|
|
19
|
+
export interface BackgroundJob {
|
|
20
|
+
id: string;
|
|
21
|
+
type: JobType;
|
|
22
|
+
status: JobStatus;
|
|
23
|
+
progress: JobProgress;
|
|
24
|
+
startedAt: Date;
|
|
25
|
+
updatedAt: Date;
|
|
26
|
+
completedAt?: Date;
|
|
27
|
+
error?: string;
|
|
28
|
+
config: JobConfig;
|
|
29
|
+
}
|
|
30
|
+
export interface CloneJobConfig {
|
|
31
|
+
type: 'clone-repos';
|
|
32
|
+
repositories: Array<{
|
|
33
|
+
owner: string;
|
|
34
|
+
name: string;
|
|
35
|
+
path: string;
|
|
36
|
+
}>;
|
|
37
|
+
projectPath: string;
|
|
38
|
+
}
|
|
39
|
+
export interface ImportJobConfig {
|
|
40
|
+
type: 'import-issues';
|
|
41
|
+
provider: 'github' | 'jira' | 'ado';
|
|
42
|
+
repositories?: string[];
|
|
43
|
+
projectKey?: string;
|
|
44
|
+
timeRangeMonths: number;
|
|
45
|
+
projectPath: string;
|
|
46
|
+
}
|
|
47
|
+
export interface SyncJobConfig {
|
|
48
|
+
type: 'sync-external';
|
|
49
|
+
provider: 'github' | 'jira' | 'ado';
|
|
50
|
+
direction: 'import' | 'export' | 'bidirectional';
|
|
51
|
+
profileId: string;
|
|
52
|
+
projectPath: string;
|
|
53
|
+
}
|
|
54
|
+
export type JobConfig = CloneJobConfig | ImportJobConfig | SyncJobConfig;
|
|
55
|
+
export interface JobState {
|
|
56
|
+
jobs: BackgroundJob[];
|
|
57
|
+
activeJobId?: string;
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/background/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,OAAO,GAAG,aAAa,GAAG,eAAe,GAAG,eAAe,CAAC;AAExE,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAC;AAElF,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,SAAS,CAAC;IAClB,QAAQ,EAAE,WAAW,CAAC;IACtB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,aAAa,CAAC;IACpB,YAAY,EAAE,KAAK,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;IACH,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,eAAe,CAAC;IACtB,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAC;IACpC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,eAAe,CAAC;IACtB,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAC;IACpC,SAAS,EAAE,QAAQ,GAAG,QAAQ,GAAG,eAAe,CAAC;IACjD,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,SAAS,GAAG,cAAc,GAAG,eAAe,GAAG,aAAa,CAAC;AAEzE,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,aAAa,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/core/background/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Multi-Repository Configuration
|
|
3
|
+
*
|
|
4
|
+
* Extracted from repo-structure-manager.ts to reduce file size and prevent crashes.
|
|
5
|
+
* Handles configuration of multi-repository setups including parent repos and discovery.
|
|
6
|
+
*/
|
|
7
|
+
import { SetupStateManager } from './setup-state-manager.js';
|
|
8
|
+
import type { GitProvider, GitPlatformType } from './git-provider.js';
|
|
9
|
+
import type { RepoStructureConfig } from './repo-structure-manager.js';
|
|
10
|
+
export interface MultiRepoConfigOptions {
|
|
11
|
+
projectPath: string;
|
|
12
|
+
githubToken?: string;
|
|
13
|
+
stateManager: SetupStateManager;
|
|
14
|
+
useParent?: boolean;
|
|
15
|
+
isLocalParent?: boolean;
|
|
16
|
+
urlType?: 'ssh' | 'https';
|
|
17
|
+
platform?: GitPlatformType;
|
|
18
|
+
provider: GitProvider;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Configure multi-repository architecture
|
|
22
|
+
* @param options - Configuration options
|
|
23
|
+
*/
|
|
24
|
+
export declare function configureMultiRepo(options: MultiRepoConfigOptions): Promise<RepoStructureConfig>;
|
|
25
|
+
//# sourceMappingURL=multi-repo-configurator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multi-repo-configurator.d.ts","sourceRoot":"","sources":["../../../../src/core/repo-structure/multi-repo-configurator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,EAAE,iBAAiB,EAAsC,MAAM,0BAA0B,CAAC;AAOjG,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAEvE,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,iBAAiB,CAAC;IAChC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,QAAQ,EAAE,WAAW,CAAC;CACvB;AAaD;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAgpBtG"}
|