@semiont/jobs 0.5.3 → 0.5.4
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/fs-job-queue.d.ts +79 -0
- package/dist/fs-job-queue.d.ts.map +1 -0
- package/dist/index.d.ts +20 -632
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +65 -56
- package/dist/index.js.map +1 -1
- package/dist/job-claim-adapter.d.ts +76 -0
- package/dist/job-claim-adapter.d.ts.map +1 -0
- package/dist/job-queue-interface.d.ts +19 -0
- package/dist/job-queue-interface.d.ts.map +1 -0
- package/dist/job-queue-state-unit.d.ts +26 -0
- package/dist/job-queue-state-unit.d.ts.map +1 -0
- package/dist/job-worker.d.ts +67 -0
- package/dist/job-worker.d.ts.map +1 -0
- package/dist/processors.d.ts +41 -0
- package/dist/processors.d.ts.map +1 -0
- package/dist/types.d.ts +319 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/worker-main.d.ts +22 -2
- package/dist/worker-main.d.ts.map +1 -0
- package/dist/worker-main.js +165 -114
- package/dist/worker-main.js.map +1 -1
- package/dist/worker-process.d.ts +47 -0
- package/dist/worker-process.d.ts.map +1 -0
- package/dist/workers/annotation-detection.d.ts +61 -0
- package/dist/workers/annotation-detection.d.ts.map +1 -0
- package/dist/workers/detection/entity-extractor.d.ts +42 -0
- package/dist/workers/detection/entity-extractor.d.ts.map +1 -0
- package/dist/workers/detection/motivation-parsers.d.ts +116 -0
- package/dist/workers/detection/motivation-parsers.d.ts.map +1 -0
- package/dist/workers/detection/motivation-prompts.d.ts +57 -0
- package/dist/workers/detection/motivation-prompts.d.ts.map +1 -0
- package/dist/workers/generation/resource-generation.d.ts +23 -0
- package/dist/workers/generation/resource-generation.d.ts.map +1 -0
- package/package.json +3 -3
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Job Queue Manager
|
|
3
|
+
*
|
|
4
|
+
* Filesystem-based job queue with atomic operations.
|
|
5
|
+
* Jobs are stored in directories by status for easy polling.
|
|
6
|
+
*/
|
|
7
|
+
import type { AnyJob, JobStatus, JobQueryFilters } from './types';
|
|
8
|
+
import type { SemiontProject } from '@semiont/core/node';
|
|
9
|
+
import type { JobId, Logger, EventBus } from '@semiont/core';
|
|
10
|
+
import type { JobQueue } from './job-queue-interface';
|
|
11
|
+
export declare class FsJobQueue implements JobQueue {
|
|
12
|
+
private eventBus?;
|
|
13
|
+
private jobsDir;
|
|
14
|
+
private logger;
|
|
15
|
+
private pendingQueue;
|
|
16
|
+
private watcher;
|
|
17
|
+
private loadDebounceTimer;
|
|
18
|
+
constructor(project: SemiontProject, logger: Logger, eventBus?: EventBus | undefined);
|
|
19
|
+
/**
|
|
20
|
+
* Initialize job queue directories, load pending jobs, and start fs.watch
|
|
21
|
+
*/
|
|
22
|
+
initialize(): Promise<void>;
|
|
23
|
+
/**
|
|
24
|
+
* Clean up watcher
|
|
25
|
+
*/
|
|
26
|
+
destroy(): void;
|
|
27
|
+
/**
|
|
28
|
+
* Load pending jobs from disk into in-memory queue
|
|
29
|
+
*/
|
|
30
|
+
private loadPendingJobs;
|
|
31
|
+
/**
|
|
32
|
+
* Debounced version of loadPendingJobs — fs.watch can fire rapidly
|
|
33
|
+
*/
|
|
34
|
+
private debouncedLoadPendingJobs;
|
|
35
|
+
/**
|
|
36
|
+
* Create a new job
|
|
37
|
+
*/
|
|
38
|
+
createJob(job: AnyJob): Promise<void>;
|
|
39
|
+
/**
|
|
40
|
+
* Get a job by ID (searches all status directories)
|
|
41
|
+
*/
|
|
42
|
+
getJob(jobId: JobId): Promise<AnyJob | null>;
|
|
43
|
+
/**
|
|
44
|
+
* Update a job (atomic: delete old, write new)
|
|
45
|
+
*/
|
|
46
|
+
updateJob(job: AnyJob, oldStatus?: JobStatus): Promise<void>;
|
|
47
|
+
/**
|
|
48
|
+
* Poll for next pending job (FIFO) from in-memory queue.
|
|
49
|
+
* If a predicate is provided, returns the first matching job (skipping non-matching ones).
|
|
50
|
+
*/
|
|
51
|
+
pollNextPendingJob(predicate?: (job: AnyJob) => boolean): Promise<AnyJob | null>;
|
|
52
|
+
/**
|
|
53
|
+
* List jobs with filters
|
|
54
|
+
*/
|
|
55
|
+
listJobs(filters?: JobQueryFilters): Promise<AnyJob[]>;
|
|
56
|
+
/**
|
|
57
|
+
* Cancel a job
|
|
58
|
+
*/
|
|
59
|
+
cancelJob(jobId: JobId): Promise<boolean>;
|
|
60
|
+
/**
|
|
61
|
+
* Clean up old completed/failed jobs (older than retention period)
|
|
62
|
+
*/
|
|
63
|
+
cleanupOldJobs(retentionHours?: number): Promise<number>;
|
|
64
|
+
/**
|
|
65
|
+
* Get job file path
|
|
66
|
+
*/
|
|
67
|
+
private getJobPath;
|
|
68
|
+
/**
|
|
69
|
+
* Get statistics about the queue
|
|
70
|
+
*/
|
|
71
|
+
getStats(): Promise<{
|
|
72
|
+
pending: number;
|
|
73
|
+
running: number;
|
|
74
|
+
complete: number;
|
|
75
|
+
failed: number;
|
|
76
|
+
cancelled: number;
|
|
77
|
+
}>;
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=fs-job-queue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fs-job-queue.d.ts","sourceRoot":"","sources":["../src/fs-job-queue.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAgB,MAAM,SAAS,CAAC;AAChF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD,qBAAa,UAAW,YAAW,QAAQ;IAWvC,OAAO,CAAC,QAAQ,CAAC;IAVnB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAS;IAEvB,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,iBAAiB,CAA8C;gBAGrE,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,MAAM,EACN,QAAQ,CAAC,EAAE,QAAQ,YAAA;IAM7B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA0BjC;;OAEG;IACH,OAAO,IAAI,IAAI;IAWf;;OAEG;YACW,eAAe;IAsB7B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAQhC;;OAEG;IACG,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB3C;;OAEG;IACG,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAiBlD;;OAEG;IACG,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAkClE;;;OAGG;IACG,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAUtF;;OAEG;IACG,QAAQ,CAAC,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAyChE;;OAEG;IACG,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC;IA2B/C;;OAEG;IACG,cAAc,CAAC,cAAc,GAAE,MAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAsClE;;OAEG;IACH,OAAO,CAAC,UAAU;IAIlB;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC;QACxB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CAyBH"}
|